Input Output Techniques:
o   Interrupt driven
o   Direct Memory Access (DMA)
o   Programmed
Programmed I/O
-   CPU has control over I/O directly
-   Read/write commands
-   Sensing status
-   Transferring data
-   Wastes CPU time
-   CPU waits for I/O module to finish operation
-   I/O module performs operation
-   I/O module sets status bits
-   CPU requests I/O operation
-   CPU checks status bits periodically
-   I/O module doesn't inform CPU directly
-   I/O module does not interrupt CPU
-   Under programmed I/O data transfer is similar memory access (CPU viewpoint)
-   Each device given unique identifier
-   CPU may wait or come back later
-   CPU commands have identifier (address)
I/O Mapping
-   Large selection of the memory access commands available
-   Memory mapped I/O
o   memory and Devices share an address space
o   I/O looks like memory read/write
o   No special commands for I/O
-   Restricted set
-   Isolated I/O
o   Separate address spaces
o   Need I/O or memory select lines
o   Special commands for I/O