6.3.2 · D4 · HinglishInterconnects, Buses & SoC

ExercisesPCI Express (PCIe) architecture and generations

2,350 words11 min read↑ Read in English

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.

Figure — PCI Express (PCIe) architecture and generations

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