6.3.1 · D2 · HinglishInterconnects, Buses & SoC

Visual walkthroughBus topologies and arbitration

2,126 words10 min read↑ Read in English

6.3.1 · D2 · Hardware › Interconnects, Buses & SoC › Bus topologies and arbitration

Parent note ne tumhare saamne ek clean-dikhta result rakha tha:

round-robin arbitration ke liye. Lekin yeh number aata kahan se hai? kyun nahin, ya ? Aur asal mein kya measure kar raha hai? Yeh page uss inequality ko bilkul pehle idea se rebuild karta hai — koi bhi symbol use nahi hoga jab tak usse draw na kar liya jaaye.


Step 0 — Symbols se pehle ke words

Kisi bhi formula se pehle, hum plain-language meanings par agree karte hain aur har ek ko ek picture se pin karte hain.

Masters ki sankhya ko hum kahenge. Toh bas kitne devices circle mein hain — ek seedha counting number jaise .

Figure — Bus topologies and arbitration

Figure mein: chaar rounded boxes () sab ek horizontal bar — bus — ki taraf haath badhate hain. Referee (beech mein chhota circle) ek waqt mein sirf unme se ek ko hi pass kar sakta hai. Baaki sab wait karte hain. Yeh "waiting" hi is page ka poora subject hai.


Step 1 — "Circular order" ko ek pointer mein badalna

KYA. Round-robin ka matlab hai: jab ek master khatam karta hai, toh fixed circle mein agla master pehle chance paata hai. Hum "kiska turn hai" ko ek single number se, yaani ek pointer se, encode karte hain.

Priority list kyun nahin, pointer kyun? Kyunki rule positional hai, importance-based nahin. Koi permanently pehle nahin hai. Sirf yeh matter karta hai ki "pointer abhi kahaan khada hai." Ek integer usse poori tarah capture karta hai.

PICTURE.

Figure — Bus topologies and arbitration

Chaar masters ek clock face par baithe hain. Arrow hai, woh pointer, jo abhi ki taraf point kar raha hai. Chhota curved arrow sirf woh motion dikhata hai jo allowed hai: ek turn ke baad, ek seat clockwise step karta hai.

Hume modulo ki zaroorat kyun hai? Kyunki koi "seat " nahin hai. Seats numbered hain — total seats hain. guarantee karta hai ki pointer sirf koi real seat name kare.


Step 2 — "Ek turn mein kitna time lagta hai" — define karna

KYA. Har transaction kuch time leta hai. Alag-alag transactions alag-alag time lete hain, lekin ek sabse lamba possible wala hota hai. Hum us ceiling ko kehte hain.

Average kyun nahin, maximum kyun? Hum ek worst-case sawaal pooch rahe hain ("mujhe kitna wait karna pad sakta hai?"). Worst case ka matlab hai: maano ki tumse aage har master ne sabse dheemi legal transaction li. Averages ek alag sawaal ka jawab denge (typical wait). Real-time guarantees ke liye, sirf ceiling safe hai.

PICTURE.

Figure — Bus topologies and arbitration

Teen transactions alag-alag lengths ke saath ek timeline par hain. Ek dashed line mark karti hai — sabse unchai wali. Har real transaction us line ke neeche fit hoti hai:

  • — kisi real turn ki actual length.
  • — woh promise: koi bhi single turn itne se zyada nahi chalega.

Yeh ceiling hi hai jo baad mein hume alag-alag times ki ek messy list add karne ki jagah multiply karne deti hai.


Step 3 — Woh badkismat moment: "Main apna turn abhi-abhi miss kar gaya"

KYA. Ek chosen master — isse kahein — ke liye sabse bura wait dhundhne ke liye, hum isse sabse badkismat situation mein rakhte hain.

Exactly yahi moment kyun? Pointer seat se ek tick pehle guzar gaya, bilkul us waqt jab ne decide kiya ki use bus chahiye. Toh ko ab wait karna hoga jab tak pointer poora baaki circle travel kare aur seat par vapas aa jaaye.

PICTURE.

Figure — Bus topologies and arbitration

Pointer (red) (shaded) se theek aage baitha hai. Green arc woh safar dikhata hai jo pointer ko par dobara point karne se pehle abhi karna hai. Woh arc hi woh poori waiting time hai jise hum abhi measure karne wale hain.


Step 4 — Exactly kitne masters aage jaate hain, yeh count karna

KYA. Woh seats list karo jinhein pointer par vapas aane se pehle visit karta hai.

