Skip to main content

System Interconnects — Buses, Topology & PCIe

Overview

Every wire diagram of a computer hides the same question: how do the CPU, RAM, and peripherals actually exchange bits? The overview page introduced the bus as a shared pathway with address, data, and control lines. This page goes deeper: how buses evolved from a single shared wire that every device fought over, to the point-to-point serial links (chiefly PCIe) that dominate modern systems, and how PCIe's lane-based topology lets bandwidth scale cleanly with the number of physical wires.

Core Concepts

TermMeaning
Address linesWires that carry which memory location or device register is being accessed.
Data linesWires that carry the actual value being read or written.
Control linesWires that carry timing/handshake signals: read vs. write, clock, ready/busy.
Multidrop busA single shared set of wires connecting many devices; only one can transmit at a time.
Point-to-point linkA dedicated wire pair (or set of pairs) between exactly two endpoints — no sharing, no arbitration.
LaneOne PCIe point-to-point link: one differential pair for transmit, one for receive.
Root complexThe chipset/CPU-integrated block that connects the CPU and memory to the PCIe fabric.
SwitchA PCIe device that fans a link out to multiple downstream endpoints, like a network switch.
EndpointA leaf PCIe device — a GPU, NVMe SSD, network card, etc.

Architecture / Mechanism

From shared bus to point-to-point

Early buses (ISA, then PCI) were shared and parallel: many devices sat on the same set of wires, and an arbitration protocol decided whose turn it was to talk. Adding devices or raising clock speed both made electrical timing (signal skew across many parallel wires) harder to manage, which capped how fast a shared parallel bus could realistically go.

The front-side bus (FSB) era (roughly the Pentium through early Core 2 generations) connected the CPU to a "northbridge" chipset over one such shared, parallel, clocked bus, with the northbridge then fanning out to RAM and a southbridge for I/O. Both CPU-to-memory and CPU-to-chipset traffic contended for the same electrical path.

Modern systems replaced this with point-to-point serial links: each device gets its own dedicated pair of wires straight to a hub (a root complex or switch), so there's no contention and no shared electrical bus to tune for worst-case skew. Memory access moved onto its own dedicated point-to-point channels (integrated memory controllers), and peripheral I/O consolidated onto PCI Express (PCIe).

PCIe topology

A PCIe link between any two points is made of one or more lanes, each an independent transmit/receive differential pair. A "x16 slot" (used by most GPUs) has 16 lanes running in parallel; an M.2 NVMe SSD typically uses a x4 link. Switches let a root complex's limited lane budget fan out to more endpoints than it has direct lanes for, at the cost of those endpoints sharing the switch's upstream bandwidth.

Lanes and generations

Lane count is not a setting — it is physically how long the slot is:

Close-up photograph of a motherboard showing several PCI Express expansion slots of noticeably different physical lengths
PCI Express slots on a consumer motherboard. The differing lengths are differing lane counts — a short slot is x1, a full-length one x16. Wikimedia Commons, CC BY-SA 3.0

Because the link is point-to-point and negotiated, a shorter card works in a longer slot and runs at the lower lane count — an x4 SSD in an x16 slot is fine. The reverse needs an open-ended slot, and even where it fits, the link trains down to whatever both ends support.

Bandwidth scales two ways: by adding lanes to a link (x1, x4, x8, x16), and by moving to a newer, faster generation. Each PCIe generation roughly doubles the raw transfer rate per lane while staying backward compatible:

GenerationLine rateEncoding overheadApprox. per-lane bandwidth (x1, one direction)
PCIe 1.02.5 GT/s8b/10b~250 MB/s
PCIe 2.05 GT/s8b/10b~500 MB/s
PCIe 3.08 GT/s128b/130b~985 MB/s
PCIe 4.016 GT/s128b/130b~1.97 GB/s
PCIe 5.032 GT/s128b/130b~3.94 GB/s
PCIe 6.064 GT/sPAM4 signaling + FLIT encoding~7.5-7.9 GB/s
GT/s vs. bytes/s

"Transfers per second" (GT/s) is the raw signaling rate. Actual usable bandwidth is lower because some bits are spent on line-code overhead (8b/10b wastes 20%; 128b/130b wastes under 2%) — this is why PCIe 3.0's per-lane bandwidth is more than double PCIe 2.0's despite the line rate only going from 5 to 8 GT/s.

A x16 link on PCIe 4.0 gives roughly 16x the x1 figure (~31.5 GB/s one direction) — this is why a high-end GPU wants as many lanes as the platform can spare, while an SSD is perfectly happy with x4.

Practical Usage

When you check lspci -vv (Linux) or Device Manager's link details (Windows), you'll see something like LnkSta: Speed 8GT/s, Width x4 — that's telling you the negotiated generation and lane count, which can be lower than a device's maximum if the slot, motherboard, or shared lane budget limits it. Motherboards often advertise more M.2/PCIe slots than the CPU has lanes for; populating all of them can silently downgrade one slot's link width.

Edge Cases & Pitfalls

Lane bifurcation and shared lane budgets

A CPU or chipset has a fixed total lane count. Plugging a GPU into a x16 slot and an NVMe drive into an M.2 slot on the same platform can force the platform to split ("bifurcate") a shared set of lanes, silently dropping the GPU to x8 or an SSD to a slower link. Check the motherboard manual's lane allocation diagram before assuming every slot runs at its labeled maximum simultaneously.

  • A link always negotiates down to the lowest common capability of both ends — a PCIe 5.0 SSD in a PCIe 3.0 slot runs at PCIe 3.0 speeds, not a blend of the two.
  • Cable/trace length and signal integrity get harder, not easier, at each new generation — PCIe 5.0 and 6.0 impose tighter constraints on motherboard trace routing than PCIe 3.0 did.

Comparisons

AspectShared parallel bus (legacy PCI/FSB)Point-to-point serial (PCIe)
TopologyAll devices share one electrical busDedicated link per device, fanned out via root complex/switches
ContentionOnly one device transmits at a timeEvery link is independent; no contention between devices
Scaling bandwidthWiden the bus (more parallel wires) — hits signal-skew limitsAdd lanes, or move to a faster generation
ClockSingle shared clock domainPer-link clock recovery (embedded in serial signaling)

References

Books & Videos

  • Don Anderson & Tom Shanley, PCI Express System Architecture — the classic in-depth treatment of PCIe topology and protocol layers.