Wear Leveling is a technique by which the SSD-Controller attempts to prolong the lifespan of the SSD-NAND by ensuring that data writes are distributed evenly among all available NAND-cells, Because each cell can only endure a finite number of writes/erasures, it is possible that , without Wear Leveling, some cells could be unevenly stressed, which would prematurely end the life of the SSD.
There are two types of Wear Leveling; Dynamic and Static. The Dynamic Wear Level algorithm guarantees that data program and erase cycles will be evenly distributed throughout all the cell blocks within the NAND flash. The algorithm is Dynamic because it is executed every time the data in the write-buffer of the SSD is flushed and written to NAND Flash Memory. There is also the special case when data is written and stored in Flash for long periods of time or indefinitely. While other blocks are actively being swapped, erased and pooled, these blocks remain inactive in the Wear Leveling process.
To ensure that all blocks are being Wear Leveled at the same rate, a secondary Wear Level algorithm called Static Wear Leveling is deployed. Static Wear Leveling addresses the blocks that are inactive and have data stored in them.