• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

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.

Connections