7 IO & Summary
Input/Output Devices
Bus: Common set of wires for communication among hardware devices plus protocols for carrying out data transfer transactions
- Operations: e.g., Read, Write
- Control lines, Address lines, Data lines
Two types of Disks:
- Magnetic Drives: Information stored by magnetizing ferrite material on surface of rotating disk
- Flash Drives(Solid State Drives and Thumb Drives): Information stored by trapping charge in a semiconductor and MOSFET based dualgate transistor
HDD
Actuator moves head (end of arm) over track ("seek"), wait for sector to rotate under head, then read or write
Disk Access Time = Seek Time + Rotation Time + Transfer Time + Controller Overhead
- Seek Time: time to position head to correct track
- Average Seek Time = 1/3 time for the head to cross all tracks
- Rotation Time: time for disk to rotate to proper sector
- Average rotation time = 1/2 time of a rotation
- Transfer Time: time for data to rotate under the head
HDD Scheduling
- FIFO
- Pro: Fair among requesters
- Con: order of arrival may be to random spots on the disk(Very long seeks)
- SSTF(Shortest seek time first): Pick the request that’s closest to head
- Pro: Reduce seek time, throughput increases
- Con: may lead to starvation
- SCAN(aka elevator): Take the closest request in a particular direction. When reaches the end, it reverses direction and follow the closest request.
- Pro: no starvation
- Con: Long waiting time for locations just visited by disk arm
- C(Circular)-SCAN: only goes in one direction, skips any requests on the way back
- Pro: A bit more fair to inner and outer tracks
SSD
Pros (vs. hard disk drives):
- Low latency, high throughput (eliminate seek/rotational delay)
- No moving parts: Very light weight, low power, silent, very shock insensitive
- Read at memory speeds (limited by controller and I/O bus)
Cons
- expensive (3-20x disk)
- Limited drive lifetime
IO Communicating
Processor accesses registers in two ways:
- Port-Mapped I/O: in/out instructions
- Memory-mapped I/O: load/store instructions
Here are 3 types of Memory-mapped I/O:
Polling
Path to a device generally has 2 registers:
- Control Register says it’s OK to read/write (I/O ready)
- Data Register contains data
Polling:
(1)Processor reads from control register in a loop, waiting for device to set Ready bit (0 → 1)
(2)Processor then loads from (input) or writes to (output) data register, resets Ready bit of control register (1 → 0)
Pro: low overhead
Con: may waste many cycles on polling if infrequent or unpredictable I/O operations
Interrupt
Device generates an interrupt whenever it needs service
- Pro: handles unpredictable events well, asynchronous to current program
- Con: interrupts relatively high overhead
Polling vs. Interrupts
Low data rate (e.g. mouse, keyboard)
- Use interrupts to avoid "waiting" for data
- Overhead of interrupts ends up being low
High data rate (e.g. network, disk)
- Start with interrupts
- Once you start getting data, switch to polling. Keep grabbing data until empty
DMA
Directed Memory Access:
- Device controller transfers data directly to/from memory without involving the processor
- Only interrupts once per page once transfer is done
Mechanism
- For incoming data, CPU receive interrupt from device; For outgoing data, CPU need to confirm that external device is ready
- CPU instructs DMA engine/device that data is available @ certain address
- Device/DMA engine handle the transfer, CPU is free to execute other thing
- Upon completion, Device/DMA engine interrupt the CPU again
Performance
Efficiency
- CPI: Clock cycles per Instruction
- MIPS: Millions of Instructions per Second
cpu time = Instructions CPI Clock cycle time
= Instructions * CPI / Clock rate
= Instructions / MIPS*10^6
Power and Energy
Total power = dynamic power + leakage power
Dynamic power activity capaictance voltage frequency]
Leakage power voltage
Energy = power time