Verschleißnivellierung für Flash-Speicher Was ist Wear-Leveling?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Dr. Jürgen Ehneß

Wear-Leveling ist ein technisches Verfahren zur Verlängerung der Nutzungsdauer Flash-basierter Speicher wie SSDs. Da die Anzahl ausführbarer Schreibvorgänge einer Flash-Speicherzelle begrenzt ist, versucht dieses Verfahren die Speicherzellen gleichmäßig mit Daten zu beschreiben. Grundsätzlich ist eine Unterscheidung zwischen statischen, dynamischen und globalen Verfahren möglich.

Firmen zum Thema

Die wichtigsten IT-Fachbegriffe verständlich erklärt.
Die wichtigsten IT-Fachbegriffe verständlich erklärt.
(Bild: © aga7ta - Fotolia)

Ins Deutsche übersetzt, bedeutet Wear-Leveling „Verschleißabgleich“ oder „Verschleißnivellierung“. Es handelt sich um ein technisches Verfahren, das für Flash-basierte Speichergeräte wie Solid State Drives (SSDs) oder USB-Flash-Speicher zum Einsatz kommt. Ziel der Verschleißnivellierung ist es, die Lebens- und Nutzungsdauer dieser Speichergeräte zu verlängern, indem die Flash-Speicherzellen möglichst gleichmäßig mit Daten beschrieben werden.

Technischer Hintergrund ist, dass die maximal mögliche Zahl an Schreibvorgängen einer Flash-Speicherzelle begrenzt ist. Je nach technischer Realisierung einer Flash-Speicherzelle liegen die maximal möglichen Schreibvorgänge in einem Bereich zwischen 10.000 und 100.000. Bei Überschreitung speichert die Zelle die Daten nur noch unzuverlässig. Jeder Schreib- oder Löschvorgang reduziert die Lebensdauer des Flash-Speichers.

Die Verschleißnivellierung versucht eine gleichmäßige Auslastung der Zellen mit Schreibvorgängen zu erreichen. Die Nivellierung wird vom Controller nach einem vorgegebenen Algorithmus ausgeführt und berücksichtigt den Schreibzählerstand der einzelnen Zellen. Der Controller weist Schreibvorgänge den Speicherzellen mit dem niedrigsten Schreibzählerstand zu. Das Überschreiten der maximal möglichen Schreibvorgänge einzelner Zellen lässt sich so vermeiden, und das Speichergerät bleibt länger nutzbar.

Die verschiedenen Verfahren des Wear-Levelings

Grundsätzlich ist eine Unterscheidung zwischen statischem, dynamischem und globalem Wear-Leveling möglich. Die Verfahren unterscheiden sich in der Art und Weise, wie sie die Schreiblast auf die Flash-Speicherzellen verteilen.

Die dynamische Verschleißnivellierung berücksichtigt beim Schreiben von Daten nur die aktuell freien Speicherzellen oder Speicherblöcke. Die freien Zellen mit dem niedrigsten Schreibzählerstand werden zuerst beschrieben. Gibt es bereits belegte Speicherzellen oder Speicherblöcke mit einem niedrigeren Zählerstand, bleiben diese für neue Schreibvorgänge unberücksichtigt.

Dieses Manko beseitigt die statische Verschleißnivellierung. Sie bezieht die Schreibzählerstände aller Speicherzellen oder Speicherblöcke mit in den Verteilungsalgorithmus für neue Schreibvorgänge ein, unabhängig davon, ob sie bereits belegt oder frei sind. Hat eine mit statischen Daten belegte Speicherzelle einen niedrigen Schreibzählerstand, werden diese statischen Daten im Bedarfsfall auf andere Speicherzellen verschoben, um die ursprünglich belegte Zelle mit ihrem niedrigen Schreibzählerstand für neue Schreibvorgänge zu verwenden.

Globales Wear-Leveling unterscheidet sich von der dynamischen und der statischen Verschleißnivellierung durch den Betrachtungsbereich der Speicherzellen. Dieser ist nicht auf einzelne Speicherchips beschränkt, sondern erstreckt sich über alle Speicherchips des kompletten Speichergeräts. So lässt sich über das ganze Speichergerät eine gleichmäßige Schreibauslastung erzielen.

(ID:47587628)