Burst Mode DMA blocks the CPU entirely during transfer, which can cause system unresponsiveness. But we still want DMA’s benefit of freeing the CPU from handling each byte. We need a middle ground.
Cycle Stealing Mode DMA transfers one byte or word at a time, then releases the bus to let the CPU run momentarily between transfers, balancing throughput with CPU responsiveness.
- DMA controller takes bus, transfers one byte/word
- DMA releases bus to CPU
- CPU can access memory/run for a few cycles
- DMA requests bus again, transfers next byte/word
- Repeat until entire block is transferred
- Slower than burst mode (more bus arbitration overhead per byte)
- CPU is not fully halted — can respond to interrupts, do useful work
- Good balance between transfer speed and system responsiveness
- Most common DMA mode in general-purpose systems
- Built from: DMA, DMA Controller
- Contrasts with: Burst Mode DMA — CPU fully blocked during transfer
- Contrasts with: Transparent Mode DMA — DMA only runs when CPU not using bus
- Related: CPU, System Bus
- More bus arbitration overhead than burst mode — each transfer needs bus request/grant
- If CPU is very active, DMA transfer can take a long time (many cycles “stolen”)
- I/O device may underrun if DMA can’t keep up due to CPU bus usage