The Direct Memory Access Controller (DMAC) is a hardware feature that enables movement of blocks of data from peripheral to memory, memory-to-peripheral or memory-to-memory. This movement of data by a separate entity significantly reduces the load on the processor.
A DMAC can save power in a system by putting the CPU in a low power state and using the DMAC (fewer gates/transactions) to move the data. Equally, using a DMAC can achieve higher performance in a system where it moves data in parallel with processing in the CPU.
Find out more...
AMBA DMA Controllers for AXI and AHB
DMA Controllers can have a significant impact on both system performance and system power. It is critical that the design provides for optimum compatibility with the bus architecture (AMBA) and provides the flexibility required to support a wide range of system requirements.
DMA in high-performance AXI systems
The AMBA AXI-based PrimeCell® DMA Controller, DMA-330, is a highly flexible, high-performance DMAC designed to provide maximum configurability and programmability. Configurability optimizes the gate count for target systems. The size can be as low as 40K for low-end configurations. The DMA-330 also provides a natural migration path for users of the AMBA AHB based DMA Controller, PL080.
An FSM based DMAC can provide only limited functionalities as the gate count increases rapidly with the increase in the number of features supported. In contrast, the DMA-330 is a micro-programmable DMAC, with its own instruction set, and provides a rich set of features while keeping the gate count low. The DMA-330 instruction set design provides flexibility for programming DMA transfers. The program code is stored in system memory that the DMAC accesses using its AMBA AXI interface and the DMA-330 uses an efficient caching system to optimize performance and minimize bus traffic.
DMA in cost-effective AHB systems
For AHB systems based around the Cortex-M™ processors ARM delivers the DMA-230 "micro" DMA controller. Designed for very low gate count and low power operation DMA-230 provides a flexible, high-performance DMA Controller required by such designs.