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.
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.
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.
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.
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 Qj aur Qk se compare karta hai. Match hone par, sticky note ko jar se replace kar deta hai.
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).
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.
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.
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 Vj kab use karte hain versus Qj?
Vj operand value hold karta hai jab woh ready ho (jar on desk); Qj producing desk ka tag hold karta hai jab value abhi pending ho (sticky note).
Qj=0 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 n2 wires chahiye; ek shared shout-wire O(n) wiring mein sab n consumers tak pahunchti hai, aur issue time par hum jaante nahi kaun result chahega.
64 stations ke liye tag ko kitne bits chahiye?
⌈log264⌉=6 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).