Har bit ek D flip-flop / latch hai jo apni value clock edges ke across hold karta hai. Ek register n aise cells hain jo ek write-enable line share karte hain.
Hamare paas N=2k registers hain lekin read bus par sirf ek chahiye. Yeh bilkul ek multiplexer hai: ek 2k-to-1 MUX addressed register ko read port par select karta hai.
Yeh step kyun? Reading matlab "bahut mein se ek ko ek wire par pick karna" → yeh MUX ki definition hai.
Writing iska ulta hai: ek incoming data value exactly ek register mein jaani chahiye. Hum ek ==k-to-2k decoder== use karte hain jinke outputs ek global WriteEnable ke saath AND hote hain. Sirf decoded line ka register clock edge par data capture karta hai.
Yeh step kyun? Writing matlab "ek wire ko bahut mein se ek par route karna" → yeh decoder + enable hai.
Har independent read port ko apna MUX chahiye taaki do registers ek saath read ho sakein. Do read ports ⇒ do 2k-to-1 MUXes jo same flip-flop outputs read karte hain.
64 registers ke liye kitne address bits? → log264=6.
2 read ports + 1 write port kyun? → ek 2-operand ALU op rd = rs1 op rs2 se match karta hai.
Read ek ___ se banta hai, write ek ___ se? → MUX ; decoder+enable.
Area ports ke saath kaise scale karta hai? → (R+W)2.
R0 hardwired to 0 se kya milta hai? → free mov, nop, constant source; opcodes bachte hain.
Recall Feynman: ek 12-saal ke bachhe ko samjhao
Socho tum math homework kar rahe ho. Warehouse woh bookshelf hai kamre ke doosri taraf (pahunchna slow hai) — yeh memory hai. Register file woh kuch pencils aur kagaz hain jo tumhari desk par hain. Do numbers add karne ke liye tumhe dono ek saath dekhne hain (do aankhein = do read ports) aur ek haath chahiye answer likhne ke liye (ek write port). Agar tum ek saath do problems solve karna chahte to tumhe chaar aankhein aur do haath chahiye hote — bahut zyada crowded desk! Woh crowding bahut tezi se badhna hi reason hai ki hum khud ko sau haath nahi dete.
Multiplexers and Decoders — read/write selection ke building blocks.
RISC vs CISC — RISC ka load/store design bahut saare registers par heavily depend karta hai.
N registers mein se ek select karne ke liye kitne address bits chahiye?
⌈log2N⌉ bits.
Register file mein read (bahut mein se ek bus par select karna) kaunsa hardware karta hai?
Ek 2k-to-1 multiplexer, har read port ke liye ek.
Register file mein write (data ko ek register tak route karna) kaunsa hardware karta hai?
Ek k-to-2k decoder jo global write-enable ke saath AND hota hai.
Typical CPUs 2 read ports aur 1 write port kyun use karte hain?
Ek 2-operand instruction rd = rs1 op rs2 ko do simultaneous operand reads aur ek result write chahiye.
Register-file area ports ki sankhya ke saath kaise scale karta hai?
Roughly A∝Nn(R+W)2 — port count square mein aata hai.
Register 0 ko aksar hardwired to zero kyun kiya jaata hai?
Yeh ek free constant 0 provide karta hai, jisse mov/nop/clear ko add se synthesize kiya ja sake, opcode space bachta hai.
N registers mein se har ek n bits wide register file mein total state bits?
N×n bits (port count se independent).
Agar issue width double ho (sab ops ko 2R+1W chahiye), to file kitni badi hogi?
Ports 2→4 read, 1→2 write ho jaate hain; area factor =(6/3)2=4×.
Read-during-write hazard kya hai?
Ek register ko usi cycle mein read karna jisme woh write ho raha hai; result read-first vs write-first design par depend karta hai; bypass/forwarding se solve hota hai.