6.3.11 · D2 · HinglishInterconnects, Buses & SoC

Visual walkthroughInfinity Fabric - mesh interconnects

3,217 words15 min read↑ Read in English

6.3.11 · D2 · Hardware › Interconnects, Buses & SoC › Infinity Fabric - mesh interconnects

Yeh page ek hi result ko zero se build karti hai: kyun 2D mesh of cores, ring of cores ko beat karta hai jab core counts badhte hain. Hum assume nahi karenge ki aap jaante hain "hop" kya hota hai, "average distance" ka matlab kya hai, ya number kahaan se aata hai. Har symbol earn kiya jayega. End tak aap poori story ek napkin par draw kar paoge.

Parent: Infinity Fabric & mesh interconnects (dekho Hinglish version bhi).


Step 1 — "Hop" kya hota hai? (poori story ka atom)

KYA. Ek chip nodes ka ek set hai. Ek node network par ek stop hai: socho "ek core plus uska chhota router". Ek router woh tiny traffic-cop circuit hai jo ek data packet receive karta hai aur use next node ki taraf push karta hai. Jab bhi koi packet ek router se guzarke next node mein jaata hai, hum one hop count karte hain.

YEH PEHLE KYUN DEFINE KAREIN. Latency — data aane se pehle ki delay — kitne routers se packet guzra is par depend karti hai. Toh agar hum hops count kar sakein, toh koi chip banane se pehle designs compare kar sakte hain. Hops ruler hain.

PICTURE. Neeche, ek packet node A se nikalta hai aur B aur C se guzarkar node D tak pahunchta hai. Teen arrows = teen hops.

Figure — Infinity Fabric  -  mesh interconnects
Average mein kam hops?
lower latency, kyunki directly ke proportional hai.

Step 2 — Ring, aur kyun hum shorter way lete hain

KYA. nodes ko ek circle mein arrange karo. Yahaan ==== simply "kitne nodes (cores) hain" hai. Har node ka apne left aur right neighbour se link hai — bas yahi pura ring hai.

SHORTER WAY KYUN. Ek real ring bidirectional hoti hai (do counter-rotating lanes). Node 0 se, node 5 ya toh 5 hops clockwise hai ya hops doosri taraf. Router hamesha chhota choose karta hai. Yahi woh key rule hai jo average ko roughly ring ka ek quarter banata hai, aadha nahi.

PICTURE. Red node se, green destination short way (solid) se reach hoti hai, long way (dashed) se nahi.

Figure — Infinity Fabric  -  mesh interconnects

Exact discrete count, term by term build karke. Ek node ko source fix karo (symmetry ki wajah se har node identical hai, toh ek source sabka stand-in hai). Ab har node tak uski shortest distance list karo, apne aap tak bhi. Concreteness ke liye even lete hain:

  • distance : khud — 1 node
  • distance : ek neighbour clockwise, ek counter-clockwise — 2 nodes (yahi woh "" hai)
  • distance : 2 nodes (woh "")
  • har distance par do nodes ka yeh pattern distance tak continue hota hai…
  • distance : exactly opposite node — dono taraf se equally reachable, toh yeh 1 node hai, ek baar count kiya, do baar nahi. Yeh akela far-side node hi wajah hai ki do branches use evenly split nahi karte.

Toh source se saari shortest distances ka sum hai

  • ::: har distance par do nodes, use karke ke saath
  • ::: single far-side node, ek baar add kiya
  • ::: algebra collapse hone ke baad neat total

Ab average nikaalo. Hum saare destinations se divide karte hain (self included, hamare page rule ke mutabiq):

  • se divide karna ::: kyunki fixed source ke liye possible destinations hain, aur hum "kahin nahi jaana" () ko unhe mein se ek count karte hain
  • ::: exact even- result — clean, bina kisi correction ke jab self-pair include ho

ke liye: exactly. (Pehle hand-wavy "excluding self" counts ne diya tha; self-pair include karke — hamara fair rule — clean milta hai.)


Step 3 — Mesh, aur kyun hum distance se measure karte hain

KYA. Ab usi nodes ko ek square grid par rakho, rows aur columns, toh aur . Yahaan ==== grid ki side length hai. Har node apne North, South, East, West neighbour se link hai. (Real chips often rectangular grids use karte hain — hum Step 7 mein woh cover karenge.)

