IP Library Granted Patent US 9,684,615
Granted Patent B1
US 9,684,615 · App. 14/592,385 · Granted Jun 20, 2017

Apparatus and methods for multiple-channel direct memory access

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,684,615
App. No.
14/592,385
Granted
Jun 20, 2017
Kind
B1
Abstract

One embodiment relates to an integrated circuit for a multiple-channel direct memory access system. The integrated circuit includes multiple direct memory access (DMA) controllers, each one corresponding to a different DMA channel. A channelizer receives descriptors from the DMA controllers. Fragmentation circuits in the channelizer fragment descriptors to generate multiple sub-descriptors therefrom, and the sub-descriptors may be sorted into priority queues. Another embodiment relates to a method of providing DMA transfers for multiple DMA channels using an integrated circuit. Another embodiment relates to a system for multiple-channel direct memory access. Other embodiments and features are also disclosed.

Claims (48)

1. An integrated circuit for a multiple-channel direct memory access system, the integrated circuit comprising:

a plurality of direct memory access (DMA) controllers, each one of the plurality of DMA controller corresponding to a different DMA channel;

a channelizer coupled to, and receiving descriptors from, the plurality of DMA controllers;

a plurality of fragmentation circuits in the channelizer, each one of the plurality of fragmentation circuits fragmenting a descriptor from a corresponding DMA controller to generate a plurality of sub-descriptors;

a plurality of priority sort circuits in the channelizer, each one of the plurality of priority sort circuits sorting sub-descriptors from a corresponding fragmentation circuit according to a priority field in the sub-descriptors;

a plurality of priority queues in the channelizer receiving sub-descriptors from the plurality of priority sort circuits, each one of the plurality of priority queues receiving sub-descriptors having an associated value in the priority field;

a scheduler that selects sub-descriptors for transmission from the plurality of priority queues;

a DMA data mover for receiving sub-descriptors from the scheduler and executing the sub-descriptors by causing transfers of data; and

circuitry comprising completion status counters for receiving done status messages indicating successful execution of the sub-descriptors, mapping completed sub-descriptors onto the descriptors, and sending done status messages indicating successful execution of the descriptors to the DMA controllers.

2. The integrated circuit of claim 1 , wherein the priority field comprises a priority bit, and wherein the plurality of priority queues comprises two priority queues.

3. The integrated circuit of claim 1 , wherein the scheduler uses round-robin arbitration where a frequency of transmission from a priority queue depends on a transmit priority weight parameter.

4. The integrated circuit of claim 1 , wherein the DMA data mover comprises a write data mover and a read data mover.

5. The integrated circuit of claim 4 , wherein the read data mover receives data obtained from a source address, and the write data mover sends the data to a destination address.

6. The integrated circuit of claim 1 , further comprising:

a status bus for transmitting the done status messages indicating successful execution of the descriptors from the channelizer to the plurality of DMA controllers.

7. The integrated circuit of claim 1 , further comprising:

a plurality of channel queues in the channelizer for buffering descriptors received from the plurality of DMA controllers.

8. The integrated circuit of claim 7 , further comprising:

multi-channel control registers for receiving commands from the plurality of DMA controllers; and

a descriptor removal circuit for sampling the multi-channel control registers to determine that a descriptor is to be removed from the plurality of channel queues.

9. The integrated circuit of claim 1 , wherein the DMA data mover and the channelizer are implemented in hard-wired circuitry, and wherein the DMA controllers are implemented in electronically-programmed circuitry.

10. A method of providing a direct memory access (DMA) transfers for multiple DMA channels using an integrated circuit, the method comprising:

sending descriptors from a plurality of DMA controllers to a channelizer, each one of the plurality of DMA controllers being associated with a different DMA channel;

fragmenting the descriptors by the channelizer into sub-descriptors; and

sorting the sub-descriptors by the channelizer into a plurality of queues based on a priority field;

using an arbitration procedure by the channelizer to select sub-descriptors for transmission from the plurality of priority queues;

sending selected sub-descriptors from the channelizer to a DMA data mover;

receiving sub-descriptors by the DMA data mover and executing the sub-descriptors by causing movement of data; and

receiving done status messages indicating successful execution of the sub-descriptors, mapping completed sub-descriptors onto the descriptors, and sending done status messages indicating successful execution of the descriptors to the plurality of DMA controllers.

11. The method of claim 10 , wherein the arbitration procedure comprises a round-robin procedure where a frequency of transmission from a priority queue depends on a transmit priority weight parameter.

12. A system for multiple-channel direct memory access (DMA), the system comprising:

a root complex comprising a central processing unit, main memory, and a root port communicatively connected to the main memory and the central processing unit;

a plurality of DMA controllers, each one of the plurality of DMA controller corresponding to a different DMA channel;

a channelizer coupled to, and receiving descriptors from, the plurality of DMA controllers, wherein the channelizer fragments the descriptors to generate sub-descriptors and maps completed sub-descriptors onto the descriptors;

a plurality of priority sort circuits in the channelizer, each one of the plurality of priority sort circuits sorting sub-descriptors according to a priority field in the sub-descriptors;

a plurality of priority queues in the channelizer receiving sub-descriptors from the plurality of priority sort circuits, each one of the plurality of priority queues receiving sub-descriptors having an associated value in the priority field;

a scheduler that selects sub-descriptors for transmission from the plurality of priority queues;

a data mover for receiving and causing execution of the sub-descriptors;

circuitry comprising completion status counters for receiving done status messages indicating successful execution of the sub-descriptors, mapping completed sub-descriptors onto the descriptors, and sending done status messages indicating successful execution of the descriptors to the DMA controllers; and

a data link communicatively interconnecting the root complex and the data mover.

13. The system of claim 12 , wherein the priority field comprises a priority bit, and wherein the plurality of priority queues comprises two priority queues.

14. The system of claim 12 , wherein the scheduler uses round-robin arbitration where a frequency of transmission from a priority queue depends on a transmit priority weight parameter.

15. The system of claim 12 , wherein the data mover comprises a write data mover and a read data mover.

16. The system of claim 15 , wherein the read data mover receives data obtained from a source address, and the write data mover sends the data to a destination address.

17. The system of claim 12 , further comprising:

a status bus for transmitting the done status messages indicating successful execution of the descriptors from the channelizer to the plurality of DMA controllers.

18. The system of claim 12 , further comprising:

a plurality of channel queues in the channelizer for buffering descriptors received from the plurality of DMA controllers.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2015
From: NGUYEN, HARRY; MOLSON, PHILIPPE; CHEN, MICHAEL
To: ALTERA CORPORATION
Reel/Frame 034810/0338 →