Direct Memory Access (DMA) is a capability that allows an I/O controller to directly transfer data to and from main memory without CPU involvement. DMA enables the CPU and I/O controllers to work in parallel, with controllers autonomously moving data while the CPU performs other tasks.
The CPU configures DMA transfers using PIO to send the controller:
Once configured, the controller performs the transfer independently. When complete, the controller typically signals the CPU using an interrupt.
DMA is essential for high-performance I/O operations such as disk reads/writes and network packet transfers.