Il wear leveling è una tecnica che aiuta a ridurre il prematuro deterioramento delle celle di memoria NAND Flash ottimizzando con diversi approcci il loro sfruttamento nel tempo. La necessità di ricorrere al wear leveling è dovuta alla limitatezza dei cicli di scrittura e cancellazione delle celle di memoria NAND Flash, ormai famosissime grazie alla diffusione dei Solid State Disk.
L’uso continuativo di un numero limitato di blocchi porta quindi ad un malfunzionamento generale della memoria, dal momento che tali blocchi raggiungono il limite del loro ciclo di funzionamento prima degli altri.
L’attuazione del wear leveling è a carico del controller NAND Flash in quanto esso gestisce tutte le operazioni di I/O tra il sistema host e le celle di memoria.
Nella maggior parte dei casi il controller si avvale di una tabella di traduzione degli indirizzi per generare di volta in volta le più opportune corrispondenze tra gli indirizzi LBA (Logical Block Address) utilizzati dal sistema host e gli indirizzi PBA (Physical Block Address) utilizzati per mappare fisicamente le celle come mostrato nell’immagine.
Esistono diversi approcci per implementare il wear leveling e normalmente più il metodo è complesso e raffinato, più lunga sarà la vita della memoria NAND Flash in cui è utilizzato.