Storage, Buses & I/O

a bus

Think of an old-fashioned party-line telephone shared by a whole street: one set of wires connects every house, only one person may speak at a time, and everyone else can hear it. A bus in a computer is that shared set of wires. It is a common pathway that several components — the CPU, memory, and I/O controllers — all tap into to send data, addresses, and control signals to one another. Because the wires are shared, a bus needs rules (a protocol) about who may drive the wires, and only one sender can use them at any instant.

A classic bus carries three kinds of information, often on separate groups of wires: the address lines say which location or device the message is for, the data lines carry the actual bits, and the control lines carry signals like 'this is a read', 'this is a write', or 'I am ready'. A transfer is a little conversation: a sender puts an address and a command on the bus, the addressed device responds, and bits move across the data lines. Two numbers describe a bus's speed: its width (how many data bits move in parallel, e.g. 64) and its clock rate (how many transfers per second), and bandwidth is roughly width x rate.

The honest limitation, and the reason buses are fading, is contention. Because the wires are shared, every extra device must take turns, and long shared wires are electrically hard to run fast (signals reflect and interfere). As chips got faster, the shared bus became a bottleneck — a single doorway everyone must queue at. That is why modern systems have largely replaced wide shared buses with switched point-to-point interconnects like PCI Express, where each device gets its own private link (see interconnect and pci-express). The word 'bus' survives in many names, but inside, the topology has changed.

A 64-bit-wide bus clocked at 100 million transfers per second moves 64 bits = 8 bytes per transfer, so its peak bandwidth is 8 bytes x 100 million per second = 800 MB/s — but only one device gets to use it at a time, so two busy devices must share that 800 MB/s.

Bandwidth is width x rate, but a shared bus splits that bandwidth among everyone who wants to talk.

Common misconception: a higher bus clock alone does not guarantee more usable bandwidth. On a shared bus, contention and arbitration overhead mean real throughput can fall well short of the peak width x rate number.

Also called
system busshared bus匯流排