Algoritmo de nivelamento de desgaste NAND Flash

Aug 27, 2022

Como o número de operações de gravação da memória flash é limitado, se 100.000 operações de gravação tiverem sido executadas em algumas unidades, a confiabilidade de gravação dessas unidades não poderá ser garantida e algumas unidades poderão falhar. Por exemplo, alguns logs do sistema de dados de gerenciamento são reescritos com frequência, enquanto alguns dados de arquivos estáticos quase nunca são reescritos. Se não for controlado, alguns blocos serão danificados antecipadamente devido a apagamentos repetidos e alguns blocos não foram reescritos. falha de células individuais. O nivelamento de desgaste é um algoritmo amplamente utilizado para resolver este problema.

O nivelamento de desgaste é fornecer um mecanismo de mapeamento de bloco para distribuir a perda de gravação entre diferentes blocos. Isso não fará com que alguns blocos sejam escritos primeiro e invalide todo o disco SSD. Em vez disso, alguns blocos reservados substituirão os blocos que falham antes da vida útil esperada. Este algoritmo torna a vida útil de todo o dispositivo igual à vida máxima do flash.

Geralmente, um algoritmo de armazenamento de arquivos baseado em página é usado para realizar o nivelamento de desgaste. Não há correspondência um-para-um entre o endereço físico e o endereço lógico da memória flash. Quando o SSD recebe uma solicitação de gravação de dados, ele não grava em ordem, mas encontra a unidade com a menor gravação. Portanto, ao alocar dinamicamente blocos físicos para escrita de dados, as prioridades correspondentes serão alocadas de acordo com o uso de cada bloco, de forma a equilibrar a vida útil de cada célula de toda a memória.