6.3.2 · D1 · HinglishInterconnects, Buses & SoC

FoundationsPCI Express (PCIe) architecture and generations

2,299 words10 min read↑ Read in English

6.3.2 · D1 · Hardware › Interconnects, Buses & SoC › PCI Express (PCIe) architecture and generations

Yeh page har woh word, symbol, aur picture build karta hai jis par parent note rely karta hai. Isse upar se neeche padho — neeche jo bhi hai woh kisi aisi cheez ka use nahi karta jo usse pehle define na ki gayi ho. Jab tum neeche diye #Equipment checklist ko pass kar lo, tab the main topic note padho.


1. Ek "bit" aur "woh wire jo use carry karti hai"

Ek single wire ka picture lo. Agar hum agree karein ki "low voltage = 0" aur "high voltage = 1", toh wire ki voltage ko time ke saath dekhkar hum bits ki ek stream read kar sakte hain.

Figure — PCI Express (PCIe) architecture and generations

Figure mein blue line dekho: har flat section ek bit-slot hai. Jahan line low hai wahan 0 matlab hai, jahan high hai wahan 1 matlab hai. Left se right padhne par 0 1 1 0 1 milta hai. Har slot ki width bit period hai — har bit wire par kitni der "hold" hoti hai.


2. Rate: bits per second, aur "transfers"

"Bits" ki jagah "transfer" nayi word kyun? Kyunki — jaise Section 6 mein dekhenge — wire par har slot ek useful data bit carry nahi karta; kuch slots housekeeping ke liye use hote hain. "GT/s" honestly wire par slots count karta hai; useful-data rate hamesha thodi kam hoti hai.

Purane encodings ke liye, useful bits per transfer , isliye 8 GT/s 8 Gb/s raw line rate hai.


3. Prefixes: G, b vs B

Beginners yahan poore 8 ke factors kho dete hain, isliye ise theek se samajh lo.

bits/s ko bytes/s mein convert karo
8 se divide karo
63 Gb/s bytes/s mein
7.875 GB/s

4. Ek wire noisy hoti hai — toh DO use karo (differential signalling)

Motors, radios, aur doosre chips ke paas ek single wire stray voltage pickup karti hai — electromagnetic interference (EMI) — random voltage bumps jo ek 0 ko 1 mein flip kar sakte hain.

Iska fix hai signal ko ek saath do wires pe bhejna: ek signal carry karti hai, doosri uski exact mirror image. Receiver sirf unke beech ka difference dekhta hai.

Figure — PCI Express (PCIe) architecture and generations

Figure mein, orange aur green lines do wires hain; jab noise aati hai (gray wobble) toh woh dono par equally padti hai, isliye subtract karne par cancel ho jaati hai. Neeche blue line woh clean difference hai. Isse differential signalling kehte hain, aur do wires ek differential pair hain.


5. Ek lane: do pairs, dono directions ek saath

Figure — PCI Express (PCIe) architecture and generations

Figure ek lane dikhata hai: orange TX pair chip se nikalta hai, green RX pair aata hai, aur dono ek hi instant par busy hain. Parent note ka "" ek lane ke liye seedha yahan se aata hai — rate bahar jaata hai plus rate andar aata hai.

"x16" kyun na ki "x32"? x16 sabse wide link hai jo kabhi actually bani hai; zyada lanes pin aur traces mein zyada cost maangti hain, jo worth it nahi hai.


6. Encoding: "8b/10b" aur "128b/130b" kyun

Ab tricky part. Wire ko sahi se padhne ke liye, receiver ko exactly pata hona chahiye ki har bit-slot kahan shuru hota hai. Yeh voltage flips dekhkar samajhta hai. Lekin agar data mein identical bits ka lamba run ho (jaise 0000000000), toh wire kabhi flip nahi hoti aur receiver apni jagah bhool jaata hai — jaise kohre mein fence-posts count karna.

Topic mein do schemes aati hain:

  • 8b/10b: 8 real data bits lo, wire par 10 bits bhejo. Har 10 mein se 2 bits "overhead" hain (housekeeping, data nahi).
  • 128b/130b: 128 real data bits lo, wire par 130 bhejo. Sirf 2 extra har 128 par.

ge — naya symbol neeche — aage padho.


7. Topic jo maths symbols use karta hai

Parent note kuch pure-maths tools use karta hai. Yahan har ek, zero se.

kyun aur ordinary division kyun nahi? Kyunki information har baar double hoti hai jab ek bit add karo, aur exactly woh tool hai jo "doubling ko undo" karta hai — yeh number of choices ko number of bits mein convert karta hai.

Polynomial kyun aur plain numbers kyun nahi? Kyunki "divide and keep the remainder" accidental bit-flips ko bahut reliably pakadta hai, aur bits-ke-upar-polynomials us division ko hardware mein sasta banate hain.


8. Packets aur error-checking words


Yeh topic ko kaise feed karte hain

bit 0 or 1

rate and GT/s

differential pair

lane TX plus RX

link width x1 to x16

encoding 8b10b 128b130b

log base 2

bandwidth per generation

packet TLP

CRC ECRC LCRC

polynomial G of x

ACK NAK and FEC

PCIe architecture and generations


Equipment checklist

Right side cover karo; main note padhne se pehle har ek ka jawab dena chahiye.

Bit kya hai
Info ka sabse chhota unit: 0 ya 1, wire par low/high voltage ke roop mein dikhta hai
"8 GT/s" ka matlab
8 billion transfers (wire par bit-slots) per second per lane
b aur B mein fark
b = bit, B = byte = 8 bits; byte-rate ke liye bit-rate ko 8 se divide karo
PCIe do wires per signal kyun use karta hai
Differential pair — noise dono par equally aati hai aur difference mein cancel ho jaati hai
Ek lane mein kya hota hai
Ek TX differential pair + ek RX differential pair, full-duplex chalte hain
Full-duplex ka matlab
Data dono directions mein simultaneously flow karta hai
x16 ka matlab
16 parallel lanes ki ek link
Encoding kyun exist karta hai
Extra bits wire ko flip karte rehte hain taaki receiver synchronized rahe, aur voltage balanced rahe
8b/10b vs 128b/130b ki efficiency
80% vs ~98.46%
Encoding gain ~1.23× kyun hai na ki 13×
13× waste hone wale fraction ka shrink hai; usable data sirf 80% se 98.46% tak jaata hai
kya equal hai aur kyun aata hai
2; yeh 4 voltage levels (PAM-4) ke liye bits-per-symbol hai
CRC kya karta hai
Ek check-number jo polynomial division se corrupt bits detect karta hai
ACK vs NAK
ACK = clean mila; NAK = corrupt hai, please resend karo
FEC kya add karta hai
Extra bits taaki receiver chhoti errors bina resend ke fix kare (Gen 6 mein naya)