Los chips flash NAND tienen algunos mecanismos integrados para detectar fallas en operaciones de escritura y borrado, y alertarán al controlador si falla uno. En este caso, el controlador puede volver a intentarlo o tratar ese bloque como malo y sacarlo de su algoritmo de nivelación de desgaste. Cada página en el dispositivo NAND también tiene un área de reserva junto al área de datos principal, que está destinada a metadatos como ECC y otras formas de detección y tolerancia a fallas. El controlador puede decidir sobre su propio esquema de tolerancia a fallas utilizando el área de reserva. Los códigos de Hamming son un esquema común, aunque hay varios, incluidos bits de paridad simples y códigos Reed-Solomon. Si las cosas no coinciden en una operación de lectura, nuevamente, el controlador es libre de hacer lo que quiera. Idealmente, también mapearía estos bloques del algoritmo de nivelación de desgaste, y simplemente perdería capacidad poco a poco hasta que "demasiados" bloques fallen, donde "demasiados" depende de los algoritmos y tamaños de estructura de hardware dentro del controlador. Muchos diseños de controladores de primer corte simplemente declaran un error al sistema operativo.
Tenga en cuenta que este no es un problema específico de MLC; aunque las celdas MLC pueden ser más propensas a un error de lectura, ya que necesariamente hay un margen de error menor, las celdas SLC fallan con la mayoría de los mismos mecanismos, y el controlador puede tratarlas de la misma manera.
Los SSD usan algo llamado "nivelación de desgaste", donde la unidad mantiene una estadística sobre el uso del sector y, en algún momento o cuando detecta problemas, moverá el sector a uno de reserva, al igual que sucede con los discos duros normales.
fuente