Relationship to Processor Architecture
Virtual memory frustrates DMA
Synchronization between controller and CPU
Caches required for processor performance cause problems for I/O
- Flushing is expensive, I/O pollutes cache
- Solution is borrowed from shared memory multiprocessors "snooping” (coherent DMA)
Caches and write buffers
- need uncached and write buffer flush for memory mapped I/O