5.3.6 · D1 · HinglishAdvanced Microarchitecture

FoundationsReservation stations

2,133 words10 min read↑ Read in English

5.3.6 · D1 · Hardware › Advanced Microarchitecture › Reservation stations

Reservation stations parent note padhne se pehle, tumhe usmein aane waale har word ki samajh honi chahiye. Yeh page har symbol ko scratch se build karta hai — plain meaning, ek picture, aur kyun is topic ko iske zaroorat hai. Upar se neeche padho; har block apne upar wale par depend karta hai.


1. Instruction, operand, result — teen nouns

Ek chhoti si recipe card ki picture socho: upar likha hai kya karna hai (add), beech mein ingredients hain (operands), aur neeche finished dish hai (result).

Topic ko inki zaroorat isliye hai kyunki reservation station ka poora kaam yeh hai: recipe pakdo, missing ingredients ka wait karo, dish deliver karo. Agar tum recipe card ke teen parts naam nahi le sakte, toh baad ka kuch bhi samajh nahi aayega.


2. Register — ek named cubbyhole

Figure — Reservation stations

Figure dekho: aath labelled cubbyholes hain. R2 mein abhi number 7 hai, R3 mein 4 hai. R1 = R2 + R3 jaisi instruction cubbyholes R2 aur R3 ko read karti hai aur cubbyhole R1 mein write karti hai.


3. "Ready" vs "pending" — ek operand ki state

Ek operand exactly do states mein se ek mein hota hai:

  • Ready: uska number already exist karta hai. Hum ise abhi desk mein copy kar sakte hain.
  • Pending: koi pehle wali, abhi tak incomplete instruction ise produce karegi. Humein wait karna hoga.

Topic ko is split ki zaroorat isliye hai: ek station tab tak execute nahi kar sakta jab tak koi operand sticky note hai. Jaise hi last sticky note jar ban jaati hai, woh fire ho jaata hai. Baki sab kuch is ek condition ke aaspaas bookkeeping hai.


4. V aur Q fields — jar aur sticky note, symbols mein

j aur k kyun? Kyunki zyaadatar operations (ADD, SUB, MUL) exactly do inputs lete hain. j pehla hai, k doosra. Ek load ko sirf ek chahiye; tab k simply unused hota hai.


5. Tag — ek waiting desk ka address

Ek tag ko kitne bits chahiye, bas yeh hai ki "N desks ke liye mujhe kitne labels chahiye":


6. Snoop aur broadcast — kamre mein shout

Figure — Reservation stations

Figure dekho: ek speaker (finishing unit) ek (tag, value) pair ek single wire par shout karta hai jo har desk aur register boxes ko touch karta hai. Har desk shouted tag ko apne aur se compare karta hai. Match hone par, sticky note ko jar se replace kar deta hai.


7. Common Data Bus (CDB) — shout-wire itself

Kyunki yeh ek wire hai, har cycle mein sirf ek result travel karta hai. Agar do units ek saath finish ho jaayein, ek ko apni baari ka wait karna hoga — ek structural hazard (Section 9).


8. Register status table & renaming — "R1 abhi kaun own karta hai?"

Figure — Reservation stations

Figure ko left se right follow karo. Pehle R1 ki row empty hai → uski value trustworthy hai. Jab MUL R1,… desk Mult1 par issue hoti hai, hum stamp karte hain Status[R1] = Mult1: "box par trust mat karo; Mult1 R1 ka future own karti hai." Baad mein SUB bhi R1 ko target karti hai desk Add2 par, toh hum overwrite karte hain Status[R1] = Add2 mein.


9. Hazards — teen tarike jisme instructions collide karti hain

Poori machine inhe dodge karne ke liye exist karti hai, pipeline hazards se:


Yeh sab topic ko kaise feed karta hai

Register: named box

Name vs value gap

Ready or Pending operand

Vj Vk jars and Qj Qk sticky notes

Tag: address of a desk

Register status table

Renaming: overwrite the tag

Readiness Qj=0 and Qk=0

Broadcast and Snoop

Common Data Bus

RAW WAR WAW hazards

Reservation Station fires

Har arrow kehta hai "right samajhne ke liye left chahiye." Bottom node Z parent topic hai: ek instruction execute hoti hai jaise hi uske jars bhar jaate hain.


Equipment checklist

Self-test: reveal karne se pehle har ek answer de sakte ho?

Register ke naam aur value mein kya fark hai?
Naam box par label hai; value andar ka number hai. Renaming re-points karta hai kaun sa desk ek naam own karta hai, bina stored numbers touch kiye.
Hum kab use karte hain versus ?
operand value hold karta hai jab woh ready ho (jar on desk); producing desk ka tag hold karta hai jab value abhi pending ho (sticky note).
ka kya matlab hai?
Koi tag pending nahi — operand ki value aa gayi hai. Iska matlab value zero equals NAHI hai.
Tag kya hai?
Ek chhota sa ID jo ek specific reservation station ko naam deta hai, sticky note par return address ki tarah use hota hai taaki consumers jaanein kiska result lena hai.
CDB par broadcast kyun karte hain point-to-point wires ki jagah?
Point-to-point ko roughly wires chahiye; ek shared shout-wire wiring mein sab consumers tak pahunchti hai, aur issue time par hum jaante nahi kaun result chahega.
64 stations ke liye tag ko kitne bits chahiye?
bits.
Kaun sa hazard "true" hai aur kaun se do "false" hain?
RAW true hai (genuinely data nahi hai); WAR aur WAW false hain, sirf same register naam reuse karne se hote hain — renaming unhe hata deti hai.
Status[R1] overwrite karna kya accomplish karta hai?
Yeh newest writer ko R1 ka owner banata hai, taaki baad ke readers latest value par depend karein aur pehle ke dead writes invisible ho jaayein (WAW/WAR fix).