Exercises — TLB (translation lookaside buffer)
5.4.12 · D4· Hardware › Memory Hierarchy & Caches › TLB (translation lookaside buffer)
Poore document mein yahi reference numbers use hote hain (jab tak koi problem override na kare):
Koi bhi problem shuru karne se pehle, us formula ka matlab samjho. Neeche ki tasveer EMAT ko teen stacked blocks mein todti hai: halka lavender block jo aap har access par dete ho (TLB search karte waqt), butter block jo aap har access par bhi dete ho (final data read), aur patla coral block — miss penalty — jo sirf miss fraction ke liye present hai. Dhyan do ki coral block hone par zero ki taraf sirakta hai: woh visual shrinking hi poori wajah hai ki TLB kyon help karta hai.

Har access ko yeh bhi decide karna padta hai ki hit hai ya miss, aur miss khatam nahi hoti — yeh clean fill mein khatam ho sakti hai, ya page fault mein agar page bilkul memory mein nahi hai. Woh branching ek flowchart mein sabse asaan follow hoti hai:
Is flowchart ko yaad rakho: valid-bit branch (E) woh case hai jise zyaadatar students bhool jaate hain, aur yahi Exercise 3.4 ka subject hai.
Level 1 — Recognition
Exercise 1.1 — Splitting an address
Ek system pages aur 32-bit virtual addresses use karta hai. Virtual address 0x00012ABC ke liye batao (a) kitne offset bits hain, (b) offset ki value kya hai, (c) VPN kya hai.
Neeche ki bit-field tasveer exactly dikhati hai ki cut kahan padti hai: upar ke 20 bits VPN hain (lavender), neeche ke 12 bits offset hain (mint), aur vertical dashed line bit 11/12 par boundary hai.

