Direct Memory Access (DMA) is a technique in digital electronics and computing where hardware subsystems transfer data directly between memory and peripherals without CPU intervention. This allows faster data movement and frees the CPU for other tasks, improving system efficiency. DMA controllers manage these transfers, handling addresses and control signals. Commonly used in applications like disk drives, sound cards, and network cards, DMA significantly enhances data throughput and overall system performance.
Direct Memory Access (DMA) is a technique in digital electronics and computing where hardware subsystems transfer data directly between memory and peripherals without CPU intervention. This allows faster data movement and frees the CPU for other tasks, improving system efficiency. DMA controllers manage these transfers, handling addresses and control signals. Commonly used in applications like disk drives, sound cards, and network cards, DMA significantly enhances data throughput and overall system performance.
What is Direct Memory Access (DMA) and why is it used?
DMA lets peripherals transfer data to or from memory without CPU involvement, freeing the CPU to do other work and speeding up data movement.
What are the main components of a DMA system?
A DMA controller with channels, a bus interface, and an arbiter that grants bus access; peripherals request transfers via signals to the DMA controller.
How does a DMA transfer differ from a CPU-driven transfer?
In DMA, the DMA controller drives the data transfer on the system bus, while the CPU configures the transfer and can perform other tasks; CPU-driven transfers move data item by item under software control.
What are common DMA transfer modes and when are they used?
Burst mode transfers a whole block in one go; cycle stealing uses the bus in small cycles while the CPU runs; transparent mode starts only when the CPU is idle.
How is a DMA transfer completed and how is the CPU notified?
The DMA controller signals completion with an interrupt or status flag, allowing the CPU to resume processing and perform any post-transfer tasks.