Generally, a given peripheral device will use more than a single I/O port. A typical PC parallel printer interface, for example, uses three ports, a read/write port, and input port and an output port.
The read/write port is the data port ( it is read/write to allow the CPU to read the last ASCII character it wrote to the printer port ).
The input port returns control signals from the printer.
- These signals indicate whether the printer is ready to accept another character, is off-line,
is out of paper, etc.
The output port transmits control information to the printer such as
- whether data is available to print.
Memory-mapped I/O subsystems and I/O-mapped subsystems both require the CPU to move data between the peripheral device and main memory.
For example, to input a sequence of 20 bytes from an input port and store these bytes into memory, the CPU must send each value and store it into memory.