Multi-threaded DMA
First Claim
Patent Images
1. A direct memory access (DMA) circuit, comprising:
- a read port;
a read port scheduler coupled to the read port;
a write port;
a write port scheduler coupled to the write port;
a request port coupled to the read and write port schedulers;
thread circuitry for holding next access addresses, wherein the read port is configured to support “
m”
threads and the write port is configured to support “
n”
threads, where each thread is configured to support a single access and a burst access transaction and the read and write ports are configured to work on different data transfers at the same time; and
channel context circuitry interconnected with the read port, write port and thread circuitry for storing channel context, wherein the channel context circuitry is configured to instantiate a plurality of virtual channels in excess of the number of threads, such that a free thread is associated with a selected virtual channel to initiate an access and then released.
1 Assignment
0 Petitions
Accused Products
Abstract
A direct memory access (DMA) circuit (200) includes a read port (202) and a write port (204). The DMA circuit (200) is a multithreaded initiator with “m” threads on the read port (202) and “n” threads on the write port (204). The DMA circuit (200) includes two decoupled read and write contexts and schedulers (302, 304) that provide for more efficient buffering and pipelining. The schedulers (302, 304) are mainly arbitrating between channels at a thread boundary. One thread is associated to one DMA service where a service can be a single or burst transaction. The multithreaded DMA transfer allows for concurrent channel transfers.
28 Citations
20 Claims
-
1. A direct memory access (DMA) circuit, comprising:
-
a read port; a read port scheduler coupled to the read port; a write port; a write port scheduler coupled to the write port; a request port coupled to the read and write port schedulers; thread circuitry for holding next access addresses, wherein the read port is configured to support “
m”
threads and the write port is configured to support “
n”
threads, where each thread is configured to support a single access and a burst access transaction and the read and write ports are configured to work on different data transfers at the same time; andchannel context circuitry interconnected with the read port, write port and thread circuitry for storing channel context, wherein the channel context circuitry is configured to instantiate a plurality of virtual channels in excess of the number of threads, such that a free thread is associated with a selected virtual channel to initiate an access and then released. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A multithreading direct memory access (DMA) circuit comprising:
-
a write port; a read port; a number of address circuits coupled to the read port and to the write port for holding addresses of a plurality of requests; a context memory coupled to both the read and write ports for holding contexts of logical channels; and a means coupled to the context memory for mapping requests to the address circuitry and to the logical channels, wherein the means is configured to instantiate a plurality of logical channels in excess of the number of address circuits. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A method of operating a multi-threaded direct memory access (DMA) circuit, comprising:
-
instantiating a plurality “
v”
of virtual channels, wherein each virtual channel identifies a source and destination address for transferring a sequence of data from one storage location to a different storage location;selecting a subset “
s”
of the plurality of virtual channels via arbitration, where s is less than v;mapping the selected virtual channels onto physical thread circuits to form a plurality of requests; queuing the requests to perform either a single access or a burst access; and releasing each thread circuit at the completion of the associated request access for use by another selected virtual channel.
-
Specification