Programmed I/O
- Simplest and least expensive scheme
- Device controller
- Bus
- Address bus To select a memory location or I/O device
- Data bus To transfer data
- Hardware buffer
- Handshaking protocol
- Disadvantages
- Poor resource utilization
- Only one device active at a time
- Gross mismatch between the speeds of CPU and I/O devices
CPU and I/O Overlap
- Hardware flag -- Blocks CPU if device is busy
- Polling is done by test-device flag
- Interrupt driven I/O
Memory-mapped I/O
I/O-mapped I/O