Unhein explicitly count kyun karein? Kyunki ka jawab counting se milta hai, guess se nahin. Hum literally queue enumerate karte hain.

PICTURE.

Figure — Bus topologies and arbitration

se theek aage se shuru karke, pointer iss order mein visit karta hai:

  • ke theek baad ki seat.
  • se theek pehle ki seat (humse aage wali aakhri). Check karo: , exactly ke peechay wali seat. Sahi — yahi aakhri competitor hai.

List count karo: offsets run karte hain . Yeh exactly masters hain. Yahan se aata hai — yeh circle mein doosri seats ki sankhya hai. ( total seats, minus apni khud ki = doosri.)


Step 5 — Sum ko ceiling se replace karna: bound appear hoti hai

KYA. Har unknown ko Step 2 ki ceiling se swap karo.

Hum yeh karne ki permission kyun rakhte hain? Kyunki Step 2 mein humne prove kiya ki har term hai. Sum mein har term ko kisi aisi cheez se replace karna jo kam se kam utni badi ho, sum ko sirf bada ya barabar kar sakta hai — kabhi chhota nahin. Toh result ek safe upper bound hai.

PICTURE.

Figure — Bus topologies and arbitration

True sum ke uneven bars sab "uthaye" jaate hain ek hi height tak. Total area sirf badhta hai. Ab bars mein se har ek ki identical height hai, toh unhe add karna bas multiplication hai:


Step 6 — Edge cases (koi bhi scenario bina dikhaye mat chhoḍo)

KYA. ki boundary values aur "koi aur maang nahin raha" wale case ko check karo.

PICTURE.

Figure — Bus topologies and arbitration
Case Kya hota hai Formula check
Ek master, akela. Koi competition nahin. . Wait zero hai — sahi.
Tum aur ek rival. zyada se zyada ek doosre turn ka wait. Sensible.
Idle skip Aage ki kuch seats actually bus nahin chahti. Arbiter silent seats ko turant skip karta hai, toh real wait aksar bound se kaafi neeche hoti hai. phir bhi hold karti hai — yeh worst case hai, typical case nahin.
Large Kai masters. Wait linearly badhti hai: . Yeh round-robin ki cost hai — fairness slow ho jaati hai jab circle bada ho. Ek [[Crossbar

Ek-picture summary

Figure — Bus topologies and arbitration

Yeh single figure poori kahani ko thread karta hai: pointer abhi se guzara (Step 3) → use seats aage visit karni hain (Step 4) → har visit par capped hai (Step 2) → caps stack karne se total milta hai (Step 5) → aur wala corner poori cheez ko zero par collapse kar deta hai (Step 6).

Recall Feynman retelling — isko ek story ki tarah bolo

Socho chaar dost ek swing share kar rahe hain. Ek rule hai: jab tum swing karo, toh circle mein agla dost swing paata hai — ek pointer bus ring ke around step karta hai. Ab maano tumne pointer ko theek us waqt miss kiya jab tumhe turn chahiye tha. Worst case mein kitna wait? Tumhe pointer ko pehle baaki sabke paas se guzarne dena hoga — woh teen doosre dost hain, yaani . Unme se har ek sabse lamba allowed turn, , le sakta hai. Toh tumhara worst wait teen lamba turns hai: dost times each. Aur agar tum swing par akele the? , toh — koi wait nahin, jo obviously sahi hai. Yahi poora formula hai, aur yeh tumhe kabhi itne se zyada wait nahin karne dega.

Recall Quick self-check

kahan se aata hai? ::: Yeh worst case mein tumse aage doosre masters ki count hai — sab seats minus tumhari khud ki. kyun, average transaction time kyun nahin? ::: Hum ek worst-case guarantee chahte hain; real-time deadlines ke liye sirf ceiling safe hai. mein kya karta hai? ::: Yeh pointer ko last seat se vapas seat 0 par wrap karta hai, line ko ek circle mein close karta hai. Tumhara khud ka turn wait mein count kyun nahin hota? ::: Tumhara turn wait ke ant mein inaaam hai, uska hissa nahin. par formula kya deta hai, aur yeh sahi sanity check kyun hai? ::: Zero — ek akela master kisi ka wait nahin karta, toh koi bhi sahi formula yahan vanish ho jaana chahiye.

Yeh bhi dekho: Bus protocols and signals · Cache coherence · PCIe architecture · 6.3.01 Bus topologies and arbitration (Hinglish)