• Input-Output interface provides a method for transferring information between internal storage (such as memory and CPU registers) and external I/O devices.
  • Peripherals connected to a computer need special communication links for interfacing them with the central processing unit.
  • The communication link resolves the following differences between the computer and peripheral devices.

             o Devices and signals

                Peripherals - Electromechanical Devices

                CPU or Memory - Electronic Device

            o  Data Transfer Rate

                Peripherals-Usually slower

                CPU or Memory- Usually faster than peripherals

                Some kinds of Synchronization mechanism may be needed

             o Unit of Information


                CPU or Memory - Word

             o Operating Modes

               Peripherals - Autonomous, Asynchronous

               CPU or Memory – Synchronous

  • To resolve these differences, computer systems include special hardware components (Interfaces) between the CPU and peripherals to supervise and synchronize all input and output interfaces.

I/O Bus and Interface Modules

  • The I/O bus consists of data lines, address lines and control lines.


                                         Fig: Connection of I/O bus to input-output devices

  • Interface performs the following:
    • Decodes the device address (device code)
    • Decodes the commands (operation)
    • Provides signals for the peripheral controller
    • Synchronizes the data flow and supervises the transfer rate between peripheral and CPU or Memory
  • I/O commands that the interface may receive:
    • Control command: issued to activate the peripheral and to inform it what to do.
    • Status command: used to test various status conditions in the interface and the peripheral.
    • Output data: causes the interface to respond by transferring data from the bus into one of its registers.
    • Input data: is the opposite of the data output.

I/O versus Memory Bus

  • Computer buses can be used to communicate with memory and I/O in three ways:
    • Use two separate buses, one for memory and other for I/O. In this method, all data, address and control lines would be separate for memory and I/O.
    • Use one common bus for both memory and I/O but have separate control lines. There is a separate read and write lines; I/O read and I/O write for I/O and memory read and memory write for memory.
    • Use a common bus for memory and I/O with common control line. This I/O configuration is called memory mapped.

Isolated I/O versus Memory Mapped I/O

  • Isolated I/O
    • Separate I/O read/write control lines in addition to memory read/write control lines
    • Separate (isolated) memory and I/O address spaces
    • Distinct input and output instructions

Memory-mapped I/O

  • A single set of read/write control lines (no distinction between memory and I/O transfer)
  • Memory and I/O addresses share the common address space which reduces memory address range available
  • No specific input or output instruction so the same memory reference instructions can be used for I/O transfers
  • Considerable flexibility in handling I/O operations

Example of I/O Interface


  • Information in each port can be assigned a meaning depending on the mode of operation of the I/O device
    • Port A = Data; Port B = Command; Port C = Status
  • CPU initializes (loads) each port by transferring a byte to the Control Register
    • Allows CPU can define the mode of operation of each port
    • Programmable Port: By changing the bits in the control register, it is possible to change the interface characteristics