CPU Polling in I/O Transfer Methods: DMA, Interrupt-Driven, Program-Controlled, and Asynchronous I/O
CPU Polling in I/O Transfer Methods: DMA, Interrupt-Driven, Program-Controlled, and Asynchronous I/O
In computer architecture, the key distinction among I/O transfer methods is how the CPU learns that data is ready and how much the CPU is involved during the transfer.
To the question—“Which I/O transfer method involves the CPU polling the device until data is read?”—the method is Program-controlled I/O, because the CPU repeatedly checks (polls) the device’s status registers until data becomes available.
A helpful way to contrast the options:
Therefore, the correct choice is: (iii) Program-controlled I/O.
I/O and DMA (intro concepts)
Core concepts and mapping to the question
CPU polling is the defining behavior of program-controlled I/O: the CPU issues I/O commands, then loops checking device readiness until the transfer can proceed.
Meanwhile:
- Interrupt-driven I/O avoids continuous polling by notifying the CPU when the device is ready.
- DMA (Direct Memory Access) lets a DMA controller move data without the CPU actively copying each word.
- Asynchronous I/O typically uses mechanisms like callbacks/completions; the CPU is not stuck in a tight “poll until ready” loop.
Key terms to remember (for exams)
- Program-controlled I/O
- Interrupt-driven I/O
- DMA
- Asynchronous I/O
Deciding which option uses CPU polling
- 1Step 1
Polling means the CPU repeatedly checks the device status (often in a loop) until data is ready to be read.
- 2Step 2
If the CPU keeps checking until ready, it’s program-controlled I/O.
- 3Step 3
i) DMA: CPU is not doing word-by-word transfer; a DMA controller moves data. ii) Interrupt-driven: CPU is alerted by an interrupt, not by continuous polling. iii) Program-controlled: CPU actively polls. iv) Asynchronous I/O: completion happens later; CPU doesn’t necessarily poll in a tight loop.
- 4Step 4
Therefore the method that involves CPU polling until data is read is iii) Program-controlled I/O.
- 5Step 5
Correct answer: (iii) Program-controlled I/O.
Performance/behavior intuition (why polling happens only in one option)
Polling creates CPU overhead because time is spent repeatedly checking status bits, which is wasteful when the device takes a while to become ready.
Below is a comparison focused on the question’s criterion: CPU polling vs CPU notification vs delegated transfer.
| Method | CPU polls the device status until ready? | Who moves data (conceptually) | Typical CPU behavior during wait |
|---|---|---|---|
| i) DMA | No | DMA controller | CPU can do other work; notified on completion |
| ii) Interrupt-driven I/O | No | Device + (often) controller/handler path | CPU waits for an interrupt/event |
| iii) Program-controlled I/O | Yes | CPU reads/writes via port/registers | CPU loops checking readiness |
| iv) Asynchronous I/O | Usually no tight polling | Often OS/device mechanism | CPU continues; completion later (callback/completion event) |
Polling Intensity vs I/O Method (conceptual)
Higher bars mean more CPU time spent repeatedly checking readiness.
Exam trick
If the wording mentions the CPU “repeatedly checking” or “waiting in a loop until ready,” that’s almost always program-controlled I/O.
Common confusion
DMA is often described as “CPU involvement reduced,” but that’s different from “CPU polling.” DMA delegates data movement to a DMA controller rather than keeping the CPU polling status continuously.
Quick FAQ
Knowledge Check
Which I/O transfer method involves the CPU polling the device until data is read?