Direct Memory Access(DMA) is a protocol for direct memory access. With the DMA protocol, information is exchanged between the main memory and the mass memory without using the central processing unit( CPU). DMA has its own control logic, the DMA controller, for controlling the system bus, and is particularly suitable for the fast transfer of large amounts of data.
During DMA transfer, the DMA interface is initialized by the central processing unit, and a DMA request to the CPU is used to enable the bus. Afterwards the DMA interface uses the buses in the same way as the central processing unit. DMA knows four operating modes: the Byte Mode with the byte by byte transfer, the Burst Mode, the Halt Mode, where the CPU is stopped until the DMA transfer is finished, and the Transparent Mode, where the DMA interface and the central unit work time multiplexed.
A further development of DMA for ATA/ IDE is Ultra DMA, which supports data transfer rates of 33 MB/s and 66 MB/s, as well as PIO modes 1, 3 and 4. An alternative to DMA is Programmed Input Output (PIO), in which however all transferred data passes through the processor, and Remote DMA( RDMA).