Exercises — PCI Express (PCIe) architecture and generations
This page is a self-test. Each problem states everything it needs. Try it with the solution folded, then open the Solution callout. Problems climb five levels of difficulty:
- L1 Recognition — do you know the fact?
- L2 Application — can you plug into one formula?
- L3 Analysis — can you combine ideas and spot which formula applies?
- L4 Synthesis — can you build a multi-step chain across generations?
- L5 Mastery — can you reason about why, at the edge of the design?
Every number here is machine-verified. Parent topic: PCIe architecture and generations.
Here is a picture of exactly what "efficiency" means — which slice of the wire actually carries your data.

Level 1 — Recognition
L1-Q1
How many differential signal pairs does a single PCIe lane contain, and what is each pair for?
Recall Solution
What we're recalling: the physical make-up of one lane. A lane has two differential pairs:
- one pair for transmit (TX)
- one pair for receive (RX)
Because TX and RX are physically separate, a lane is full-duplex: it sends and receives at the same time with no turn-around delay. Two pairs = 4 wires total.
L1-Q2
Match each generation to its raw per-lane rate: Gen 1, Gen 3, Gen 5, Gen 6.
Recall Solution
The rate doubles every generation, so this is just powers of 2 starting from 2.5:
| Gen | Rate (GT/s) |
|---|---|
| 1 | 2.5 |
| 3 | 8.0 |
| 5 | 32.0 |
| 6 | 64.0 |
(Gen 2 = 5, Gen 4 = 16 fill the gaps.) Notice Gen 3 breaks the exact-double pattern slightly: instead of , because Gen 3 also changed the encoding, which recovered enough efficiency that a smaller rate bump still increased usable bandwidth.
Level 2 — Application
L2-Q1
A PCIe Gen 1 link is x1. Its raw rate is 2.5 GT/s and encoding efficiency is 80%. What is the per-direction bandwidth in MB/s?
Recall Solution
Move A, then divide by 8: What each step did: throws away the 20% overhead of 8b/10b, leaving 2.0 Gb/s of real data. Dividing by 8 converts to bytes → 0.25 GB/s = 250 MB/s. This is the famous "Gen 1 x1 = 250 MB/s" figure.
L2-Q2
A PCIe Gen 3 link is x1. Raw rate 8 GT/s, encoding 128b/130b. What is its efficiency, and its per-direction bandwidth in MB/s?
Recall Solution
Efficiency first. 128b/130b means every 130 bits on the wire carry 128 real bits: Move A: What it looks like: almost the whole wire is data now — the two sync bits per 130 are a tiny sliver (see figure s01, right bar).
Level 3 — Analysis
L3-Q1
Compute the per-direction bandwidth of a x16 Gen 3 link in GB/s. Then state the bidirectional aggregate.
Recall Solution
Move A + Move B. The and the -raw times... let's just march: (Because , the per-lane figure is exactly the efficiency in GB/s, then times 16 lanes.) Bidirectional: . Why the ×2 is separate: the 15.75 already used both the TX-and-RX wires? No — each lane's 15.75/16 = 0.985 GB/s is one direction only. TX and RX run simultaneously on different pairs, so the true aggregate the link can move is double.
L3-Q2
Two ratios come out of the Gen 2 → Gen 3 encoding change: the waste-reduction ratio and the usable-efficiency ratio. Compute both and explain in one sentence why they differ.
Recall Solution
Overhead (wasted fraction) each way: Waste-reduction ratio (how much smaller the wasted slice got): Usable-efficiency ratio (how much more data actually gets through, per lane, from encoding alone): Why they differ: the wasted part shrank 13×, but since 80% was already usable, the usable part could only climb from 80% to 98.46% — a modest 1.23× gain. There isn't room for a 13× data increase because you can never exceed 100% usable.
Level 4 — Synthesis
L4-Q1
You have a x8 Gen 4 slot. A colleague claims it delivers the same per-direction bandwidth as a x16 Gen 3 slot. Prove or disprove with numbers. (Gen 4: 16 GT/s, 128b/130b. Gen 3: 8 GT/s, 128b/130b.)
Recall Solution
Same encoding, so compare . They match — the claim is TRUE. Why this works: in the master formula the product is what matters (efficiency and ÷8 are shared). Halving lanes () but doubling rate () leaves unchanged: in both cases. This is the general rule "each generation lets you halve the lane count for the same bandwidth."
L4-Q2
A PAM-4 Gen 6 lane encodes 2 bits per symbol. Show that "64 GT/s" and "32 Gbaud × 2 bits" describe the same line, and compute the x16 Gen 6 per-direction bandwidth using FLIT efficiency .
Recall Solution
Part 1 — same line, two descriptions. A baud is one symbol per second. A transfer here is one bit-equivalent. PAM-4 sends 2 bits per symbol, so: The "64 GT/s" figure has already folded in the 2-bits/symbol; you do not multiply by 2 again.
Part 2 — FLIT efficiency. A FLIT block is 256 bytes on the wire but only 242 are useful payload: Move A + Move B (per direction): Bidirectional aggregate: — matching the spec headline figure (which quotes the bidirectional number).
Level 5 — Mastery
L5-Q1
Gen 6 keeps the same 32 Gbaud symbol clock as Gen 5 but doubles data by moving from 2-level (NRZ) to 4-level (PAM-4). The cost is a smaller gap between adjacent voltage levels. If NRZ has separation across its two levels and PAM-4 crams four levels into the same total range (separation ), compute the SNR penalty of PAM-4 in decibels. Then explain in one sentence why this forces Gen 6 to add FEC.
Recall Solution
Why decibels, why this ratio: a receiver's ability to tell levels apart scales with the voltage gap between them. Halving—or here, thirding—the gap makes noise three times as likely to push a symbol into the wrong level. Engineers measure such ratios logarithmically in decibels; for a voltage ratio the formula is .
The gap ratio: SNR penalty: Why FEC becomes mandatory: losing ~9.5 dB of margin means far more raw symbol errors, so PAM-4 links can no longer rely on retransmission alone to stay reliable — forward error correction repairs errors in place before they force costly retries, keeping latency and throughput sane.
L5-Q2
Design reasoning. A vendor advertises a "PCIe Gen 6 x4 NVMe SSD, 60 GB/s." A reviewer says this is physically impossible for a unidirectional read. Using first principles, find the true per-direction ceiling of x4 Gen 6 and identify the vendor's likely (mis)counting.
Recall Solution
True per-direction ceiling (Move A + Move B, FLIT efficiency ): So a sequential read (one direction) tops out near 30.25 GB/s, not 60. The likely mis-count: GB/s — the vendor quoted the bidirectional aggregate (TX + RX summed) as if it were a read speed. Why it's misleading: a read pulls data in one direction; the reverse path carries only tiny acknowledgements, so its bandwidth doesn't help sequential reads. Fix / reviewer's point: headline "×2" numbers are aggregate, not achievable one-way throughput.
Recall One-line self-checks
x16 Gen 3 per-direction bandwidth ::: 15.75 GB/s Gen 1 x1 per-direction bandwidth ::: 250 MB/s Efficiency of 128b/130b ::: 128/130 ≈ 98.46% Efficiency of FLIT 242/256 ::: ≈ 94.53% Waste-reduction ratio Gen2→Gen3 ::: ≈ 13× (of the wasted fraction only) Usable-efficiency ratio Gen2→Gen3 ::: ≈ 1.23× PAM-4 SNR penalty vs NRZ ::: ≈ 9.54 dB x4 Gen 6 per-direction ceiling ::: ≈ 30.25 GB/s