A bus, in computing terms, is a set of wires designed to transfers data, addresses and control information from a specified source to a specified destination. There are two main types of buses:

  • Internal buses – which connect the various registers and internal components of the CPU.
  • External buses – which connect the CPU to main memory and to the input/output units.
  • A bus may be unidirectional, capable of sending in one direction only, or it may be bi-directional. A dedicated bus is a unidirectional bus connecting one source and one destination.

    For these reasons, a shared bus system is often used, even though simultaneous transfer of data is no longer possible. A further advantage of a shared bus system is that more devices can easily be added.

    To Sum up shared and dedicated buses

    • Shared buses have all the devices on one bus – an example being the PCI bus.
    • Dedicated bus is to connect one specific device to another specific device – an example being the bus that connects the CPU with the main memory.

    In addition there are control buses. Control buses are used to send control signals between the control unit and the ALU, between the processor and memory, and between processor units and peripherals. Examples of such signals are:

    • Signals to directly control the operation of the ALU
    • Signals to indicates a status condition such as ‘busy’ or ‘operation complete’
    • Signals to indicate that an error condition such as overflow has occurred.
    • Start and stop signals and timing information