SSD Simulator
Performance & Endurance

Endurance, Wear, and Wear Leveling

Flash cells wear out — the trick is to make them wear out evenly.

Each flash block tolerates only a limited number of program/erase (P/E) cycles — a few thousand for modern TLC/QLC, tens of thousands for older SLC. After that, the block becomes unreliable. Wear leveling is the FTL's job of spreading erases evenly so no single block dies long before the others.

If some blocks are erased constantly (hot data) while others sit untouched (cold data), the hot blocks wear out early and the drive fails — even though most of the flash is barely used. Wear leveling prevents this uneven wear.
Erase counts across 10 blocks Poor wear leveling (uneven) Good wear leveling (even)
Same total erases, very different lifespans. The even distribution (right) lasts far longer.

How the FTL levels wear

  • Dynamic wear leveling — always write new data to the least-worn free blocks.
  • Static wear leveling — occasionally move cold data off low-wear blocks so they can take a turn being written.
  • Good data placement — spreading writes across all channels/dies/planes naturally evens things out.
Analogy. Rotate your car tires and they all wear together, lasting the life of the set. Never rotate, and the front tires bald out while the rears look new — you replace the whole set early because of two tires.

Measuring how even wear is takes real math — see Measuring Wear Evenness: CV, Gini, and Fourier.

In the EyanaSSDSim paper & simulator. EyanaSSDSim tracks the erase count of every block and reports the distribution. The Live Simulator shows an erase-count distribution chart and a wear-evenness (CV) curve; the paper uses these to compare how different allocation schemes balance wear.