Generations
The arithmetic of overhead
Nothing on the bill looks large, and the bill is the difference between the rate on the label and the rate in the trace.
How small costs add up
The overhead on a PCI Express link is never one big charge; it is a column of small ones, encoding tax, packet headers, acknowledgments, flow control, and it compounds the way fees compound: each deduction looks negligible alone, and the column of them is the difference between the wire rate and the delivered one.
The arithmetic is the quiet kind. At 128b/130b the encoding costs about 1.5 per cent; a TLP header costs a few doublewords per transaction; the data link layer's acknowledgment packets and flow control updates take a share that grows with traffic; and at the newest rates, forward error correction adds its own residue. No single line justifies the gap between advertised and delivered bandwidth. All of them together do.
The shape of the arithmetic is the one savers learn about fees. The personal finance desk that publishes a desk on compounding costs teaches the identical lesson: a fund charging one per cent a year looks harmless on the line item and decisive over thirty years, because the charge is applied to the growing balance. Link overhead is the same arithmetic run faster: per-symbol, per-packet and per-flow charges applied to every byte that moves.
Where do the charges land?
At every layer the packet crosses. The physical layer charges the encoding: 8b/10b took a fifth of every symbol on the early generations, and 128b/130b still takes its smaller share, the arithmetic worked on the encoding page. The transaction layer charges the header: sequence, address, attributes, every field a tax per packet that falls hardest on small payloads. The data link layer charges the protocol: acknowledgments consume wire time in one direction to protect the other. And the channel itself charges the channel: the equalization and error handling at the newest rates are not free either.
| Charge | Levied at | Size |
|---|---|---|
| Encoding | Every symbol | 20 per cent at 8b/10b, about 1.5 per cent at 128b/130b |
| TLP header | Every transaction | A few doublewords, larger fraction on small payloads |
| Acknowledgment and flow control | Continuous under traffic | A share that grows with load |
| Forward error correction | Newest generations | Its own residue on the wire |
Why does the gap surprise people?
Because the headline rate is quoted before the column, and the delivered figure arrives after it. A x4 link at 32 GT/s per lane carries a name suggesting a bandwidth the software never sees; the benchmark that measures it reports the recipe's remainder, which the page on what the rate is made of decomposes ingredient by ingredient. The surprise is the difference between reading the line item and reading the account: the column of small costs is invisible until the delivered figure is compared with the advertised one.
The general concept is covered in the article on overhead and the raw figures the arithmetic starts from are listed in the link speed table, with the rates landscape placed in the list of interface bit rates, all read on September 6, 2026.
How do you read a delivered figure honestly?
By pricing the column before calling the gap a defect. The delivered bandwidth is the wire rate minus the encoding, minus the packet structure under that traffic mix, minus the protocol's own packets, and the residual is the figure a good link should deliver. A benchmark that comes within the priced column of the headline is not failing; it is reporting the arithmetic working as designed. The failures are the residuals beyond the column, which is where the link's other pages, the width it actually trained and the error bound it lives under, take over.
Checks for pricing the column
- Price the encoding first: it is the largest and the most predictable charge.
- Scale the header cost by payload size: small transactions pay proportionally more.
- Budget for the protocol's own packets under load, not only at idle.
- Compare measured and advertised only after the whole column is priced.
Common mistakes
- Reading each line item as negligible and the column as small: the charges apply to every byte.
- Benchmarking at one payload size and generalizing the overhead.
- Calling a priced gap a defect, or an unpriced one a success.
- Forgetting that the newest generations added a charge to the column: FEC is overhead too.
Overhead is the quiet arithmetic of every fast link: nothing on the bill looks large, and the bill is the difference between the rate on the label and the rate in the trace. Price the column, and the delivered figure stops being a disappointment and becomes a computation.
The page behind these facts
The encoding figures, the overhead concept and the rate landscape come from the references linked inline, all read on September 6, 2026. The desk's own decomposition of the wire rate into the usable one is on the encoding and usable bandwidth page.