Wear Leveling is used almost universally in Flash products today to ensure that data is written equally to all blocks on a Flash device, thereby preventing the overuse of any particular block, leading to failure of the device and data loss. Wear Leveling therefore improves the endurance and stability of a Flash product.
How Does Wear Leveling Work?
Wear Leveling works by having the controller make an erase count of each block and direct new data to be written to the block with the lowest erase count. On the left is a comparison between one device that does not feature Wear Leveling, and one that does. It can be seen that without Wear Leveling, certain blocks will be written to more often, drastically shortening product life. Wear Leveling allows for a more even write distribution, reducing overwrites and prolonging product life.
Wear Leveling Techniques
Wear Leveling can be mainly divided into three types: Dynamic, Static, and Global. The greatest difference amongst the three lies in how they average wear.
Dynamic Wear Leveling
Dynamic Wear Leveling considers only available space, and ensures that a write operation is performed to the blocks with lower erase counts within this space.
Static Wear Leveling
Static Wear Leveling takes a single Flash chip unit—both blocks that already have data written to them and empty blocks—as its area of consideration when calculating erase counts. It will move the data from blocks with lower erase counts to other blocks. In doing so, the low-erase-count blocks can be released for further use.
Global Wear Leveling
Global Wear Leveling deploys a more powerful controller than the previous two, and, differentiating itself from Static Wear Leveling, whose area of consideration is limited to a single chip unit, takes from it what is already beneficial to an even higher level by extending its scope of activity to the entire device, ensuring that a write operation is performed to those Blocks anywhere in the device having lower Erase Counts.
In general, Wear Leveling works to ensure that write actions are made to blocks that have the lowest erase counts, to average write actions across the entire device and extend the lifespan of the device. It has become an imperative technique in Flash products. Transcend’s Flash product lineup supports Wear Leveling to ensure product endurance and reliability.