Exercises — PCI Express (PCIe) architecture and generations
6.3.2 · D4· Hardware › Interconnects, Buses & SoC › PCI Express (PCIe) architecture and generations
Yeh page ek self-test hai. Har problem mein sab kuch diya hua hai jo chahiye. Pehle solution fold karke try karo, phir Solution callout kholna. Problems paanch difficulty levels par chadhti hain:
- L1 Recognition — kya tumhe woh fact pata hai?
- L2 Application — kya tum ek formula mein plug kar sakte ho?
- L3 Analysis — kya tum ideas combine karke sahi formula dhundh sakte ho?
- L4 Synthesis — kya tum generations ke across ek multi-step chain bana sakte ho?
- L5 Mastery — kya tum kyun ke baare mein soch sakte ho, design ke edge par?
Yahan har number machine-verified hai. Parent topic: PCIe architecture and generations.
Yeh rahi ek picture jo exactly yeh dikhati hai ki "efficiency" ka matlab kya hai — wire ka kaun sa slice actually tumhara data carry karta hai.

Level 1 — Recognition
L1-Q1
Ek single PCIe lane mein kitne differential signal pairs hote hain, aur har pair kis kaam ke liye hai?
Recall Solution
Hum kya recall kar rahe hain: ek lane ki physical banawat. Ek lane mein two differential pairs hote hain:
- ek pair transmit (TX) ke liye
- ek pair receive (RX) ke liye
Kyunki TX aur RX physically alag hain, ek lane full-duplex hai: woh bina kisi turn-around delay ke ek saath bhejta aur receive karta hai. Do pairs = kul 4 wires.
L1-Q2
Har generation ko uski raw per-lane rate se match karo: Gen 1, Gen 3, Gen 5, Gen 6.
Recall Solution
Rate har generation mein double hoti hai, toh yeh sirf 2.5 se shuru hone wale powers of 2 hain:
| Gen | Rate (GT/s) |
|---|---|
| 1 | 2.5 |
| 3 | 8.0 |
| 5 | 32.0 |
| 6 | 64.0 |
(Gen 2 = 5, Gen 4 = 16 gaps fill karte hain.) Dhyaan do ki Gen 3 exact-double pattern se thoda alag hai: instead of , kyunki Gen 3 ne encoding bhi badli, jisne itni efficiency recover ki ki ek chhota sa rate bump phir bhi usable bandwidth badhane ke liye kaafi tha.
Level 2 — Application
L2-Q1
Ek PCIe Gen 1 link x1 hai. Uski raw rate 2.5 GT/s hai aur encoding efficiency 80% hai. Per-direction bandwidth MB/s mein kya hai?
Recall Solution
Move A, phir 8 se divide: Har step ne kya kiya: ne 8b/10b ke 20% overhead ko uda diya, 2.0 Gb/s real data bachata hai. 8 se divide karna bytes mein convert karta hai → 0.25 GB/s = 250 MB/s. Yeh famous "Gen 1 x1 = 250 MB/s" figure hai.
L2-Q2
Ek PCIe Gen 3 link x1 hai. Raw rate 8 GT/s, encoding 128b/130b. Uski efficiency kya hai, aur per-direction bandwidth MB/s mein kya hai?
Recall Solution
Pehle efficiency. 128b/130b ka matlab hai wire par har 130 bits mein 128 real bits hain: Move A: Yeh kaisa dikhta hai: ab almost poora wire data hai — 130 mein se do sync bits ek tiny sliver hain (figure s01, right bar dekho).
Level 3 — Analysis
L3-Q1
Ek x16 Gen 3 link ki per-direction bandwidth GB/s mein compute karo. Phir bidirectional aggregate batao.
Recall Solution
Move A + Move B. aur -raw ko seedha chalte hain: (Kyunki , per-lane figure exactly efficiency GB/s mein hai, phir 16 lanes se multiply.) Bidirectional: . Kyun ×2 alag hai: 15.75 ne already both TX-aur-RX wires use ki hain? Nahi — har lane ka 15.75/16 = 0.985 GB/s sirf ek direction hai. TX aur RX alag pairs par simultaneously chalte hain, toh link jo true aggregate move kar sakta hai woh double hai.
L3-Q2
Gen 2 → Gen 3 encoding change se do ratios nikalte hain: waste-reduction ratio aur usable-efficiency ratio. Dono compute karo aur ek sentence mein explain karo ki yeh kyun alag hain.
Recall Solution
Overhead (wasted fraction) dono taraf: Waste-reduction ratio (wasted slice kitni chhoti ho gayi): Usable-efficiency ratio (encoding akele se actually kitna zyada data jaata hai, per lane): Yeh kyun alag hain: wasted part 13× shrink hua, lekin kyunki 80% already usable tha, usable part sirf 80% se 98.46% tak chadh sakta tha — ek modest 1.23× gain. 13× data increase ke liye jagah nahi hai kyunki tum kabhi 100% usable se zyada nahi ja sakte.
Level 4 — Synthesis
L4-Q1
Tumhare paas ek x8 Gen 4 slot hai. Ek colleague claim karta hai ki yeh ek x16 Gen 3 slot ke barabar per-direction bandwidth deta hai. Numbers se prove ya disprove karo. (Gen 4: 16 GT/s, 128b/130b. Gen 3: 8 GT/s, 128b/130b.)
Recall Solution
Same encoding, toh compare karo. Yeh match karte hain — claim TRUE hai. Yeh kyun kaam karta hai: master formula mein product matter karta hai (efficiency aur ÷8 dono mein shared hain). Lanes half karna () lekin rate double karna () ko unchanged chhodhta hai: dono mein . Yeh general rule hai "har generation tumhe same bandwidth ke liye lane count aadha karne deta hai."
L4-Q2
Ek PAM-4 Gen 6 lane 2 bits per symbol encode karta hai. Dikhao ki "64 GT/s" aur "32 Gbaud × 2 bits" same line describe karte hain, aur FLIT efficiency use karke x16 Gen 6 ki per-direction bandwidth compute karo.
Recall Solution
Part 1 — same line, do descriptions. Ek baud ek symbol per second hai. Yahan ek transfer ek bit-equivalent hai. PAM-4 per symbol 2 bits bhejta hai, toh: "64 GT/s" figure mein already 2-bits/symbol fold in hai; tum dobara 2 se multiply nahi karte.
Part 2 — FLIT efficiency. Ek FLIT block wire par 256 bytes hai lekin sirf 242 useful payload hain: Move A + Move B (per direction): Bidirectional aggregate: — spec headline figure se match karta hai (jo bidirectional number quote karta hai).
Level 5 — Mastery
L5-Q1
Gen 6 same 32 Gbaud symbol clock Gen 5 jaisi rakhta hai lekin 2-level (NRZ) se 4-level (PAM-4) mein move karke data double karta hai. Iska cost adjacent voltage levels ke beech ek chhota gap hai. Agar NRZ ka separation apne do levels mein hai aur PAM-4 char levels ko same total range mein cramn karta hai (separation ), toh PAM-4 ka SNR penalty decibels mein compute karo. Phir ek sentence mein explain karo ki yeh kyun Gen 6 ko FEC add karne par majboor karta hai.
Recall Solution
Kyun decibels, kyun yeh ratio: ek receiver ki levels alag karne ki ability voltage gap ke saath scale hoti hai unke beech mein. Gap ko aadha — ya yahan, tera — karna noise ko teen guna zyada likely banata hai ki symbol galat level mein chala jaaye. Engineers aisi ratios ko logarithmically decibels mein measure karte hain; ek voltage ratio ke liye formula hai .
Gap ratio: SNR penalty: FEC kyun mandatory ho jaata hai: ~9.5 dB margin lose karne ka matlab hai bahut zyada raw symbol errors, toh PAM-4 links ab sirf retransmission par reliable rehne ke liye rely nahi kar sakte — forward error correction errors ko in-place repair karta hai costly retries force karne se pehle, latency aur throughput ko sane rakhta hai.
L5-Q2
Design reasoning. Ek vendor "PCIe Gen 6 x4 NVMe SSD, 60 GB/s" advertise karta hai. Ek reviewer kehta hai ki yeh ek unidirectional read ke liye physically impossible hai. First principles use karke, x4 Gen 6 ka true per-direction ceiling dhundho aur vendor ki likely (mis)counting identify karo.
Recall Solution
True per-direction ceiling (Move A + Move B, FLIT efficiency ): Toh ek sequential read (ek direction) 30.25 GB/s ke paas top out karta hai, 60 nahi. Likely mis-count: GB/s — vendor ne bidirectional aggregate (TX + RX summed) ko read speed ki tarah quote kiya. Kyun yeh misleading hai: ek read ek direction mein data pull karta hai; reverse path sirf tiny acknowledgements carry karta hai, toh uski bandwidth sequential reads mein help nahi karti. Fix / reviewer's point: headline "×2" numbers aggregate hain, achievable one-way throughput nahi.
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× (sirf wasted fraction ka) 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