Direct memory access controller

US9921985B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9921985-B2
Application numberUS-201514860398-A
CountryUS
Kind codeB2
Filing dateSep 21, 2015
Priority dateDec 15, 2006
Publication dateMar 20, 2018
Grant dateMar 20, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system has at least one bus, a central processing unit (CPU) coupled with the bus, a memory coupled with the bus, a direct memory access (DMA) controller having a plurality of DMA channels and operating independently from the CPU and being coupled with the bus, wherein for access to the bus the DMA controller is programmable in a first mode to have priority over the CPU and in a second mode in which at least one DMA channel of the DMA controller is suspended from accessing the bus.

First claim

Opening claim text (preview).

What is claimed is: 1. A microcontroller comprising: a bus; a central processing unit (CPU) coupled with said bus; a memory coupled with said bus; a plurality of peripherals coupled with the bus; a direct memory access (DMA) controller having a plurality of DMA channels and operating independently from said CPU and being coupled with said bus, wherein for access to said bus said DMA controller is programmable in a first mode to have priority over said CPU and the plurality of peripherals and in a second mode to immediately suspend data transfer on all DMA channels and grant the CPU direct access to the bus. 2. The system according to claim 1 , further comprising a control register coupled with said DMA controller and for programming said DMA controller, said control register comprising a bit for setting said first or second mode. 3. The system according to claim 1 , wherein said first or second mode are programmable through a control signal fed to said DMA controller. 4. The system according to claim 1 , wherein each of said plurality of DMA channels has an assigned priority level. 5. The system according to claim 1 , wherein said DMA controller comprises for each channel a channel control register. 6. The system according to claim 5 , wherein each channel control register comprises a programmable bit controlling whether said channel is enabled or disabled. 7. The system according to claim 4 , wherein said first or second mode is programmable through a control signal fed to said DMA controller comprising a priority level. 8. A method for performing a data transmission within a microcontroller according to claim 1 , the method comprising: programming said DMA controller to operate in the first mode, wherein upon request for a DMA data transmission, granting the DMA controller access to said bus; thereafter programming said DMA controller to operate in the second mode to immediately suspend data transfer on all DMA channels; granting the master device access to said bus; performing at least one bus access by said master device; and thereafter programming said DMA controller to operate in the first mode to resume data transfer on all DMA channels. 9. The method according to claim 8 , wherein said steps of programming said DMA controller are performed by a configurable register. 10. The method according to claim 9 , wherein said steps of programming said DMA controller are performed by setting and resetting a bit in said configurable register. 11. The method according to claim 8 , wherein said steps of programming said DMA controller are performed by feeding a control signal to said DMA controller. 12. The method according to claim 11 , wherein said control signal is generated from an exception signal fed to the master device. 13. The method according to claim 8 , wherein if a data transfer of said data transfer has been initiated by said DMA controller before suspension has been initiated then finishing said data transfer and then suspending access of said DMA controller. 14. The method according to claim 8 , wherein said master device is a central processing unit (CPU) and said step of programming is performed by said CPU. 15. The method according to claim 8 , wherein said master device is a peripheral device and said step of programming is performed by a central processing unit. 16. The method according to claim 8 , wherein said DMA controller is operable to cycle through multiple DMA channels transactions of DMA channels having the same priority level. 17. A method for performing a data transmission over a bus coupled with a master device and a direct memory access (DMA) controller having a plurality of DMA channels; the method comprising: providing the master device coupled with the bus, a memory coupled with the bus, a plurality of peripheral devices coupled with the bus and the DMA controller coupled with the bus within a microcontroller; assigning each of said plurality of DMA channels a priority level; upon request for a DMA data transmission, granting the DMA controller access to said bus with one of said plurality of DMA channels; feeding a suspend command having a priority level to said DMA controller; if said priority level in said suspend command is higher than a priority level of said DMA channel having access to said bus, then suspending any DMA channel having a lower priority than said priority level in said suspend command from accessing said bus; if no other DMA channel has access to said bus, then granting the master device access to said bus; performing at least one bus access by said master device; feeding a resume command to said DMA controller to resume said DMA data transmission. 18. The method according to claim 17 , wherein said DMA controller is operable to cycle through multiple DMA channels transactions of DMA channels having the same priority level. 19. The method according to claim 17 , wherein said master device is a central processing unit of the microcontroller. 20. The method according to claim 17 , wherein said steps of programming said DMA controller are performed by setting and resetting a bit in a configurable register of the microcontroller.

Assignees

Inventors

Classifications

  • Synchronisation and timing concerns (synchronisation on a memory bus G06F13/4234) · CPC title

  • G06F13/30Primary

    with priority control · CPC title

  • Halt processor DMA (G06F13/30 takes precedence) · CPC title

  • using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence) · CPC title

  • G06F13/34Primary

    with priority control · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9921985B2 cover?
A system has at least one bus, a central processing unit (CPU) coupled with the bus, a memory coupled with the bus, a direct memory access (DMA) controller having a plurality of DMA channels and operating independently from the CPU and being coupled with the bus, wherein for access to the bus the DMA controller is programmable in a first mode to have priority over the CPU and in a second mode i…
Who is the assignee on this patent?
Microchip Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/30. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 20 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).