IP Library Granted Patent US 9,442,873
Granted Patent B2
US 9,442,873 · App. 14/510,529 · Granted Sep 13, 2016

Direct memory access controller

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,442,873
App. No.
14/510,529
Granted
Sep 13, 2016
Kind
B2
Abstract

Systems and methods for direct memory access are described. One example system includes a memory module that includes a first memory portion that maintains transfer descriptors of direct memory access (DMA) channels, and a second memory portion that maintains transfer descriptors of enabled DMA channels. The system includes a controller coupled to the memory module, the controller includes one or more DMA channels coupled to a system bus, a channel arbiter that selects one of the enabled DMA channels as an active DMA channel for data transfer including re-arbitrating after each burst or beat in a given transfer, and an active channel buffer that receives a transfer descriptor of the active DMA channel from the second memory portion. The controller is configured to write back the transfer descriptor of the active DMA channel into the second memory portion when the active DMA channel loses arbitration.

Claims (60)

1. A DMA controller comprising:

a channel arbiter configured to select an enabled DMA channel as an active DMA channel for a data transfer and to arbitrate among enabled DMA channels after a beat of data is transferred in the data transfer; and

a channel buffer coupled to the channel arbiter and configured to receive a transfer descriptor of the active DMA channel, the data transfer being performable using the active DMA channel and the transfer descriptor,

wherein the DMA controller is configured to enable a DMA channel by storing a fetched transfer descriptor in a portion of memory.

2. The DMA controller of claim 1 configured to:

determine whether the active DMA channel loses arbitration based on the arbitration among the enable DMA channels after the beat in the data transfer, and

write back the transfer descriptor when the active DMA channel loses arbitration during the data transfer.

3. The DMA controller of claim 1 , wherein the channel arbiter is configured to arbitrate among enabled DMA channels having pending transfer requests after each burst or beat in a given data transfer.

4. The DMA controller of claim 1 , wherein the channel arbiter is configured to receive DMA transfer requests for DMA channels, and

wherein a DMA transfer request of a DMA channel is triggered by one or more of:

a peripheral device,

software, or

an event.

5. The DMA controller of claim 1 configured to communicate with one or more peripheral devices, wherein each peripheral device is associated with a DMA channel.

6. The DMA controller of claim 1 configured to:

perform the data transfer using the active DMA channel and the transfer descriptor of the active DMA channel in the channel buffer, and

update the transfer descriptor of the active DMA channel in the channel buffer.

7. The DMA controller of claim 1 , further comprising:

a first dedicated interface coupled to a first memory portion of a memory module; and

a second dedicated interface coupled to a second memory portion of the memory module, wherein the first memory portion is configured to maintain transfer descriptors of DMA channels, and the second memory portion is configured to maintain transfer descriptors of enabled DMA channels.

8. The DMA controller of claim 1 configured to enable a DMA channel by fetching the transfer descriptor of the DMA channel from a different memory portion of the memory and store the fetched transfer descriptor in the memory portion of the memory.

9. The DMA controller of claim 8 , wherein the channel buffer is configured to receive the transfer descriptor of the DMA channel from the memory portion when the DMA channel is selected as the active DMA channel.

10. The DMA controller of claim 8 , configured to write back a current state of the transfer descriptor of the active DMA channel into the memory portion when the active DMA channel loses arbitration during the data transfer.

11. The DMA controller of claim 1 configured to:

when a number of remaining transfer beats of a transfer descriptor of an enabled DMA channel reaches zero, disable the DMA channel and remove the transfer descriptor of the DMA channel from the memory portion.

12. The DMA controller of claim 1 , further comprising:

a single directional interface for coupling the memory portion to the DMA controller.

13. The DMA controller of claim 1 configured to be coupled to a peripheral bus interface to enable configuration of the DMA controller by an external device.

14. The DMA controller of claim 1 , wherein the transfer descriptor defines a block data transfer and includes one or more parameters: a source address of a transfer, a destination address of the transfer, a number of remaining transfer beats, control data including transfer settings, or an address of a next descriptor, and

wherein the DMA controller is configured to, during the data transfer, update one or more parameters of the transfer descriptor of the active DMA channel including: the source address of a transfer, the destination address of the transfer, or the number of remaining transfer beats.

15. The DMA controller of claim 1 , wherein software is configured to enable or disable DMA channels, and wherein the channel buffer is a register.

