Direct memory access
From TPU Reference
Also: DMA
Direct Memory Access is a feature in computing that allows certain devices to access the system's main memory for reading/writing without CPU intervention. This can greatly reduce the CPU load, because the CPU does not have to copy every byte from the device to the main memory.
Computers have several DMA channels that can be occupied by one or several devices. For example a sound card uses DMA to transfer the audio samples it has to play from the system's main memory onto the sound card's hardware buffers. After initiating the transfer, the CPU is now available for other processing tasks. The same principle is used for networking, storage and others.
Most PCs have a dedicated DMA controller which takes further load off the CPU. When the data transfer is complete the DMA controller generates an interrupt to notify the CPU that the operation is completed.
DMA in storage
Originally the DMA transfers to move data from the IDE/ATA interface to the CPU were single word transfers. This means that one unit of data, 16-bit in this case, could be moved. As you can imagine this is extremely inefficient when trying to move large amounts of data.
With the ATA-2 specification multiword DMA transfers were introduced which could move several words per transfer, greatly reducing the overhead. Multiword DMA transfers are now a standard of ATA-3 and up, single word transfers are no longer allowed.
Even with multiword DMA transfers the DMA controller on the motherboard was often the limiting factor, because all transfers had to be coordinated through it. Bus Master DMA fixes this problem by allowing the HDD controller to write to the memory on its own without the need of the DMA controller.
After initial problems with the implementation and stability of drivers, Ultra DMA quickly became a standard for IDE devices and is now widely adopted.
