Using a processor to move data around the system can be an inefficient use of power and processor execution time. For this reason many systems include a Direct Memory Access Controller (DMAC), which is a dedicated engine for moving data around the physical memory system.
The PrimeCell DMA Controller is a multi-channel AXI engine, with a microcoded job description to enable transfers of complex structures. The DMAC can support concurrent Secure and Non-secure channels, each with independent interrupt events and controlled by a dedicated APB interface. A Non-secure transaction trying to program a DMA transfer to or from Secure memory will result in the DMA transfer failing.