Skip to main content

Compare status check I/O, interrupt I/O and DMA

Short answer

An instrumentation system measures, processes, displays and/or controls physical quantities. In status check I/O, the CPU polls the flag, causing high overhead and slow speed. Interrupt-driven I/O reduces CPU time by servicing only on request, while DMA uses a controller for block transfers with minimal CPU involvement and highest speed.

Define instrumentation system. Compare status check I/O, Interrupt driven I/O and DMA.

An instrumentation system is a system of devices that measures, collects, processes, displays and/or controls physical quantities. In a microprocessor-based version, the three ways to transfer data between I/O and CPU are compared below.

PointStatus check (polling)Interrupt drivenDMA
Who controls transferCPU programCPU, on request of deviceDMA controller
CPU activityCPU loops, reading the status flagCPU does other work, services ISR when interruptedCPU free, bus only held for short time
CPU overheadVery highMedium (context saving per byte)Very low
SpeedSlowMediumFastest (block rate near memory speed)
HardwareSimplest: port and status bitInterrupt lines, INTA, controller (8259)DMA controller (8237), HOLD/HLDA
Response timeDepends on polling loopFast (latency of an instruction)Very fast
Suitable forFew, simple, slow devicesOccasional events, keyboards, alarmsBlock transfers: disk, ADC bursts
SoftwareSimpleISR neededNeeds set-up of address and count
 Polling:  loop: IN status; test ready? no -> loop; yes -> IN data
 Interrupt: main program ... <INTR> -> ISR -> return
 DMA:      DREQ -> HOLD -> HLDA -> block transferred -> HOLD off

✓ Answer checked by Claude Sonnet 5.5

All Instrumentation II chapter 1 questions →