Locality ki wajah se, CPU data ko cache mein cache lines (typically 64 bytes) ke chunks mein laata hai, single bytes mein nahi. Ek request jo already cache mein hai woh hit hai; warna woh miss hai aur slower level se fetch karni padti hai.
Hum chahte hain expected time pata karna ek program mein memory access karne ki. WHY derive karna? Kyunki yeh hume exactly batata hai ki low hit rate kitna hurt karta hai.
Maano:
h = ek level par hit rate (accesses ka fraction jo wahan milta hai), 0≤h≤1
thit = time agar is level par hit ho
Tlower = average time agle (slower) level se lene ka agar miss ho
Expected value ki definition se, probability h se hum thit pay karte hain, aur probability (1−h) se hum additionally neeche level tak jaane ka paisa dete hain:
AMAT=h⋅thit+(1−h)(thit+Tlower)
Expand aur simplify karo (thitdono cases mein pay hota hai):
Recall Feynman: ek 12-saal ke bacche ko samjhao (click to reveal)
Socho tum homework kar rahe ho. Tumhare haath abhi jo pencil use ho rahi hai use pakde hain (registers). Tumhari desk par is ghante ki zaruri kitabein hain (cache). Bookshelf kamre ke doosri taraf par aur kitabein hain (RAM). Library shahر mein har kitaab hai lekin wahan jaana padta hai (SSD/HDD). Tum sabse zyada use hone wali cheez desk par rakhte ho taaki library kabhi jaana na pade. Computer bhi yahi karta hai: jo data sabse zyada use karta hai use sabse paas, fastest jagah rakhta hai, taaki slow trip almost kabhi nahi karni padti.
Fast memory hamesha small aur expensive kyun hoti hai?
Fast cells (SRAM) ~6 transistors/bit use karte hain aur physically core ke paas rakhne padte hain (signal-distance limit), isliye cost aur area capacity limit karte hain.
AMAT derive karo
Hit prob h se t_hit pay karo; miss prob (1−h) se t_hit + T_lower pay karo. AMAT = h·t_hit + (1−h)(t_hit + T_lower) = t_hit + (1−h)·T_lower.
Temporal locality kya hai?
Haal hi mein use kiya gaya data jald hi phir use hone ki sambhavana hai (jaise loop variables).
Spatial locality kya hai?
Haal hi mein access kiye gaye address ke paas ka data jald hi access hone ki sambhavana hai (jaise array elements).
Cache line kya hai?
Fixed-size block (~64 bytes) jo CPU memory levels ke beech transfer karta hai, spatial locality exploit karke.
Cache hit vs miss?
Hit = data is fast level mein mil gaya; miss = nahi mila, slower level se fetch karna padega (miss penalty pay karke).
Kaunse levels volatile hain?
Registers, saare cache levels, aur RAM power-off par data lose karte hain; SSD aur HDD non-volatile hain.
Two-level AMAT with t_L1=1ns, h=0.95, RAM=100ns
1 + 0.05·100 = 6 ns.
Zyada RAM directly CPU kyun fast nahi karta?
CPU speed cache hit rates par depend karti hai; extra RAM sirf tab help karta hai jab aap disk par swap kar rahe the.
RAM vs SSD ka key difference?
RAM volatile working memory hai (~100ns); SSD non-volatile persistent storage hai (~100µs), ~1000× slower.
Miss par 1 byte ki jagah 64 bytes kyun fetch karte hain?
Spatial locality — nearby data ki zarurat hogi, isliye slow fetch ko kaafi useful bytes par amortize karo.