Computing Library › Digital Logic & Circuits
Digital Logic & Circuits

Bus

A bus is a shared set of wires that carries data, addresses, or control signals between components in a digital system.

What it is

A bus is a group of conductors used in common by several components to move information. Rather than a dedicated wire between every pair of parts, a bus lets many devices share one path, taking turns to communicate. It reduces wiring at the cost of shared access.

The three classic buses

Kronos motion — control room

A traditional system splits into three: the data bus carries the values being transferred, the address bus carries the location being accessed, and the control bus carries signals like read, write, and clock. The address bus width sets how much memory can be addressed.

Sharing the wires

Only one device may drive a shared bus line at a time; two drivers fighting would cause a conflict. Devices use tri-state outputs that can present 0, 1, or a high-impedance state that effectively disconnects them, so idle devices release the bus for the active one.

Arbitration

When several devices want the bus at once, an arbiter decides who gets it, using priority or round-robin schemes. This prevents conflicts and ensures fair access.

In a processor

Buses tie the datapath together, moving operands between the register file, ALU, and memory. Internal buses are often multiplexed rather than tri-stated in modern on-chip designs.