Go to Top

Wear-Leveling – Was ist das?

SSDs sind auf dem Vormarsch. Ihre Vorteile bei der Geschwindigkeit und ein sinkender Preis führen dazu, dass diese Speicher immer mehr sowohl im privaten Bereich als auch in Unternehmen eingesetzt werden. Allerdings hat die Technologie auch einen Nachteil: Mit jedem Schreib- und Löschvorgang nimmt die Lebensdauer der einzelnen Zellen eines Flash-Chip-basierten Speichers ab. Denn die Lebensdauer der SSD-Flashspeicher ist je nach Typ auf eine bestimmte Anzahl von Schreibvorgängen begrenzt. Wenn zudem Daten nicht gleichmäßig in die einzelnen Zellen geschrieben werden, kann es dazu kommen, dass einzelne Zellen des Flash-Speichers ausfallen. Um eine gleichmäßige Auslastung der einzelnen Zellen zu erreichen, kommt eine besondere Technik zum Einsatz: Das „Wear-Leveling“ – oder zu Deutsch – Verschleiß-Nivellierung.

 

Wear-Leveling ist eine Technik, die von vielen SSD Controller genutzt wird, um die Lebensdauer eines Speichers zu erhöhen. Das Prinzip dahinter ist einfach: Die Einträge aller Blöcke einer SSD gleichmäßig zu verteilen, um eine ausgeglichene Abnutzung zu gewährleisten. Alle Zellen bekommen dabei die gleiche Anzahl an Schreibvorgängen, um zu vermeiden, dass zu oft im gleichen Block geschrieben wird und die Zelle zu schnell abgenutzt wird.

Flash Speicher und die Zellen von SSDs erlauben eine begrenzte Anzahl von Schreib- und Leseprozessen. Diese liegt üblicherweise zwischen 10.000 und 100.000. Auf einer SSD mit 400 GB Speicherplatz schreiben und löschen wir täglich ca. 100 GB an Daten. Wear-Leveling stellt sicher, dass die 100 GB an Daten nicht immer auf die gleiche Stelle in den physikalischen Flash-Blöcken geschrieben werden, sondern gleichmäßig auf alle physikalischen Zellen der SSD verteilt werden. Einfach ausgedrückt, werden per Wear-Leveling die 400 GB an physikalischem Speicher in 4 Blöcke à 100 GB aufgeteilt und als Block 1, 2, 3 und 4 bezeichnet. Wenn Sie also 100 GB am 1. Tag schreiben, speichert die SSD die Daten in Block 1 Würden diese Daten am zweiten Tag wieder gelöscht und Daten neu geschrieben, speichert die SSD diese neuen Daten nicht in den freien Block 1, sondern zur gleichmäßigen Auslastung in Block 2. Dies stellt sicher, dass alle physikalischen Zellen gleichmäßig verwendet werden, um die Lebensdauer der SSD zu verbessern.

Anwendung des Wear-Leveling

Wear-Leveling wird typischerweise vom Flash-Controller oder der Firmware verwaltet, die wiederum einen Wear-Leveling-Algorithmus nutzen, um festzulegen, welcher physische Block zu verwenden ist, wenn Daten gespeichert werden.

 

Wear-Leveling Algorithmen

Es gibt viele Algorithmen für das Wear-Leveling. Beschränken wir uns hier auf die zwei Hauptprinzipien:

  • Dynamisches Wear-Leveling
  • Statisches Wear-Leveling

 

Dynamisches Wear-Leveling

Bei der dynamischen Verschleiß-Nivellierung werden gelöschte Blöcke zusammengefasst und der Block mit der niedrigsten Löschungsrate für den nächsten Schreibprozess selektiert.

Um dies zu erreichen, zählt der SSD-Controller die Anzahl der Schreibvorgänge in jedem Block in einen nicht-flüchtigen Speicher. Wenn die SSD nagelneu und unbenutzt ist, steht der Zähler auf 0, jeder weitere Schreibvorgang erhöht jeweils um 1.

Die dynamische Verschleiß-Nivellierung ist jedoch nicht optimal. Wenn einem Block einer Zelle Daten zugewiesen werden, die nur Lesezugriff haben oder die nicht häufig aktualisiert werden, werden sie überhaupt nicht bewegt. Das bedeutet, dass sie innerhalb des jeweiligen Blocks verbleiben. Eine bessere Methode wäre, diese Art von Daten auf wenig verwendete Blöcke zu verschieben und die Daten, die häufig aktualisiert werden auf häufiger genutzten Blöcken zu platzieren.

Statisches Wear-Leveling

Statisches Wear-Leveling wählt zum Schreiben neuer Daten den Zielblock mit der niedrigsten Löschungsrate aus und löscht bei Bedarf den ausgewählten Block. Danach wird der Block mit neuen Daten beschrieben und es wird sichergestellt, dass Blöcke mit statischen Daten nur bewegt werden, wenn sie unter einem festgelegtem Schwellenwert bei der Löschungsrate liegen.

Fazit:

Aufgrund seiner Eigenschaften ist die SSD eine Festplatte, die es zu optimieren gilt. Das Wear-Leveling bzw. die Verschleiß-Nivellierung ist eine anerkannte Technik, um dies zu erreichen. Es gibt auch andere Arten der Optimierung, die meisten wurden entworfen, um die Abnutzung von SSDs zu verringern. Ziel ist den Umfang des Schreibens zu begrenzen und damit die Haltbarkeit zu verbessern.

Bildnachweis: Kroll Ontrack UK