Direct Memory Access in Computer Architecture

Direct Memory Access (DMA) is a process where the data is transformed between the microprocessor (CPU), memory and peripheral devices directly without the involvement of the microprocessor (CPU).
Direct Memory Access (DMA) is first initialized by CPU and the CPU should send some useful information to DMA controller and letting the DMA controller is to manage the memory buses directly, it would improve the speed of data transfer. This process is managed by a chip known as a DMA controller (DMAC). The CPU is idle and it has no control of the memory buses. A DMA controller takes over the buses to manage the transfer directly between the I/O device and memory.

Some DMA information includes below:

1. The starting address of the memory block where the data is available for reading or where the data is to be stored (for writing).

2. The word count is the number of words in the block.

3. Specify the mode of transfer such as read or write.

4. A control to start the DMA transfer.

When the DMA controller received the above information, the DMA starts and continues to transfer data between memory and  I/O devices until an entire block is transferred. When the assigned job of the DMA is done, it informs the CPU about the termination from the job.

DMA can be used for “memory to memory” copying or moving of data within memory. DMA is also used in the network-on-chip and in-memory computing architectures. Many hardware systems are uses DMA, including disk drive controllers, Graphics Cards, network cards and sound cards.