Die NAND-Flash-Chips verfügen über einige integrierte Mechanismen zum Erkennen von Fehlern beim Schreiben und Löschen und alarmieren den Controller, wenn einer ausfällt. In diesem Fall kann der Controller es entweder erneut versuchen oder diesen Block als fehlerhaft behandeln und ihn aus seinem Verschleißausgleichsalgorithmus abbilden. Jede Seite im NAND-Gerät verfügt neben dem Hauptdatenbereich über einen freien Bereich , der für Metadaten wie ECC und andere Formen der Fehlererkennung und -toleranz vorgesehen ist. Die Steuerung kann anhand des Ersatzbereichs ein eigenes Fehlertoleranzschema festlegen. Hamming-Codes sind ein gängiges Schema, obwohl es mehrere gibt, einschließlich einfacher Paritätsbits und Reed-Solomon-Codes. Wenn bei einem Lesevorgang die Dinge nicht übereinstimmen, kann der Controller wieder tun, was er möchte. Im Idealfall werden diese Blöcke auch aus dem Algorithmus für die Verschleißnivellierung zugeordnet, und Sie verlieren nach und nach die Kapazität, bis "zu viele" Blöcke ausfallen, wobei "zu viele" von den Algorithmen und Hardwarestrukturgrößen innerhalb des Controllers abhängen. Viele First-Cut-Controller-Designs melden einfach einen Fehler für das Betriebssystem.
Beachten Sie, dass dies kein MLC-spezifisches Problem ist. Obwohl MLC-Zellen anfälliger für einen Lesefehler sind, da es notwendigerweise eine geringere Fehlerquote gibt, versagen SLC-Zellen mit größtenteils denselben Mechanismen und können von der Steuerung auf die gleiche Weise behandelt werden.
SSDs verwenden eine sogenannte "Verschleißnivellierung", bei der das Laufwerk eine Statistik über die Sektornutzung speichert und irgendwann oder wenn es Probleme erkennt, wird der Sektor in eine Reserve verschoben, genau wie dies bei normalen Festplatten der Fall ist.
quelle