Customizable multi queue DMA interface
US-10983920-B2 · Apr 20, 2021 · US
US12517849B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12517849-B2 |
| Application number | US-202318098296-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 18, 2023 |
| Priority date | Jul 28, 2022 |
| Publication date | Jan 6, 2026 |
| Grant date | Jan 6, 2026 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A peripheral device for matrix multiplication including a weight memory, an input memory, a multiplier, an accumulator, an output memory and a sequencer to generate signals to drive the input memory and the output memory and to generate an interrupt signal. The weight memory may be loaded with weights and biases for a matrix multiplication operation, and the multiplier and accumulator may implement the multiply and accumulator operations for a matrix multiplication operation. Data may be swapped between the input memory and output memory to reduce the memory required for matrix multiplication operations.
Opening claim text (preview).
The invention claimed is: 1 . A peripheral of a microcontroller of a multi-layered network comprising: a weight memory to receive data input comprising a plurality of weight values for one layer of the multi-layered network from, respectively, an external Direct Memory Access (DMA) circuit and a microcontroller system bus and to receive control input comprising memory transaction instructions from the sequencer, the weight memory to provide a weight memory output; an input memory to receive data input comprising a plurality of bias values for the one layer of a multi-layered network from the microcontroller system bus and control input comprising memory transaction instructions from the sequencer, the input memory to provide an input memory output; a multiplier to receive input from, respectively, the weight memory output and the input memory output, the multiplier to generate a multiplier output; an accumulator to receive input from, respectively, the multiplier output and an output memory output, the accumulator to generate an accumulator output; an output memory to receive data input from the weight memory output, the accumulator output, and the microcontroller system bus, and to receive control input from the sequencer, the output memory to provide output to, respectively, the microcontroller system bus and an output memory output; an activation circuit coupled to the microcontroller system bus, the activation circuit to implement an activation function that is a tanh function, a sigmoid function, a linear function, a rectified linear unit (ReLU) function, or a mathematical function to translate a set of data from a first range to a second range, the activation function comprising a function generating an output between zero and one, inclusive, wherein the activation function is to apply to the output memory output to generate a peripheral output from the peripheral to the microcontroller of the multi-layered network, and wherein the sequencer generates output signals coupled to the input memory and the output memory, the output signals to transmit memory transactions to the input memory and to the output memory, the memory transactions to control transfer of data between the input memory and the output memory at a predetermined time, and generates an interrupt signal to the microcontroller based on a programmable condition. 2 . The peripheral as claimed in claim 1 , the input memory comprising a dual-port random access memory. 3 . The peripheral as claimed in claim 1 , the output memory comprising a dual-port random access memory. 4 . The peripheral as claimed in claim 1 , the weight memory contents comprising weight values in a matrix multiplication operation. 5 . The peripheral as claimed in claim 1 , comprising an activation circuit coupled to the microcontroller system bus, the activation circuit to compute an activation function at a predetermined time, based at least in part on a value stored in the output memory. 6 . The peripheral as claimed in claim 1 , wherein the input memory comprises dual-port RAM. 7 . The peripheral as claimed in claim 1 , wherein the output memory comprises dual-port RAM. 8 . A microcontroller comprising: a peripheral of the microcontroller comprising: a weight memory to receive data input comprising a plurality of weight values for one layer of a multi-layered network from, respectively, an external Direct Memory Access (DMA) circuit and a microcontroller system bus and to receive control input comprising memory transaction instructions from the sequencer, the weight memory to provide a weight memory output; an input memory to receive data input comprising a plurality of bias values for the one layer of a multi-layered network from the microcontroller system bus and control input comprising memory transaction instructions from the sequencer, the input memory to provide an input memory output; a multiplier to receive input from, respectively, the weight memory output and the input memory output, the multiplier to generate a multiplier output; an accumulator to receive input from, respectively, the multiplier output and an output memory output, the accumulator to generate an accumulator output; an output memory to receive data input from the weight memory output, the accumulator output, and the microcontroller system bus, and to receive control input from the sequencer, the output memory to provide output to, respectively, the microcontroller system bus and an output memory output; wherein the sequencer generates output signals coupled to the input memory and the output memory, the output signals to transmit memory transactions to the output memory and the input memory, the memory transactions to control transfer of data words from the output memory to the input memory at a predetermined time, and generates an interrupt signal to the microcontroller based on a programmable condition, and an activation circuit to compute an activation function at a predetermined time, based at least in part on a value stored in the output memory, the activation circuit to implement an activation function that is a tanh function, a sigmoid function, a linear function, a rectified linear unit (ReLU) function, or a mathematical function to translate a set of data from a first range to a second range, the activation function comprising a function generating an output between zero and one, inclusive, wherein the activation function is to apply to the output memory output to generate a peripheral output from the peripheral to the multi-layered network. 9 . The microcontroller as claimed in claim 8 , the weight memory contents comprising weight values in a matrix multiplication. 10 . The microcontroller as claimed in claim 8 , the accumulator to accumulate values in a matrix multiplication operation. 11 . The microcontroller as claimed in claim 8 , wherein the input memory comprises dual-port RAM. 12 . The microcontroller as claimed in claim 8 , wherein the output memory comprises dual-port RAM. 13 . A method comprising: loading weight values comprising a plurality of weight values for one layer of the multi-layered network into a weight memory of a peripheral of a microcontroller of the multi-layered network; loading input values comprising a plurality of bias values for the one layer of the multi-layered network into an input memory of the peripheral of the microcontroller of the multi-layered network; multiplying, respectively, a value stored in the weight memory and a value stored in the input memory to generate a multiplier output; accumulating a plurality of successive multiplier outputs in an accumulator of the peripheral of the microcontroller of the multi-layered network; storing the result of the accumulator in an output memory of the peripheral of the microcontroller of the multi-layered network; triggering an interrupt signal to the microcontroller in response to storing the result; and, transferring a plurality of results of the accumulator from the output memory to the input memory after a predetermined number of accumulator results have been stored in the output memory; and applying an activation function based at least in part on the accumulator result stored in the output memory, wherein the activation function is a tanh function, a sigmoid function, a linear function, a rectified linear unit (ReLU) function, or a mathematical function to translate a set of data from a first range to a second range, the activation function comprising a function generating an output between zero and one, inclusive, to generate a peripheral output from the peripheral to the microcontroller of the multi-layer
Related publications grouped by family.
Answers are generated from the same data shown on this page.