Skip to content

Bus Structure

A system bus is the set of shared electrical signal paths that interconnects the CPU, main memory and I/O controllers. A complete transfer uses address lines to select a source or destination, control lines to specify the operation and timing, and data lines to carry the value.

The functional arrangement is shown in the figure. A modern computer may replace one physical shared bus by several point-to-point links, but the logical address, data and control functions remain.

BusNormal directionInformation carriedWidth or control significance
AddressUsually CPU →\rightarrow memory/I/OBinary address of a memory location or I/O portWith nn address lines, at most 2n2^n distinct locations can be selected.
DataBidirectionalInstruction words, operands, device data and resultsAn mm-bit data bus carries at most mm bits per transaction; wider paths need more pins and traces.
ControlMixed directionRead, write, clock, reset, ready/wait, bus request/grant and interrupt request/acknowledgeEstablishes the bus master, operation, synchronization and completion; it has no single fixed direction.

Logical groups within a system bus.

The address bus is commonly unidirectional because the CPU or another current bus master initiates the transaction. The data bus must reverse direction between a read and a write. Control direction depends on the signal: an interrupt request travels toward the CPU, while interrupt acknowledge travels back to the requesting controller.

  1. Memory read: the CPU places the required address on the address bus and asserts memory read. The selected memory decodes the address, drives the requested value onto the data bus and may assert ready. The CPU samples the value and then removes the request.

  2. Memory write: the CPU places the destination address on the address bus and the new value on the data bus, then asserts memory write. The selected memory stores the value and signals completion; the CPU then releases the buses.

Only one device should drive a shared data bus at a time. Address decoding and bus-enable control prevent electrical contention. If a device is slower than the nominal cycle, a ready/wait handshake inserts wait states.

A synchronous bus relates transfers to a shared clock. It is simple and fast when devices have compatible timing. An asynchronous bus uses request/acknowledge handshaking and can accommodate devices of different speeds, at the cost of control overhead.

When the CPU, DMA controller or another agent can initiate a transaction, arbitration grants ownership to one requester. Bus request/grant lines, priority and fairness rules ensure that two masters do not transmit simultaneously and that a low-priority requester is not indefinitely denied.

An ideal peak data rate for one transfer per clock is

Rpeak=m8fbytes/s,R_{peak}=\frac{m}{8}f\quad\text{bytes/s},

where mm is data-bus width in bits and ff is bus frequency. This is an upper bound: arbitration delay, protocol overhead, wait states, electrical loading and shared-bus contention reduce sustained throughput. Bus width alone does not determine computer performance.

TypeDescriptionExamples or remarks
Internal busConnects registers, ALU, control and other units inside the CPUProcessor data path and internal control paths
System busConnects CPU, memory and I/O controllersLogical address, data and control groups; memory bus
Expansion busAttaches peripheral or add-in controllersPCI Express and legacy PCI
Parallel busSends several bits simultaneously over several conductorsShort memory channels and legacy parallel interfaces
Serial busSends ordered bits over one or a few lanesPCIe, USB, SATA, I²C and SPI

Bus classifications and examples.

Parallel links spend pins and board area to move many bits at once, but skew between conductors limits distance and high-speed scaling. Serial links use fewer conductors and can run at high symbol rates; multiple serial lanes may be combined for throughput. the section compares their timing and applies the distinction to RS-232.

  • Address: selects one of 2n2^n locations with nn lines.

  • Data: moves instructions, operands and results in either direction.

  • Control: specifies read/write, ownership, timing, readiness, reset and interrupts.

  • Transaction: address plus command first, controlled data transfer second, completion last.