YEH DISTANCE KYUN. Grid par aap diagonally move nahi kar sakte — packets sirf links ke along jaate hain. Toh column se jaane ke liye horizontal hops karne padte hain, aur row se jaane ke liye vertical hops. Bars ka matlab hai "absolute value" — gap ki size, yeh ignore karte hue ki aap left jaate ho ya right (distance kabhi negative nahi hoti). Inhe add karne par total hops milte hain. Is grid-distance ko Manhattan distance kaha jaata hai (jaise city blocks mein walk karna).

PICTURE. se tak: teen East hops, phir do North hops.

Figure — Infinity Fabric  -  mesh interconnects

Step 4 — Ek axis par average gap: exact discrete sum

KYA. Hum saare random source–destination pairs (self-pairs included, hamare page rule ke mutabiq) par typical Manhattan distance chahte hain. Symmetry se X-average aur Y-average equal hain, toh humein sirf ek axis chahiye: — average column-gap jab aur mein se har ek equally likely hai koi bhi position .

AXES MEIN KYUN SPLIT KAREIN. Kyunki ek sum hai, aur sum ka average averages ka sum hota hai, hum ek mushkil 2D average ko do aasaan 1D averages mein split kar sakte hain. Yahi pura trick hai — isiliye grid tractable hai.

PICTURE. Columns ke har ordered pair aur unke beech ka gap; hum literally saare gaps add karte hain aur divide karte hain.

Figure — Infinity Fabric  -  mesh interconnects

Exactly pairs mein gap kyun hota hai. Ek ordered pair hai — start column phir end column, aur ko se alag count kiya jaata hai. Ek fixed gap size lo. Kitne ordered pairs exactly apart hain?

  • Right jaane wale pairs count karo, . Start ho sakta hai (aur aage right gaye toh grid se bahar gir jaata hai). Yeh starting positions hain → pairs.
  • Left jaane wale pairs count karo, . Mirror argument se, aur pairs.
  • Total: ordered pairs gap ke saath.

Upar ki picture mein yeh do staircases (rightward aur leftward) dikhti hain, har ek length ki, badhne par shrink hoti hain (bade gaps rare hain — unke liye bahut kam positions available hain). (self-pairs) ke liye exactly hain (), sum mein contribute karte hain lekin denominator mein phir bhi count hote hain. Ab sum karo aur saare ordered pairs se divide karo:

  • ::: har possible gap size par add karo ( term hai, toh numerator se drop ho jaata hai lekin denominator mein rehta hai)
  • ::: abhi derive ki gayi count — do directions, badhne par fewer starting spots
  • ::: algebra ke baad exact answer — woh number jo truly correct hai

ke liye: exact , versus tidy — 6% overestimate, badhne par shrink hota hai.


Step 5 — Do axes add karo: mesh average hops

KYA. X-average aur Y-average combine karo.

ADDITION KYUN KAAM KARTA HAI. Sum ka average averages ke sum ke barabar hota hai — hamesha, chahe X aur Y related bhi hote (yahaan hain nahi). Toh hum simply do per-axis averages add karte hain.

PICTURE. Do per-axis averages milkar ek L-shaped path length banate hain.

Figure — Infinity Fabric  -  mesh interconnects
  • (do baar) ::: Step 4 se exact per-axis average
  • ::: unka exact sum
  • ::: clean approximation, use karke taaki ring ke se directly compare kar sakein

Step 6 — plug in karo aur jeet dekho

KYA. Real numbers daalo. use karo (ek mesh vs ek 16-node ring) aur cycles.

KYUN. Yeh sabse chhota size hai jahaan gap obvious hai aur yeh parent note se match karta hai, toh aap cross-check kar sakte ho.

PICTURE. Do bars: ring latency mesh latency ke upar towering karta hua.

Figure — Infinity Fabric  -  mesh interconnects

(Exact discrete mesh value, , mesh ko aur bhi bada edge deta hai — approximation conservative hai.)


Step 7 — Edge, non-square & degenerate cases (reader ko kabhi map se giraana nahi)

KYA. Argument ke woh corners check karo jahaan neat formulas galat ho sakti hain.

