NAND Flash have variations in writing (Program/erase cycles) limitations due to differences in manufacturing. Repeatedly writing and erasing a single block can cause reduction in speed due to overuse. More critically, blocks can be damaged and become bad blocks.
The Wear Leveling technique enables the use of each block of NAND Flash installed in a storage device from being damaged prematurely. It does this by only writing and erasing in specific blocks that may cause the entire device (such as SSD, portable, memory card, etc.) to become unusable due to excessive bad blocks.
Through Wear Leveling algorithm implemented by firmware, the controller distributes the written data evenly across all chunks, and controls the average number of writes per chunk to avoid excessive use of specific chunks; allowing each chunk of flash memory to reach its limit of durability thus extending service lifespan.
The advantages of Wear Leveling technology are:
● Avoids excessive use of specific chunks of flash memory that reduce the lifespan of the device
● Early warning of when limit of durability has been reached
● Allows users to backup data in advance to prevent data loss
The function of the Wear Leveling technique is to ensure each chunk in the flash particle is used evenly to avoid excessive consumption of a single chunk that may result in block damage or data loss. Wear Leveling technology can be divided into three types:
- Dynamic Wear Leveling: Uses only the usable space as the average loss, ensuring that data is only written to blocks that are erased less frequently in the same space.
- Static Wear Leveling: Uses all the space inside the Flash die as average loss, moving data from blocks with less wear to other blocks; blocks with fewer writes can be left for usage next time.
- Global Wear Leveling: The range of average loss is expanded to the entire Flash die. The data will be averaged and written into blocks with less loss.