IP Library Granted Patent US 10,983,936
Granted Patent B2
US 10,983,936 · App. 16/377,439 · Granted Apr 20, 2021

Programmable arbitrary sequence direct memory access controller for configuring multiple core independent peripherals

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 10,983,936
App. No.
16/377,439
Granted
Apr 20, 2021
Kind
B2
Abstract

A programmable arbitrary sequence direct memory access (DMA) controller accesses sequentially addressed memory locations (source or destination) using address pointer registers. Each sequentially addressed memory location containing an indirect memory address is stored in an address latch and used to access the actual non-sequential memory location to be accessed by the DMA transfer.

Claims (50)

1. A programmable arbitrary sequence direct memory access (DMA) controller, comprising:

a first address pointer register storing a first source address wherein the first source address is an address within a memory space accessible by the programmable arbitrary sequence DMA controller;

a second address pointer register storing a first destination address wherein the first destination address is an address within the memory space;

a data latch coupled to a first data bus storing data from the first source address;

an address latch coupled to a second data bus storing a second source address or a second destination address, wherein the second source address or the second destination address is an address within the memory space;

a multiplexer having a first input coupled to the first address pointer register, a second input coupled to the address latch, a third input coupled to the second address pointer register, and an output coupled to an address bus;

control logic coupled to and controlling the first and second address pointer registers, the address latch, the multiplexer and the data latch, wherein the programmable arbitrary sequence DMA controller transfers data from a source to a destination wherein the control logic of the programmable arbitrary sequence DMA controller is configured to store data from the first source address or the second source address in the data latch and thereafter transfer the data from the data latch to the first destination address or the second destination address, and

a control register configured to control an operating mode of the DMA controller, wherein when operating in a first mode, the DMA controller is configured to use the first address pointer register for storing the first source address and the second address pointer register for storing the first destination address, and when operating in a second mode, the DMA controller is configured to receive the second source address or the second destination address in the address latch from the second data bus.

2. The programmable arbitrary sequence DMA controller according to claim 1 , wherein one bit in the control register determines whether the DMA controller operates in the first or second mode.

3. The programmable arbitrary sequence DMA controller according to claim 1 , wherein the control logic communicates with bus arbitration logic.

4. The programmable arbitrary sequence DMA controller according to claim 1 , wherein the data latch writes to and reads from the first data bus.

5. The programmable arbitrary sequence DMA controller according to claim 1 , wherein the first data bus is coupled to a data memory.

6. The programmable arbitrary sequence DMA controller according to claim 5 , wherein the data memory is a random-access memory (RAM).

7. The programmable arbitrary sequence DMA controller according to claim 1 , wherein the second data bus is coupled to a program memory.

8. The programmable arbitrary sequence DMA controller according to claim 7 , wherein the program memory is a non-volatile memory.

9. The programmable arbitrary sequence DMA controller according to claim 8 , wherein the non-volatile memory is a flash programmable memory.

10. The programmable arbitrary sequence DMA controller according to claim 1 , wherein the first and second data buses are each coupled to a memory.

11. The programmable arbitrary sequence DMA controller according to claim 1 , further comprising first and second byte counters communicating with the control logic and counting a number of data bytes transferred.

12. A method for indirect memory addressing with a programmable arbitrary sequence direct memory access (DMA) controller configured to transfer data within a memory space, said method comprising the steps of:

determining an operating mode from a control register configured to control an operating mode of the DMA controller;

wherein when operating in a first mode:

for performing a DMA transfer, using a first address pointer register for storing a first source address and a second address pointer register for storing a first destination address;

and when operating in a second mode:

reading a register address stored at a memory address specified by the first address pointer register, wherein the memory address is an address within the memory space accessible by the programmable arbitrary sequence DMA controller;

storing the register address in an address latch;

reading configuration data stored at another memory address specified by the second address pointer register, wherein the another memory address is an address within the memory space;

storing the configuration data in a data latch; and

writing the configuration data stored in the data latch to a register at the register address stored in the address latch.

13. The method according to claim 12 , wherein the register is a peripheral register.

14. The method according to claim 13 , wherein the peripheral register is a special function register.

15. The method according to claim 14 , wherein the special function register is associated with a core independent peripheral (CIP).

16. The method according to claim 12 , further comprising the step of coupling the data latch to a first data bus and data memory.

17. The method according to claim 12 , further comprising the step of coupling the address latch to a second data bus and program memory.

18. The method according to claim 12 , wherein the DMA controller is configurable to operate in a direct addressing mode in which the first address pointer register stores a source address and the second address pointer register stores a destination address.

19. A method for indirect memory addressing with a programmable arbitrary sequence direct memory access (DMA) controller configured to transfer data within a memory space, said method comprising the steps of:

determining an operating mode from a control register configured to control an operating mode of the DMA controller;

wherein when operating in a first mode:

for performing a DMA transfer, using a first address pointer register for storing a first source address and a second address pointer register for storing a first destination address;

and when operating in a second mode:

reading a register address stored at a first memory address specified by the first address pointer register, wherein the first memory address is an address within a memory space accessible by the programmable arbitrary sequence DMA controller;

storing the register address in an address latch;

reading configuration data stored in a peripheral register having a second memory address specified by the register address in the address latch wherein the second address is an address within the memory space;

storing the configuration data in a data latch; and

writing the configuration data to a memory at an address specified by the second address pointer register.

20. The method according to claim 19 , wherein the register is a peripheral register.

21. The method according to claim 20 , wherein the peripheral register is a special function register.

22. The method according to claim 21 , wherein the special function register is associated with a core independent peripheral (CIP).

23. The method according to claim 19 , further comprising the step of coupling the data latch to a first data bus and data memory.

24. The method according to claim 19 , further comprising the step of coupling the address latch to a second data bus and program memory.

25. The method according to claim 19 , wherein the DMA controller is configurable to operate in a direct addressing mode in which the first address pointer register stores a source address and the second address pointer register stores a destination address.

Assignments (12)
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 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 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 059263/0001 →
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 →
SECURITY INTEREST Recorded Jun 5, 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 052856/0909 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2019
From: CURTIS, KEITH EDWIN
To: MICROCHIP TECHNOLOGY INCORPORATED
Reel/Frame 048817/0466 →