6.3.3 · D3Interconnects, Buses & SoC

Worked examples — PCIe lanes, links, and bandwidth

2,552 words12 min readBack to topic

This page is the drill ground for PCIe lanes, links, and bandwidth. The parent note built the six-step bandwidth formula from raw signalling rate to full-duplex aggregate. Here we take that machine and feed it every kind of input it can ever meet — big lanes, tiny lanes, mismatched generations, the number zero, a bifurcated slot, a word problem, and an exam trap — so no scenario ever surprises you.

Before the examples we lay out a map of all the cases. Every worked example below is stamped with the map-cell it covers, so you can see that nothing is left uncovered.

The one formula everything comes from

Everything on this page is one chain. Let us name each piece in plain words first, so no symbol appears unearned.

Why this tool and not, say, adding the rates? Because the four effects are independent multipliers, not additions. Halving lanes and halving efficiency each cut the result by the same proportion, so they multiply. Addition would mix units (GT/s + lanes is meaningless).

The scenario matrix

Below is every class of input this topic can throw at you. Each row is a distinct "shape" of problem; the last column names the example that pins it down.

Cell Case class What is being stressed Covered by
A Plain forward calc (one gen, one width) The core chain, no traps Example 1
B Byte↔bit / MB↔GB unit gymnastics Converting between the units marketers use Example 2
C Mismatched generation and width (negotiated down) Two things wrong at once Example 3
D Bifurcation split (one slot → two links) Dividing lanes, conserving total Example 4
E Full-duplex aggregate vs one-way The ×2 trap Example 5
F Zero / degenerate input (, disconnected, x1) Edge & smallest cases Example 6
G Reverse solve (given BW, find lanes) Running the chain backwards Example 7
H Real-world word problem (bottleneck reasoning) Which link is the limit? Example 8
I Exam-style twist (per-lane Gen numbers hidden) Reading the trap in the wording Example 9

The reference numbers we keep reusing (all one-direction, from the parent's master table):

Gen (GT/s) Per-lane GB/s
1.0 2.5 0.8 0.250
2.0 5.0 0.8 0.500
3.0 8.0 128/130 0.985
4.0 16.0 128/130 1.969
5.0 32.0 128/130 3.938

Worked examples

Here is that linearity drawn — bandwidth is a straight ray from the origin, one line per generation:

Figure — PCIe lanes, links, and bandwidth
Recall Quick self-test

Gen 3.0 x8 one-way bandwidth? ::: ≈ 7.88 GB/s A card reads "x16 @ x8" — how many real lanes? ::: 8 (the second number is negotiated width) Why do bandwidth contributions multiply, not add? ::: , , and are independent proportional factors; adding would mix incompatible units An x16 slot bifurcated x8/x8 — bandwidth per device? ::: half the x16 link each; total conserved Marketing "128 GB/s" for Gen5 x16 vs your 63 GB/s — the gap? ::: they quote bidirectional aggregate (×2) and often ignore encoding

Where to go next

  • The encoding fractions came from 8b10b Encoding and 128b130b Encoding.
  • Why lanes physically exist as pairs: PCIe Electrical Signaling.
  • How the CPU/chipset decides which slot gets how many lanes: Motherboard Lane Allocation and PCIe Bifurcation.
  • Whether a card actually needs the full width: GPU Bandwidth Requirements.
  • The big picture: PCIe Architecture Overview and the parent PCIe lanes, links, and bandwidth.