• ↑↓ to navigate
  • ↵ to open
  • ⟶ to select
  • ⌘ ⌥ ↵ to open in a panel
  • ←→ to navigate
  • esc to dismiss
⌘ '
keyboard shortcuts

The Comparison

DMA can operate in three different modes, each balancing transfer speed, CPU responsiveness, and implementation complexity differently.

Side-by-Side Comparison

FeatureBurst ModeCycle Stealing ModeTransparent Mode
Transfer styleEntire block at onceOne byte/word at a timeOnly when CPU not using bus
CPU statusPaused/halted until DMA finishesCan work between transfersNever blocked
Transfer speedFastest (no interruptions)Slower (bus arbitration per byte)Slowest (limited by CPU idle time)
CPU responsivenessWorst (completely blocked)Good (can respond to interrupts)Best (completely transparent)
ImplementationSimpleModerateComplex (needs bus monitoring)
Use caseHigh-priority, time-criticalGeneral-purpose systemsBackground transfers

Visual Timeline

Burst Mode: CPU → [██████ DMA ██████] → CPU Cycle Stealing: CPU → DMA → CPU → DMA → CPU → DMA → CPU Transparent: CPU → CPU → DMA → CPU → CPU → DMA → CPU

Key Insights

  1. Burst Mode: Best for real-time systems where transfer speed matters more than CPU responsiveness. CPU is fully blocked.

  2. Cycle Stealing: The most common mode — balances transfer speed with CPU responsiveness. CPU can handle interrupts between DMA transfers.

  3. Transparent Mode: Zero CPU overhead, but slowest. Good for background tasks where completion time doesn’t matter.

  4. Trade-off: Faster transfer = more CPU blocking. The system’s requirements determine which mode to use.

Visual Explanation

dma_modes_comparison A Dma Modes Comparison Input B Dma Modes Comparison Core Mechanism A->B triggers C Dma Modes Comparison Output B->C produces

Semantic Network

semantic_dma_modes_comparison THIS Dma Modes Comparison REL1 Related Concept THIS--REL1 related REL2 Builds Into THIS--REL2 builds into

Connections