IP Library Granted Patent US 11,003,606
Granted Patent B2
US 11,003,606 · App. 16/906,262 · Granted May 11, 2021

DMA-scatter and gather operations for non-contiguous memory

Inventors: Laurentiu Birsan (Loire Atlantique, FR); Manish Patel (Chandler, AZ); Joseph Triece (Phoenix, AZ)
Assignee: Microchip Technology Incorporated
G06F13/28
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 11,003,606
App. No.
16/906,262
Filed
Jun 19, 2020
Granted
May 11, 2021
Kind
B2
Art Unit
2181
USPC
710/26
Abstract

A direct memory access (DMA) controller, includes circuitry configured to load a DMA transfer descriptor configured to define which memory elements within a contiguous block of n memory elements are to be included in a given DMA transfer. The circuitry is further configured to, based on the DMA transfer descriptor, determine whether each memory element within the contiguous block of n memory elements is to be included in the given DMA transfer, including a determination that two or more non-contiguous sub-blocks of memory elements within the contiguous block of n memory elements are to be transferred. The circuitry is further configured to, based on the determination of whether each memory element within the contiguous block of n memory elements is to be included in the given DMA transfer, perform the DMA transfer of memory elements determined to be included within the given DMA transfer.

Claims (34)

1. A direct memory access (DMA) controller, including circuitry configured to:

load a first DMA transfer descriptor, the first DMA transfer descriptor configured to define which memory elements within a first contiguous block of n memory elements are to be included in a given DMA transfer;

based on the first DMA transfer descriptor, determine whether each memory element within the first contiguous block of n memory elements is to be included in the given DMA transfer, including a determination that a plurality of non-contiguous sub-blocks of memory elements within the first contiguous block of n memory elements are to be transferred; and

based on the determination of whether each memory element within the first contiguous block of n memory elements is to be included in the given DMA transfer, perform the DMA transfer of memory elements determined to be included within the given DMA transfer.

2. The DMA controller of claim 1 , wherein the circuitry is further configured to:

determine that additional memory elements are to be included in the given DMA transfer;

load a second DMA transfer descriptor, the second DMA transfer descriptor configured to define which memory elements within a second contiguous block of n memory elements are to be included in a given DMA transfer;

based on the second DMA transfer descriptor, determine whether each memory element within the second contiguous block of n memory elements is to be included in the given DMA transfer, including a determination that a plurality of non-contiguous sub-blocks of memory elements within the second contiguous block of n memory elements are to be transferred; and

based on the determination of whether each memory element within the second contiguous block of n memory elements is to be included in the given DMA transfer, perform the DMA transfer of memory elements determined to be included within the given DMA transfer.

3. The DMA controller of claim 2 , wherein the circuitry is further configured to determine that additional memory elements are to be included in the given DMA transfer from information included in the first DMA transfer descriptor.

4. The DMA controller of claim 2 , wherein the circuitry is further configured to determine an address of the second DMA transfer descriptor from information included in the first DMA transfer descriptor.

5. The DMA controller of claim 2 , wherein the first and second contiguous blocks of n memory elements to be included in the given DMA transfer are within a same peripheral.

6. The DMA controller of claim 2 , wherein the first and second contiguous blocks of n memory elements to be included in the given DMA transfer are within a different peripheral.

7. The DMA controller of claim 2 , wherein the first DMA transfer descriptor is configured to define all of the plurality of non-contiguous sub-blocks within the first contiguous block of n memory elements are to be transferred.

8. The DMA controller of claim 1 , wherein the first DMA transfer descriptor is further configured to define the plurality of non-contiguous sub-blocks of memory elements within the first contiguous block of n memory elements.

9. The DMA controller of claim 8 , wherein the first DMA transfer descriptor is further configured to define a first memory element within the first contiguous block of n memory elements to be included in the given DMA transfer by a base address of the first contiguous block of n memory elements.

10. The DMA controller of claim 8 , wherein the first DMA transfer descriptor is further configured to define one or more second memory elements within the first contiguous block of n memory elements to be included in the given DMA transfer by a plurality of indicators.

11. The DMA controller of claim 10 , wherein the plurality of indicators includes a series of bits, each bit configured to indicate whether an associated memory element is to be included in the given DMA transfer.

12. The DMA controller of claim 11 , wherein the series of bits includes n bits.

13. The DMA controller of claim 12 , wherein one of the n bits is configured to indicate that additional memory elements are to be included in the given DMA transfer.

14. The DMA controller of claim 1 , wherein the first contiguous block of n memory elements to be included in the given DMA transfer is within a register bank and the first contiguous block of n memory elements to be included in the given DMA transfer has a different base address than the register bank.

15. A method for direct memory access (DMA) control, including:

loading a first DMA transfer descriptor, the first DMA transfer descriptor defining which memory elements within a first contiguous block of n memory elements are to be included in a given DMA transfer;

based on the first DMA transfer descriptor, determining whether each memory element within the first contiguous block of n memory elements is to be included in the given DMA transfer, including a determination that a plurality of non-contiguous sub-blocks of memory elements within the first contiguous block of n memory elements are to be transferred; and

based on the determination of whether each memory element within the first contiguous block of n memory elements is to be included in the given DMA transfer, performing the DMA transfer of memory elements determined to be included within the given DMA transfer.

16. The method of claim 15 , further comprising:

determining that additional memory elements are to be included in the given DMA transfer;

loading a second DMA transfer descriptor, the second DMA transfer descriptor configured to define which memory elements within a second contiguous block of n memory elements are to be included in a given DMA transfer;

based on the second DMA transfer descriptor, determining whether each memory element within the second contiguous block of n memory elements is to be included in the given DMA transfer, including a determination that a plurality of non-contiguous sub-blocks of memory elements within the second contiguous block of n memory elements are to be transferred; and

based on the determination of whether each memory element within the second contiguous block of n memory elements is to be included in the given DMA transfer, performing the DMA transfer of memory elements determined to be included within the given DMA transfer.

17. The method of claim 16 , further comprising determining that additional memory elements are to be included in the given DMA transfer from information included in the first DMA transfer descriptor.

18. The method of claim 16 , further comprising determining an address of the second DMA transfer descriptor from information included in the first DMA transfer descriptor.

19. The method of claim 16 , further comprising, defining, in the first DMA transfer descriptor, all of the plurality of non-contiguous sub-blocks within the first contiguous block of n memory elements are to be transferred.

20. The method of claim 15 , further comprising, wherein the first DMA transfer descriptor is further configured to define the plurality of non-contiguous sub-blocks of memory elements within the first contiguous block of n memory elements.

Assignments (10)
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/0335 →
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 059357/0823 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 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 059264/0384 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 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 058214/0238 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
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 058214/0380 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 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 058214/0625 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2020
From: BIRSAN, LAURENTIU; PATEL, MANISH; TRIECE, JOSEPH
To: MICROCHIP TECHNOLOGY INCORPORATED
Reel/Frame 053097/0442 →