Block Diagram of DMA
The mutual understanding between the device controller and DMA controller is performed via pair of wires called DMA request and DMA acknowledge. Let’s see what is the role of these wires in the DMA transfer,
Direct Memory Access
DMA (Direct memory access) is the special feature within the computer system that transfers the data between memory and peripheral devices(like hard drives) without the intervention of the CPU. In other words, for large data transfer like disk drives, it will be wasteful to use expensive general-purpose processors in which status bits are to be watched and fed the data into the controller register one byte at a time which is termed Programmed I/O. Computers avoid burdening the CPU so, they shift the work to a Direct Memory Access controller. Let’s see the workings of this in detail.
To initiate the DMA transfer the host writes a DMA command block into the memory. This block contains the pointer to the source of the transfer, the pointer to the destination of the transfer, and the count of the number of bytes to be transferred. This command block can be more complex which includes the list of sources and destination addresses that are not contiguous. CPU writes the address of this command block and goes to other work. DMA controller proceeds to operate the memory bus directly, placing the address on it without the intervention of the main CPU. Nowadays simple DMA controller is a standard component in all modern computers.
Contact Us