Intuition The one idea behind this whole topic
Flash memory forgets a little bit every time you erase it, and it can only be erased a fixed number of times before a cell dies for good. So the whole game is: never let one spot get erased far more often than the others — spread the wear, and hide all that shuffling behind a secret address-map so the operating system never notices.
This page assumes you know nothing . Every letter, every fraction, every piece of jargon the parent note Wear leveling and flash controllers throws at you gets built here, from the ground up, in the order you need it. Read top to bottom.
A flash cell is one microscopic bucket that traps electric charge. Charge present = one binary value; charge absent = the other. That trapped charge is how it "remembers" a bit even with the power off.
Picture a tiny bucket with a leaky lid. Pour charge in (that's programming ); tip it empty (that's erasing ).
The word bit means one 0-or-1 answer — the smallest unit of information. A cell stores one bit (or a few, see SLC MLC TLC QLC ). Everything on a flash chip is a giant grid of these buckets.
Intuition Why "wear" even exists
Every time you tip the bucket empty, the lid's rubber seal cracks a little. After enough tips the lid leaks so badly the bucket can't hold charge at all — the cell is dead . That crack-per-erase is the whole reason this topic exists.
Cells never act alone. They are grouped, and — crucially — grouped differently for different operations.
Definition Page and block
A page is the smallest chunk you can read or write (e.g. 4 KB = 4096 bytes).
A block is the smallest chunk you can erase (e.g. 256 KB = 64 pages).
A block is a drawer ; a page is one folder inside the drawer .
Intuition Why two sizes cause all the trouble
You can pull out one folder to read it (page), but you can only empty the whole drawer at once (block). So to "fix" one folder you must save the other 63 elsewhere and dump the drawer. This mismatch — fine writes, coarse erases — is the root of garbage collection and write amplification later.
KB = kilobyte ≈ 1000 bytes; a byte = 8 bits. So a 4 KB page holds ~32 000 individual cell-buckets.
The parent note uses a handful of letters. Here is each, in plain words, with its picture and its job.
N — pages per block
==N == is just how many pages fit in one block . In the drawer picture, N = 64 . It is a plain counting number. We need it because garbage collection reasons about "a block of N pages" as one unit.
u — the valid fraction
==u == (read "you") is a number between 0 and 1 telling you what fraction of a block's pages still hold live, wanted data . The rest are stale (old junk). If 45 of 64 pages are live, u = 45/64 ≈ 0.70 .
u = 0 → the block is all junk (nothing worth saving).
u = 1 → the block is all live (nothing to throw away).
fraction and not a count
A fraction like u is scale-free: it means the same thing whether a block holds 64 or 512 pages. That lets one clean formula describe every drive. Whenever you see 1 − u , read it as "the fraction that is junk" — the part we get to reclaim for free.
Definition WAF — write amplification factor
WAF answers: "For every 1 unit the operating system asked to write, how many units actually hit the flash?" It is a ratio, so it has no units — it's "3.33 physical writes per 1 host write," etc. WAF = 1 means no waste; higher means the controller is secretly writing extra.
The parent note writes things like u → 0 and WAF → ∞ . Let's earn those symbols.
Definition The limit arrow
→
==x → 0 == is read "as x gets closer and closer to 0." We use it because u can approach an extreme (all-junk, all-live) without ever exactly sitting there, and we want to know where the formula heads . It's a "which way is this sliding?" tool — nothing more mysterious than watching a dial creep toward a mark.
Definition The infinity symbol
∞
==∞ == is not a number; it's shorthand for "grows without any ceiling." When we say WAF → ∞ we mean: the amplification gets arbitrarily huge — the drive spends almost all its effort copying old data, doing barely any useful work.
Worked example Sanity check by hand
Block is 70% live, so u = 0.70 , junk fraction 1 − u = 0.30 .
WAF = 0.30 1 = 3.33
Meaning: writing 1 GB of real data forces ~3.33 GB onto the flash. The other 2.33 GB is old valid data GC had to shovel out of the way.
An LBA (logical block address) is the address the OS asks for — "give me item 100." A PPA (physical page address) is where the data actually lives on the chip. The flash controller keeps a map LBA → PPA that it rewrites on every write.
Intuition Why the map is the master trick
Because address 100 is decoupled from any fixed cell, the controller can dump each new version of "logical 100" onto a fresh, less-worn page and just update the arrow in the map. The OS thinks it overwrote the same spot; physically the data hopped somewhere new. This one indirection makes wear leveling, garbage collection , and over-provisioning all possible.
Erase cracks the cell = wear
Cells grouped as pages and blocks
Write in pages erase in blocks
Write amplification WAF equals 1 over 1 minus u
Read the map bottom-right: wear + the address map force wear leveling ; the page/block mismatch forces garbage collection , whose copying gives you the WAF formula.
Cover the right side. Say each answer out loud before revealing.
What does a flash cell physically store, and how? Trapped electric charge in a tiny bucket; presence/absence of charge encodes a bit.
Why does erasing wear a cell out? Each erase slightly damages (cracks) the cell's insulating layer; after a fixed number it can't hold charge and dies.
What is the difference between a page and a block? You read/write in pages (small, e.g. 4 KB); you erase in blocks (large, e.g. 256 KB = 64 pages).
What does the letter N mean here? The number of pages contained in one block.
What does u mean, and what range does it take? The fraction of a block's pages that are still valid (live); a number from 0 to 1.
In words, what is 1 − u ? The fraction of a block's pages that are stale junk — the part we can reclaim for free.
What does WAF measure? Physical writes to flash divided by writes the host requested; how much extra writing the controller does.
Read "u → 1 " aloud and say what happens to WAF. "As u approaches 1" — WAF grows without bound (→ ∞ ) because almost every page must be copied.
What is the difference between an LBA and a PPA? LBA = the logical address the OS asks for; PPA = the real physical page where data lives.
Why can the controller move your data without the OS noticing? The FTL keeps an LBA→PPA map it can rewrite freely, so the logical address stays constant while the physical location changes.