I/O Systems: CS6461 - Computer Architecture Fall 2016 Morris Lancaster
I/O Systems: CS6461 - Computer Architecture Fall 2016 Morris Lancaster
Fall 2016
Morris Lancaster
Adapted from Professor Stephen Kaislers Slides
Polling
For very high-speed I/O devices the CPU may be too slow
when processing this data a byte (or word or double word) at a
time.
Such devices generally have an interface to the CPU/Memory
bus so they can directly read and write memory.
This is known as direct memory access since the peripheral
device accesses memory directly, without using the CPU as an
intermediary.
This often allows the I/O operation to proceed in parallel with
other CPU operations, thereby increasing the overall speed of
the system.
Note, however, that the CPU and DMA device cannot both use
the address and data busses at the same time. (in most
machines).
Types of Buses:
processor-memory buses: short and high speed
I/O buses : long and have many devices connected to them
backplane buses: allow processors, memory, and I/O devices to
coexist on single bus
http://www.scsita.org/terms-and-terminology.html
10/7/2017 CSCI 6461 Computer Architecture 32
How Do Buses Fit In?
Pentium 4
processor
Well:
CPU Performance increased 50% - 100% per year, now
slowing to 25-50% or less
Memory Performance increasing slowly, but slower than
CPU speed by order of magnitude
I/O Performance limited by mechanical delays (< 5% per
year performance increase IOs per second or MBs per
second)
Amdahls Law: System speed-up is limited by the
slowest part!
10% I/O & 10x CPU 5x Performance (lose 50%)
10% I/O & 100x CPU 10x Performance (lose 90%)
So, 100% speed-up in CPU performance buys you
little if you cant get the data on and off the disk
much faster or to and from CPU much faster.
10/7/2017 CSCI 6461 Computer Architecture 35
So, who cares? WE DO!!
I/O bottleneck:
Diminishing fraction of time in CPU
Diminishing value of faster CPUs
I/O Design is an important, but neglected topic in
computer architecture and even more neglected in the
study of the design and operation of operating systems.
So, assume:
3600 RPM 60 RPS
Avg seek time ~ 9 msecs
100 sectors/track; 512 bytes/sector
tcontroller + tqueuing ~ 1 msec
So, what is the average time to read one sector?
Rate of transfer = 100 sectors/trk * 512 bytes/sector * 60 RPS =>
2.4 MBytes/s
ttransfer = 512 bytes/2.4 Mbytes/s = 0.2 msecs
trotation = 0.5/ 60 RPS 8.3 msecs
tdisk = 9 msecs + 8.3 msecs + 0.3 msecs + 1 msec = 18.5 msecs
So, the time to transfer is the smallest component of the I/O
time!!
Note: tqueuing gets longer the more requests are issued against
the disk
10/7/2017 CSCI 6461 Computer Architecture 44
I/O System: Queuing