Os chips flash NAND possuem alguns mecanismos internos para detectar falhas nas operações de gravação e exclusão e alertarão o controlador se houver uma falha. Nesse caso, o controlador pode tentar novamente ou tratar esse bloco como ruim e mapeá-lo de seu algoritmo de nível de desgaste. Cada página no dispositivo NAND também possui uma área livre ao lado da área de dados principal, destinada a metadados como ECC e outras formas de detecção e tolerância a falhas. O controlador pode decidir sobre seu próprio esquema de tolerância a falhas usando a área sobressalente. Os códigos de Hamming são um esquema comum, embora existam vários, incluindo bits de paridade simples e códigos de Reed-Solomon. Se as coisas não corresponderem a uma operação de leitura, novamente, o controlador estará livre para fazer o que bem entender. Idealmente, ele também mapeia esses blocos do algoritmo de nivelamento de desgaste, e você perde a capacidade pouco a pouco até que "muitos" falhem, onde "muitos" depende dos algoritmos e dos tamanhos da estrutura de hardware no controlador. Muitos projetos de controladores de primeira linha simplesmente declaram um erro no sistema operacional.
Observe que esse não é um problema específico da MLC; embora as células MLC possam estar mais propensas a um erro de leitura, uma vez que há necessariamente uma margem menor de erro, as células SLC falham principalmente com os mesmos mecanismos e podem ser tratadas pelo controlador da mesma maneira.
Os SSDs usam algo chamado "desgaste de nivelamento", em que a unidade mantém uma estatística sobre o uso do setor e, em algum momento ou quando detecta problemas, move o setor para uma reserva, exatamente como acontece com os discos rígidos regulares.
fonte