Teen physical facts har cheez ko drive karte hain is topic mein:
Erase-before-write. Tum ek flash bit ko jagah par 0→1 overwrite nahi kar sakte. Pehle tumhe ek poora block erase karna hoga (saare bits 1 set karo), tab bits ko 0 par program karo.
Asymmetric granularity. Tum pages mein read/write karte ho (e.g. 4 KB) lekin blocks mein erase karte ho (e.g. 256 KB = 64 pages). Erase coarse hai; write fine hai.
Wear finite aur local hai. Har erase cells ko thoda damage karta hai. Jo cells zyada erase hoti hain woh pehle marti hain.
YEH KHARIDTA kya hai: Kyunki OS ka address 100 kisi bhi physical location se decoupled hai, controller azaad hai "logical 100" ki har nayi version ko ek fresh, kam-worn physical page par likhne ke liye.
HOW ek write kaam karta hai (out-of-place writing):
OS kehta hai "logical page 100 likho."
Controller ek free, low-wear physical page chunti hai aur wahan likhti hai.
Controller map update karta hai: LBA 100 → new PPA.
Purani physical page stale (invalid) mark ho jaati hai, baad mein reclaim karne ke liye.
KYUN: Hum predict karna chahte hain ki GC kitna extra writing force karta hai, kyunki yeh endurance khaata hai.
Consider karo GC ek victim block par jo N pages ka hai. Maano ek fraction u pages abhi valid hain (baaki stale hain). Is block ko reclaim karne ke liye humein:
uN valid pages ko ek fresh block mein copy karna hoga, phir
block ko erase karna hoga, hume N free pages milenge, jinmein se uN already copies ke liye consume ho gaye hain.
Toh har GC cycle humein N(1−u) genuinely free pages deta hai jabki uN internal copy-writes perform karta hai.
Host writes jo N(1−u) free pages consume karte hain = N(1−u).
Total physical writes = host writes + copies = N(1−u)+uN=N... lekin extra kaam copies hain:
Kaun sa physical fact "erase-before-write" force karta hai? ⇒ Flash bits programming se 1→0 ja sakte hain, lekin 0→1 ke liye ek poora block erase karna padta hai.
FTL kya hai aur kyun exist karta hai? ⇒ Logical se physical addresses ka ek map; yeh unhe decouple karta hai taaki writes wear leveling aur out-of-place writes ke liye freely move kar sakein.
WAF ka formula GC se aur har symbol? ⇒ 1/(1−u); u = GC victims mein valid-page fraction.
Dynamic aur static wear leveling mein difference? ⇒ Dynamic sirf active writes spread karta hai; static cold data bhi relocate karta hai.
Over-provisioning WAF kyun reduce karta hai? ⇒ Zyada free space ⇒ GC emptier blocks chunti hai ⇒ chota u ⇒ kam amplification.
Recall Feynman: 12-saal ke bacche ko explain karo
Socho ek notebook jahan tum sirf pencil se likh sakte ho, aur har page sirf lagbhag 1000 baar erase ho sakta hai usse pehle ki woh fat jaaye. Agar tum hamesha page 1 erase karke rewrite karte, toh woh fat jaata jabki baaki book bilkul nayi hoti. Ek smart helper (controller) iske bajaaye har nayi cheez ek fresh page par likhta hai aur aage ek tiny index rakhta hai jisme likha hota hai "teri grocery list actually page 57 par hai ab." Jab pages crossed-out kachra se bhar jaate hain, helper achhe notes ko ek clean page par copy karta hai aur messy wale ko erase kar deta hai. Woh teri purani drawings jo tum kabhi nahi badlate ko bhi worn pages par move karta hai taaki fresh wale reuse ho sakein. Iss tarah poori notebook dheere-dheere aur evenly wear out hoti hai, na ki ek page pehle marata hai.