Recall Solution 1.1
(a) bytes, isliye offset ko page ke andar har byte name karne ke liye 12 bits chahiye.
(b) Offset low 12 bits hai. 0x00012ABC ke bottom 3 hex digits ABC hain — lekin 3 hex digits = 12 bits exactly, isliye offset = 0xABC.
(c) VPN bit 11 ke upar ki sab cheez hai → high 20 bits = 0x00012.
Aisa kyun split karte hain? Paging kisi byte ko uske page ke andar kabhi move nahi karta, isliye low bits bina translate hue pass hote hain; sirf page number ko lookup kiya jaata hai.
Exercise 1.2 — What lives in a TLB entry?
Inme se kaunse ek single TLB entry ke andar belong karte hain? (VPN, PFN, page offset, valid bit, permission bits, ASID tag, pure page ka data.)
Recall Solution 1.2
Ek TLB entry mein store hota hai: VPN (tag/key), PFN (answer), ek valid bit, permission bits (read/write/execute, user/kernel), aur — un designs par jo flush avoid karte hain — ek ASID (Address-Space Identifier) tag jo batata hai ki mapping kis process ki hai.
Isme nahi hota page offset (woh address se hi aata hai, untranslated) aur isme nahi hota page ka data (woh cache/DRAM mein hota hai, TLB mein nahi).
ASID field kyun matter karta hai: iske bina, process A ke liye VPN 0x5 aur process B ke liye VPN 0x5 ek dusre se alag nahi ho paate, jo har Context Switch par full flush forced karta hai. Yeh tag dono entries ko saath-saath rehne deta hai (Exercise 4.2 mein use hota hai).
Level 2 — Application
Exercise 2.1 — Build the physical address
TLB mein VPN 0x00012 → PFN 0x0037 diya hai, hai, VA = 0x00012ABC ko physical address mein translate karo.
Recall Solution 2.1
- Split: offset =
0xABC, VPN =0x00012(Exercise 1.1 se). - Lookup: VPN
0x00012present hai → hit, PFN =0x0037. - PA banao: .
0x0037ko left 12 bits shift karne par =0x00037000(teen hex zeros append = 12 bits).0xABCke saath OR karo → PA = 0x00037ABC. 12 se shift kyun? PFN poori 4KiB frame name karta hai; uska base byte address hai, jo exactly 12 se left shift hai.
Exercise 2.2 — EMAT plug-in
ns, ns, single-level walk (), hit rate . EMAT nikalo.
Recall Solution 2.2
Extra miss cost ns. . Yeh shape kyun hai? Aap hamesha TLB search karte ho () aur hamesha ek final data read karte ho (); walk ek maatra extra cost hai aur yeh sirf us accesses par hoti hai jo miss karte hain. Yeh exactly page ke top se woh teen-block picture hai jisme hai.
Level 3 — Analysis
Exercise 3.1 — Multi-level walk zyada hurt karta hai
Same system jaise 2.2 (, ) lekin 4-level page table () aur . Usi hit rate par single-level case se EMAT compare karo.
Recall Solution 3.1
Single-level (): extra → EMAT ns. Four-level (): extra → EMAT . Analysis: miss fraction identical hai (2%), lekin ab har miss 4× ka walk work cost karta hai. Isliye deeper page tables penalty per miss multiply karte hain, aur yahi wajah hai ki x86-64 par high zyada matter karta hai.
Exercise 3.2 — Required hit rate ke liye solve karo
Tum chahte ho ki ns ho jisme , , . Tumhe minimum hit rate kitni chahiye?
Recall Solution 3.2
Set up: . . Minimum hit rate = 96%. Formula ko invert kyun kiya? EMAT badhta hai jab girta hai; constraint miss fraction par ek inequality hai, isliye hum use isolate karte hain aur boundary read karte hain.
Exercise 3.3 — No TLB ke muqable mein Speedup
, , , single-level walk ke saath, ek aisi machine se compare karo jisme TLB nahi hai (har access ek page-table read + ek data read deta hai). Speedup kya hai?
Recall Solution 3.3
No TLB: har access ns. TLB ke saath: ns. Speedup . Iska matlab: locality accesses ko kuch pages par concentrate karti hai → high → TLB yahan access time almost aadha kar deta hai.
Exercise 3.4 — Miss jo sirf walk nahi hoti (valid-bit edge case)
Flowchart ki branch E follow karo. Ek memory access TLB mein miss karti hai, isliye hardware page table walk karta hai — aur PTE ka valid bit = 0 pata hai, matlab page physical memory mein resident nahi hai. Times: ns, single walk ns (), aur ek Page Fault ko disk se service karne mein ns (5 ms) lagta hai. OS ke page load karne ke baad woh dobara walk karta hai (aur ns) aur data read karta hai (ns). Is ek access ka total time kya hai, aur yeh ek ordinary TLB hit (ns) se kitne times bada hai?
Recall Solution 3.4
Flowchart branch by branch neeche chalo:
- TLB search: ns.
- Pehla walk valid bit = 0 pata hai: ns.
- Page fault disk par (branch E → G → H): ns.
- Page resident hone ke baad re-walk: ns.
- Data read: ns.
Total . Hit se ratio . Baat yeh hai: TLB miss aur page fault alag quadrants hain. Zyaadatar misses step 2 par ruk jaati hain (valid bit = 1 → clean fill, ~100ns). Valid-bit-zero branch woh rare, catastrophic wali hai — paanch million nanoseconds — kyunki woh disk hit karti hai. EMAT formula sirf common (resident) miss model karta hai; page faults ek alag, bahut rarer term hain.
Level 4 — Synthesis
Exercise 4.1 — Two-level TLB EMAT
Ek design mein L1 TLB (search ns) aur L2 TLB (search ns) hai. L1 hit rate hai. L1 misses mein se, L2 catch karta hai. L2 miss ek full walk trigger karta hai jisme , hai. Kisi bhi access par aap ek final data read bhi dete ho. L1 hit hone par ignore karo (parallel/short-circuit). EMAT compute karo.
Recall Solution 4.1
Cases ke hisaab se cost banao, phir hamesha final data read jodo:
- L1 hit (prob ): translation cost .
- L1 miss, L2 hit (prob ): cost .
- L1 miss, L2 miss (prob ): cost .
Expected translation cost: Data read jodo: . Do levels kyun? Ek chhota fast L1 common case sasta rakhta hai; ek bada L2 zyaadatar L1 misses ko 400ns walk diye bina rescue karta hai — wahi layering idea jaise data caches mein hai.
Exercise 4.2 — Context switch ke baad Flush vs. ASID cost
Ek Context Switch par, design A TLB flush karta hai; design B ASIDs use karta hai — Exercise 1.2 ka Address-Space Identifier field jo har entry ko uske owning process se tag karta hai, isliye koi flush zaroorat nahi. Switch ke baad, returning process accesses karta hai. ASIDs ke saath uska warm hit rate hai. Flush ke baad TLB cold hai: in accesses ke liye average hit rate tak gir jaati hai (refill hote waqt miss storm). , , use karte hue, in 1000 accesses mein ASID flush ke muqable mein kitna total time bachata hai?
Recall Solution 4.2
Per-access EMAT:
- ASID: ns.
- Flush: ns. Over accesses:
- ASID total ns.
- Flush total ns. Savings ns per switch window. Synthesis point: flush ka nuksan cold-start miss storm hai — cost flush instruction khud nahi hai balki uske baad aane wale kaafi saare walks hain. ASID tag entries ko switch survive karne deta hai, refill avoid karta hai.
Level 5 — Mastery
Exercise 5.1 — When is a bigger TLB actually worse?
Ek chhote TLB ka ns aur hit rate hai. Ek bada TLB hit rate tak badhata hai lekin, har access ke critical path par hone ki wajah se, uska search time ns ho jaata hai. , ke saath, EMAT par kaun jeetta hai?
Recall Solution 5.1
Small: ns. Big: ns. Big TLB yahan jeetta hai (103 < 106). Lekin tension notice karo: bade TLB ne walk term mein ns bachaye par mein ns har single access par add kiya. Agar uska search time, maano, ns ho jaata, toh woh haar jaata: . Mastery point: mein add kiya gaya har nanosecond unconditionally pay hota hai; walk savings sirf miss fraction par pay hoti hain. Bada tabhi jeetta hai jab .
Exercise 5.2 — Break-even search-time penalty derive karo
5.1 ko generalise karo. Ek bada TLB hit rate se tak improve karta hai lekin search time mein ns add karta hai. Woh sabse bada derive karo jis par bada TLB abhi bhi help karta hai, ke terms mein. ke liye evaluate karo.
Recall Solution 5.2
Break-even wahan hai jahan dono EMATs equal hain: Common cancel karo: Evaluate: . Interpretation: deep 4-level walk ke saath, walk penalty badi hai, isliye tum bade TLB ke fayde khatam hone se pehle ns tak extra search time afford kar sakte ho. Deeper page tables → bade TLBs ke liye zyada headroom. Yahi exact reason hai ki real CPUs deep page tables ke saath multi-level TLBs pair karte hain.
Exercises 5.1 aur 5.2 mein trade-off ek graph ke roop mein sabse asaan dikhta hai. Neeche ki figure small-TLB EMAT (ek flat line — yeh kabhi change nahi hoti) ko big-TLB EMAT (jo uske extra search time badhne par rise karti hai) ke against plot karti hai. Exactly wahan read karo jahan rising line flat line cross karti hai: woh crossing hai, aur uske left ki shaded region wahan hai jahan bada TLB jeetta hai.
