NAND flash memory is susceptible to wear due to repeated program and earse cycles that are commonly done in data storage applications and systems using Flash Translation Layer(FTL). Constantly programming and earsing to the same memory location eventually wears that portion of memory out and makes it invalid. As the result, the NAND flash would have limited lifetime.

To prevent scenarios such as these from occurring, special algorithms are deployed within the SSD called wear leveling. As the term suggests, wear leveling provides a method for distributing program and erase cycles uniformly throughout all of the memory blocks within the SSD. This prevents continuous program and erase cycles to the same memory block, resulting in greater extended life to the overall NAND flash memory.

There are two types of wear leveling, dynamic and static.

Dynamic wear leveling

The dynamic wear algorighm guarantees that data program and erase cycles will be evenly distributed throughout all th blocks within the NAND flash. The algorithm is dynamic because it is executed every time the data is the write buffer or the drive is flushed and written to flash memory. Dynamic wear leveling alone can not insure that all blocks are being wear leveled at the same rate.

Static wear leveling

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 insure that all blocks are being wear leveled at the same rate. a secondary wear leveling algorighm called static wear leveling is deployed. Static wear leveling addresses the blocks that are inactive and have data stored in them.

Most of Vendors provide have products provide both static and dynamic wear leveling algorithms to make sure the NAND blocks are wearing evenly for greater extended life of the SSD.