Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface
First Claim
1. A serial buffer comprising:
- a plurality of queues configured to store data packets received from a host;
a direct memory access (DMA) engine coupled to receive data packets read from the queues; and
a plurality of DMA register sets, wherein each of the DMA register sets is configured to store parameters that define a corresponding DMA channel of the DMA engine; and
circuitry for selecting one of the DMA register sets to configure the DMA engine, thereby enabling the DMA engine to transfer the received data packets to a system memory using the corresponding DMA channel.
3 Assignments
0 Petitions
Accused Products
Abstract
A serial buffer includes queues configured to store data packets received from a host. A direct memory access (DMA) engine receives data packets from the highest priority queue having a water level that reaches a corresponding watermark. The DMA engine is configured in response to a DMA register set, which is selected from a plurality of DMA register sets. The DMA register set used to configure the DMA engine can be selected in response to information in the header of the read data packet, or in response to the queue from which the data packet is read. Each DMA register set defines a corresponding buffer in system memory, to which the data packet is transferred. Each DMA register set also defines whether the corresponding buffer is accessed in a wrap mode or a stop mode, and whether doorbell signals are generated in response to transfers to the last address in the corresponding buffer.
70 Citations
25 Claims
-
1. A serial buffer comprising:
-
a plurality of queues configured to store data packets received from a host; a direct memory access (DMA) engine coupled to receive data packets read from the queues; and a plurality of DMA register sets, wherein each of the DMA register sets is configured to store parameters that define a corresponding DMA channel of the DMA engine; and circuitry for selecting one of the DMA register sets to configure the DMA engine, thereby enabling the DMA engine to transfer the received data packets to a system memory using the corresponding DMA channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of performing a DMA transfer in a serial buffer, comprising:
-
retrieving a first data packet from a first queue of the serial buffer; selecting a first DMA register set in response to information included in a header of the first data packet; and configuring a DMA engine to transfer the first data packet in response to the first DMA register set. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of performing a DMA transfer in a serial buffer, comprising:
-
retrieving a first data packet from a first queue of the serial buffer; selecting a first DMA register set corresponding with the first queue of the serial buffer; configuring the DMA engine to transfer the first data packet in response to the first DMA register set; retrieving a second data packet from a second queue of the serial buffer; selecting a second DMA register set corresponding with the second queue of the serial buffer; and configuring the DMA engine to transfer the second data packet in response to the second DMA register set. - View Dependent Claims (24, 25)
-
Specification