Fehlerkorrekturverfahren: Wie geschicktes Coding Flash-Speicherfehler korrigiert

Schon wenn Flash-Chips das Werk verlassen, sind einige Zellen defekt. Lesefehler führen dann zu falschen Ergebnissen. Mathematik korrigiert aber viele Fehler.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, Thomas Kuhlenbeck

(Bild: Thomas Kuhlenbeck)

Lesezeit: 14 Min.
Von
  • Alexander Zeh
  • Antonia Wachter-Zeh
Inhaltsverzeichnis

Anwender erwarten, dass eine SSD ihre wertvollen Daten fehlerfrei speichert. Doch Flash-Speicher ist nicht fehlerfrei, irgendeine Zelle ist immer defekt. Dazu kommen noch Fehler durch den Betrieb des Flash-Speichers. Da die SSD-Hersteller jedoch um diese Fehler wissen, speichern sie zu jedem Datenblock eine gewisse Menge an Zusatzinformationen. Diese Redundanzdaten dienen im Fehlerfall ausgeklügelten Algorithmen zur Korrektur der Werte. So erreichen SSDs insgesamt eine sehr kleine Fehlerquote, deren Wert man in den Datenblättern als Unrecoverable Bit Error Ratio (UBER) findet.

Die UBER liegt bei den meisten SSDs bei nur einem fehlerhaften Sektor pro 1016 oder 1017 gelesenen Bits. Mehr als einen nicht-korrigierbaren Lesefehler muss man selbst bei Hunderten von Terabytes nicht befürchten, wie die Praxis beweist. In einem solchen Fall ist die betroffene Datei defekt und nicht mehr lesbar. Doch zunächst zu den möglichen Fehlerursachen, dann zu den Korrekturmethoden.

Mehr zum Thema Flash-Speicher

SSD-Controller lesen oder beschreiben immer ganze Pages, einen meist 16 KByte entsprechend 131.072 Bit großen Speicherblock; auf einzelne Bits können sie nicht zugreifen. Zum Beschreiben müssen diese Pages komplett frei sein. Damit die SSD auch große Datenmengen schnell speichern kann, sollten immer möglichst viele Pages frei sein.