When comparing I/O to a toy shop shipping dept., what is the example for “Have protocols”?
interfaces for device I/O
When comparing I/O to a toy shop shipping dept., what is the example for “Have dedicated handlers”?
device drivers, interrupt handlers
When comparing I/O to a toy shop shipping dept., what is the example for “Decouple I/O details for core processing”?
abstract I/O device detail from applications
What are some examples of I/O devices?
Keyboard, microphone, speakers, display, mice, network interface cards…
I/O Devices Quiz:
For each device, indicate whether it’s typically used for input (I), output (O) or both (B).
- keyboard
- speaker
- display
- hard disk drive
- microphone
- network interface cards (NIC)
- flash card
I - keyboard O - speaker O - display B - hard disk drive I - microphone B - network interface cards (NIC) B - flash card
Name basic I/O Device features
- Control registers
- Micro controller
- On device memory
- Other logic
What is the purpose of control registers in I/O?
control registers can be accessed by the CPU and permit the CPU/device interactions
How are control registers divided? Explain each part.
- command registers, CPU uses to control what exactly the device will be doing
- data transfer registers, control the data that transfers in and out of the device
- status registers, used by the CPU to find out exactly what’s happening on the device
Describe the microcontroller on an I/O device.
A microcontroller is like a device’s CPU. It is what controls all of the operations that actually take place on the device. It may be influenced by the CPU, but the microcontroller will make sure what things happen vs. not.
What is PCI?
Peripheral Component Interconnect. It’s one of the standard methods for connecting devices to the CPU
What do today’s platforms typically support in terms of PCI versions? Give some reasons why.
PCI Express Interconnect (PCIe) which are technologically more advanced than PCI or PCI-X. - More bandwidth - faster - has lower access latency - supports more devices
Name types of CPU - Device interconnects other than PCI bus
- SCSI bus
- peripheral bus
- bridges
What determines what type of interconnect a device can directly attach to?
the controllers that are part of the device hardware
What are bridge controllers?
They can handle differences between different types of interconnects
T or F?
The operating system has to include a device driver for every type of different hardware device that is incorporated in the system.
True
What are device drivers responsible for?
All aspects of device access, management and control.
This includes logic that determines
- how requests can be passed from the higher levels of the system software applications to the actual device,
- how the system can response to device-level events like errors, response notifications or status change info
- in general any device specific details regarding the device configuration or operation
Who provides device drivers and are responsible for making sure they work for different OS or OS versions?
The manufacturers or the designers of the actual hardware
How do OS’es typically standardize device driver interfaces?
they provide some device driver framework so that the device manufacturers can develop their drivers within that framework given the specific interfaces that the OS supports
What are some benefits of standardizing device interfaces?
- device driver developers know exactly what is expected from the ways the rest of the OS will interact with their device
- The OS does not depend on one particular device (gives device independence and device diversity)
Name some different types of devices
- Block: disk
- Character : keyboard
- Network devices
What are key properties of Block: disk devices?
- read/write blocks of data
- direct access to arbitrary block
What are properties of Character: keyboard devices?
- get/put character
T/F
Network devices are somewhere in between block devices and character devices
True
What is memory mapped I/O?
Part of ‘host’ physical memory is dedicated for device interactions
What are Base Address Registers (BAR)?
These registers control the portion of the memory that’s reserved for device interactions (memory mapped I/O)
What is the I/O port model?
A method for CPU to interact with devices that requires dedicated in/out instructions for device access
What the two paths for devices to communicate to the CPU? Describe the pros and cons of each method.
Interrupt - interrupt handling steps \+ can be generated as soon as possible Polling \+ when convenient for OS - delay or CPU overhead
What is Programmed I/O (PIO)?
A method for the system to access/request an operation from a device.
There is no additional hardware support (involves CPU issuing instructions by writing into the command/data registers)
CPU “programs” the device
- via command registers
- data movement
What is Direct Memory Access (DMA)?
Relies on DMA controller (special hardware)
CPU “programs” the device
- via command registers
- via DMA controls
T/F
Memory can be swapped out to disk during a DMA transfer
F
Data buffer must be in physical memory until transfer completes