/diː-ɛm-eɪ/
n. “A method for transferring data between devices and memory without involving the CPU for each byte.”
DMA, short for Direct Memory Access, is a data transfer technique that allows peripheral devices, such as HDDs, SSDs, or network cards, to read from or write to system memory directly, bypassing the CPU for individual data moves. This reduces CPU overhead, allowing the processor to focus on other tasks while large blocks of data are transferred efficiently.
DMA is commonly used in conjunction with storage interfaces like ATA and modern I/O devices, improving system performance significantly compared to CPU-driven methods like PIO.
Key characteristics of DMA include:
- CPU Offload: Reduces CPU involvement in data transfer operations.
- High-Speed Transfers: Moves large blocks of data quickly between memory and devices.
- Versatile: Supports multiple devices and transfer modes, including burst and block transfers.
- System Efficiency: Frees up the CPU for computation while data moves independently.
Conceptual example of DMA usage:
// DMA data transfer workflow
Peripheral device requests DMA transfer
DMA controller sets up memory addresses and transfer length
DMA controller moves data directly between device and memory
CPU is notified when transfer completesConceptually, DMA is like a dedicated delivery service for data: it picks up data from a device and delivers it directly to memory without asking the CPU to carry each piece, greatly increasing efficiency.