KYUN. Ek formula jo sirf "on average, large square grids ke liye" kaam karta hai, usse uske extremes par test karna zaroori hai, warna aap use wahaan trust karoge jahaan woh fail karta hai.

PICTURE. Chaar tiny scenarios.

Figure — Infinity Fabric  -  mesh interconnects
  • Single node () — dono networks: sirf ek node hai, toh single pair hai (self, self) distance ke saath. Ring: tidy form se, lekin exact self-included sum hai , average ✓ — formula ka tidy version yahaan distort karta hai, exact wala correct hai. Mesh: exact at gives ✓; tidy over-state karta hai. Dono networks correctly dete hain ek node ke liye — koi nahi hai jisko bhejein.
  • Bade network mein same node (source = dest): . Koi hops nahi, latency bas local access hai. Yahi woh pair hai jo hum deliberately include karte hain har average mein (Step 0 rule).
  • ( mesh vs 4-ring), exact self-included forms: ring with ; mesh . par tie — mesh abhi itne small size par aage nahi nikla hai, yahi woh exact reason hai ki rings low core counts par rule karte the.
  • Non-square (rectangular) mesh : axes bas apni own lengths use karti hain — X-average , Y-average , add. Ek long thin grid () ka same node count ke square se bada average distance hota hai, kyunki ek axis stretched hai — toh square optimal aspect ratio hai, aur isiliye chip designers mesh layouts ko square ki taraf push karte hain.
  • Neighbours (adjacent nodes): dono par. Best case identical hai; mesh ka advantage poori tarah far pairs ke baare mein hai.
  • Bandwidth, sirf latency nahi: network ko aadha kaat do. Ring mein sirf 2 links cut cross karte hain; mesh mein hain ( ke liye, woh 4 hain) — 2× bisection bandwidth. Toh mesh throughput aur delay dono par jeet ta hai.
(approximate forms) solve karo crossover ke liye
, toh — iske baad mesh ka average hops jeet ta hai.

Ek-picture summary

Figure — Infinity Fabric  -  mesh interconnects

Upar ki sab cheez ek chart mein collapse hoti hai: ring latency () ek seedhi ramp par uthti hai, mesh latency () ek gentle curve par creep karti hai, ke paas cross karti hai, aur phir hamesha ke liye alag ho jaati hai. Wahi gap kyun chiplet fabrics aur meshes exist karte hain.

Recall Feynman retelling — plain words mein wapas bolao

Chip ke andar data ko ek core se doosre core tak walk karna padta hai, aur har step ek router se guzarne mein time lagta hai. Hum "typical distance" measure karte hain har source-and-destination pair par average lekar — us boring pair ko bhi include karke jo kahin nahi jaata (distance ) — taaki dono shapes ko same footing par judge kiya ja sake. Ring par, cores ek loop par baithte hain; distances add karo (har step par do nodes, plus far side par ek akela node) toh total milta hai, aur saare destinations se divide karne par exactly milta hai — cores pile karo aur loop bas lamba hota jaata hai. Grid (mesh) par, aap sirf blocks ke along walk kar sakte ho, toh distance "columns apart plus rows apart" hai (Manhattan). Count karo kitne pairs gap par hain — right jaate hain, left jaate hain, toh — aur average karne par milta hai per axis, roughly side length ka ek third; do axes milake roughly banate hain. Kyunki , se bahut dheere grow karta hai, grid chips ke bare hone par latency low rakhta hai. Tiny chips () ke liye woh tie karte hain, aur par dono dete hain, isiliye rings ~10 cores tak rule karte the aur meshes/fabrics uske upar takeover karte hain. Grid ko square rakho — use lamba rectangle mein stretch karo aur average distance grow kar jaata hai. Aur grid apne middle ke across zyaada lanes bhi carry karta hai, toh woh bandwidth par bhi aur speed par bhi jeet ta hai.

Recall Related vault threads
  • Coherency traffic is fabric par ride karta hai: 6.3.5-Cache-Coherency-Protocols
  • Kyun distant nodes = slower memory: 6.2.8-NUMA-Architecture
  • Bytes/cycle ko GB/s mein turn karna: 5.1.7-Memory-BandwidthCalculation
  • Buses kahaan se aaye: 6.3.1-Bus-ArchitectureBasics
  • Off-chip cousins: 6.4.3-PCIe-Topology, 7.2.4-Network-Topologies