Wear-Leveling sorgt dafür, dass die Flashzellen gleichmäßig abgenutzt werden und damit die Lebensdauer der SSD steigt. »Viele verbinden die Lebensdauer von Solid State Drives ausschließlich mit Lebensdauer der einzelnen Flash-Chips. Diese beträgt, je nach Technologie und Struktur, bei einem Single-Level-Cell-Aufbau typisch 100.000 Schreib-/Löschzyklen und bei einer Multi-Level-Cell-Architektur 5.000 bis 10.000 Schreib-/Löschzyklen. »Wenn über SSDs gesprochen wird, muss man das Thema Lebensdauer jedoch viel umfassender betrachten als nur auf die Flash-Zelle zu schauen«, betont Robert Herth. Denn intelligentes »Wear Leveling« trägt zum Beispiel dazu bei, die Lebensdauer der Speicherlösung deutlich auszureizen.
Es gibt zwei Methoden des Wear-Leveling: dynamisch und statisch. Viele Hersteller von SSDs nutzen beide Methoden, um die Abnutzung der Flashzellen so lange wie möglich hinaus zu zögern. »Dynamisch bedeutet, dass die Firmware die am wenigsten benutzten, aktuell freien Flashblöcke nimmt, um Daten zu schreiben. Das geht bei einer noch unbenutzten SSD natürlich problemlos, da die Flashzellen so gut wie leer sind. Bei einer benutzten SSD, die zum Beispiel viele Daten abgespeichert hat, könnten dadurch die Zellen schneller abgenutzt werden. Deshalb gibt es noch eine statische Variante des Wear-Leveling, die durch Umlagern der Daten auf wenig benutzte Flashblöcke die Abnutzung der Flashzellen über die gesamte Kapazität der eingebauten Flash-Chips reduziert«, veranschaulicht Robert Herth. Gäbe es das Wear-Leveling nicht, würden bestimmte Bereiche auf der SSD, wo beispielsweise große Programme wie Photoshop oder Spielfilme liegen, kaum benutzt und damit auch kaum »gestresst« werden. Die Aufgabe des Wear-Leveling ist es also, hier für Ausgleich bei der Nutzung zu sorgen. Bei der Auswahl der entsprechenden SSD sollte man daher darauf achten, dass in der Firmeware ein Wear-Leveling dynamisch und auch statisch implementiert ist.
Error Correction Code/Error Detection Code
Des Weiteren hat der EDC/ECC-Algorithmus (Error Detection Code/Error Correction Code) für die Korrektur der sogenannte Bitfehler einen Einfluss auf die Endurance, also die maximale Anzahl der Schreib- und Löschzyklen der Flashes. Wenn ein Flash-Block in die Nähe seiner maximalen Schreib-/Löschzyklen kommt, wird die Wahrscheinlichkeit eines Bitfehlers auf jeden Fall höher. Bitfehler werden, je nach SSD, erkannt und falls machbar korrigiert.« Typische Angaben für Bitfehlerkorrekturen sind 8 bit auf 512 bytes bei SLC und 24 bit auf 1 KB bei MLC. Hier spielt die Single-Level-Cell-Technologie zusätzlich ihre Vorteile gegenüber Multi-Level-Cell aus, da sie stabiler ist und in Summe weniger Bitfehler, dafür aber auch einen wesentlich höheren Preis hat.
»Interessanterweise kann es selbst in benachbarten Blöcken zu Bitfehlern kommen. Dies tritt glücklicherweise sehr selten auf, zeigt aber in welchem engen Bereich der Fehlerwahrscheinlichkeit man sich bei der Flashtechnologie bewegt«, sagt Robert Herth.