Title: Processor Input/Output (I/O)
 1Processor Input/Output (I/O)
- Processors need to communicate with other devices 
comprising the computer, such as  - main memory 
 - magnetic disks (floppy and hard drives) 
 - keyboard, mouse 
 - printer, graphic display 
 - network
 
  2Impact of I/Oon System Performance
- Example (PH, p.639) 
 -  Benchmark takes 100sec (90sec CPU, 10sec I/O). 
If CPU time improves 50/year for 5 years, but 
I/O doesnt improve, how much faster will program 
run at end of 5 years? 
  3Impact of I/Oon System Performance
After n years CPU time I/O time Elapsed time  I/O time
0 90 sec 10 sec 100 sec 10
1 10 sec 70 sec 14
2 10 sec 50 sec 20
3 10 sec 37 sec 27
4 10 sec 28 sec 36
5 10 sec 22 sec 45 
 4I/O Performance MeasuresExamples
- Supercomputer I/O benchmarks 
 - primarily concerned with data throughput 
 - Transaction Processing I/O benchmarks 
 - primarily concerned with reliability, response 
time, throughput  - File System I/O benchmarks 
 - variety of access patterns (application workload 
dependent) 
  5I/O Device Variety
Device Behavior Partner Data rate (KB/sec)
Keyboard input human 0.01
Mouse input human 0.02
Voice input input human 0.02
Scanner input human 400.00
Voice output output human 0.60
Line printer output human 1.00
Laser printer output human 200.00
Graphics Display output human 60,000.00
Modem input or output machine 2.00-8.00
Network/LAN input or output machine 500.00-6000.00
Floppy disk storage machine 100.00
Optical disk storage machine 1000.00
Magnetic tape storage machine 2000.00
Magnetic disk storage machine 2000.00-10,000.00 
 6Magnetic Disks
- Rotating platters with magnetic surface 
 - Nonvolatile  data preserved without continuous 
electrical power  - Hard Drive vs. Floppy Drive 
 - made of metal (glass?) 
 - more rigid ? larger, multiple platters 
 - more precise control ? higher density 
 - spins faster ? higher data rate
 
  7Magnetic DisksHard Drives
- Composed of platters (stack) 
 - divided into tracks (concentric circles on 
platter)  - divided into sectors (arc-region of track) 
 - Constant speed 
 - each track stores same number of bits 
 - density decreases as head moves to outer tracks 
 - Constant bit density 
 - requires disk to spin slower for outer tracks 
 
  8Magnetic DisksHard Drives
- Data access process 
 - Move head to correct track (seek time) 
 - Wait for correct sector to rotate in(rotational 
latency/delay)  - Read the sector (transfer time) 
 - Administrative (disk controller) 
overhead(controller time)  
  9NetworksCharacteristics
- Distance 0.01 to 10,000 km 
 - Speed 1 KB/sec to 100 MB/sec 
 - Topology Bus, ring, star, tree 
 - Shared Lines None (point-to-point) or shared 
(multi-drop) 
  10NetworksExamples
- RS232 Terminal Network 
 - Distance 10-100 m 
 - Speed 0.3-19.2 Kbit/sec 
 - Topology star 
 - Shared Lines point-to-point 
 - Ethernet/Local Area Network (LAN) 
 - Distance 10m-10km (with repeaters) 
 - Speed 10-1000 Mbit/sec 
 - Topology bus (but switching possible) 
 - Shared Lines multi-drop 
 
  11NetworksExamples
- Internet/Long-Haul Network 
 - Distance 10-10,000km 
 - Speed 100-1000(?) Mbit/sec 
 - Topology multi-star 
 - Shared Lines multi-drop 
 
  12Buses
- Shared medium for communication 
 - everyone directly connected 
 - Connecting 
 - processor and memory 
 - processor/memory to other devices 
 
  13BusesTypes
- Processor-memory 
 - short, customized, synchronous 
 - I/O 
 - longer, standardized (need to support variety of 
devices), asynchronous  - tend not to connect directly to processor-memory 
bus  - Backplane 
 - hybrid 
 - built into motherboard
 
  14BusesSynchronicity
- Synchronous 
 - communication happens on clock ticks 
 - risk of clock skew limits length 
 - Asynchronous 
 - requires handshaking protocol 
 - communicating subsystems like finite state 
machines 
  15BusesHandshaking protocol
- Example Reading a word from memory 
 - Device signals ReadReq, puts address to read on 
data line  - Memory reads address from data line, signals Ack 
 - Device drops ReadReq and drops data line 
 - Memory sees ReadReq release, drops Ack 
 - Memory puts data on data line, raises DataRdy 
 - Device sees DataRdy, reads data from data line, 
signals Ack when done  - Memory sees Ack, drops DataRdy, releases data 
line  - Device sees DataRdy drop, drops Ack