Direct Memory Access (DMA) is a chip which is used for controlling flow of bits between memory and controller directly. In this process CPU is not contacted over and over again. Given below is the architecture of DMA which is handling one transfer at a time. DMA contains different registers like control register, memory address register, count register, etc.
Working of DMA: Here are the steps for using DMA:
1) DMA controller is programmed by the CPU and registers are set.
2) Read request is sent by the DMA controller to the Disk controller.
3) Data is transferred from the buffer to the main memory. This is the write operation.
4) After the write operation is complete Disk controller sends an acknowledgement to the DMA controller. In the DMA controller, memory address is incremented and count is decremented. If count > 0, steps 2 to 4 are repeated until count = 0. Then DMA controller informs the CPU that transfer is complete.