16. A method comprising:

selecting an enabled DMA channel as an active DMA channel;

receiving a transfer descriptor of the active DMA channel from a portion of memory, the DMA channel being enabled by storing the transfer descriptor in the memory portion;

performing a data transfer using the active DMA channel and the received transfer descriptor; and

arbitrating among enabled DMA channels after a beat of data is transferred in the data transfer.

17. The method of claim 16 , further comprising:

determining whether the active DMA channel loses arbitration based on the arbitrating among the enabled DMA channels after the beat in the data transfer; and

in response to determining that the active DMA channel loses arbitration, writing back the transfer descriptor of the active DMA channel.

18. The method of claim 17 , wherein determining that the active DMA channel loses arbitration comprises determining that the active DMA channel has a priority that is less than a priority for another enabled DMA channel, and

wherein the method further comprises: in responding to determining that the active DMA channel loses arbitration, interrupting the data transfer and making the another enabled DMA channel the active DMA channel.

19. The method of claim 16 , wherein performing data transfer further includes:

transferring bursts of data;

updating the transfer descriptor of the active DMA channel after each burst of data including a number of remaining transfer beats; and

performing, after each burst of data, one of:

disabling the active DMA channel and clearing the transfer descriptor of the active DMA channel when the number of remaining transfer beats reaches zero, or interrupting the data transfer and re-storing the updated transfer descriptor of the active DMA channel when losing arbitration.

20. The method claim 16 , wherein the transfer descriptor includes one or more parameters: a source address of a transfer, a destination address of the transfer, the number of remaining transfer beats, control data including transfer settings, or an address of a next descriptor, and

wherein the method further comprises updating one or more parameters of the transfer descriptor including: the number of remaining transfer beats, the source address of a transfer, or the destination address of the transfer.

21. The method of claim 16 , further comprising: enabling two or more direct memory access (DMA) channels by:

fetching transfer descriptors of the DMA channels from a different portion of the memory; and

storing the received transfer descriptors of the enabled DMA channels in the memory portion.

22. The method of claim 16 , further comprising:

retrieving a second transfer descriptor of the active DMA channel when a number of remaining transfer beats of the transfer descriptor reaches zero, wherein the second transfer descriptor is retrieved using an address of a next descriptor of the transfer descriptor.

23. The method of claim 16 , further comprising:

assigning priority levels to each DMA channel, wherein a DMA channel with higher priority level interrupts any ongoing data transfers through DMA channels with lower priority levels.

24. A DMA controller comprising:

two or more DMA channels;

a channel arbiter configured to select an enabled DMA channel as an active DMA channel for a data transfer based on one or more criteria including arbitrating after a beat of data is transferred in the data transfer; and

a channel buffer configured to receive a transfer descriptor of the active DMA channel from memory for the data transfer, wherein the DMA controller is configured to enable the DMA channel by storing the transfer descriptor in the memory,

wherein the DMA controller is configured to determine whether the active DMA channel loses arbitration based on the arbitration after the beat in the data transfer and write back the transfer descriptor of the active DMA channel into the memory when the active DMA channel loses arbitration during the data transfer.

Assignments (22)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: ATMEL CORPORATION
Reel/Frame 059262/0105 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2018
From: ATMEL CORPORATION
To: MICROCHIP TECHNOLOGY INCORPORATED
Reel/Frame 046874/0877 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
SECURITY INTEREST Recorded Feb 10, 2017
From: ATMEL CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041715/0747 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Apr 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ATMEL CORPORATION
Reel/Frame 038375/0724 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2015
From: ATMEL NANTES S.A.S.
To: ATMEL CORPORATION
Reel/Frame 035216/0930 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2015
From: GRAFFET, NICOLAS
To: ATMEL ROUSSET S.A.S.
Reel/Frame 035216/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2015
From: BIRSAN, LAURENTIU; JOUIN, SEBASTIEN
To: ATMEL NANTES S.A.S.
Reel/Frame 035216/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2015
From: PEDERSEN, FRODE MILCH; DANIELSEN, STEIN
To: ATMEL CORPORATION
Reel/Frame 035216/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2015
From: ATMEL ROUSSET S.A.S.
To: ATMEL CORPORATION
Reel/Frame 035217/0030 →
PATENT SECURITY AGREEMENT Recorded Nov 4, 2014
From: ATMEL CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 034160/0563 →