Input/Output (I/O) is the process of transferring data between a computer and its peripherals. A peripheral is any piece of equipment attached to a computer. For example a mouse, keyboards, printers, etc.
Peripherals are connected via the I/O bus, meaning that they are not directly under the control of the CPU. The different electrical protocols required for such diverse peripherals as a keyboard or a DVD drive require that they are placed one step away from the main system.
This extra layer of electronics, as well as the inability of more than one peripheral to access the bus at a time, means that the process of reading from and writing to peripherals is slightly different to the process for memory.
Put simply, for a device to communicate with the CPU the following actions must take place:
1. Device communicates with I/O interface
2. I/O interface communicates with the I/O bus
3. I/O bus transfers data to a hardware register
4. Data is moved from the register to memory to be stored
In order for the CPU to correctly identify the communicating device each device is assigned a unique address.
Next: I/O Device Addresses