canjoena - stock.adobe.com

Schlüsselfaktoren zur Lebensdauer von NAND-Flash-Speicher

Program-/Erase-Zyklen, Write Amplification und sogar Garbage Collection tragen zu schnellerem NAND-Flash-Verschleiß bei. Aber Wear Leveling und Bad Block können helfen.

NAND-Flash-Speicher kann nur eine begrenzte Anzahl von Programm-/Löschzyklen (Program / Erase-Cycles, kurz P/E-Zyklen) unterstützen. Sind es zu viele, fällt das Laufwerk aus. Die Anzahl der P/E-Zyklen wird oft als „Endurance“ (Beständigkeit) des Laufwerks bezeichnet. Sie hängt direkt mit der erwarteten Lebensdauer des Speichergeräts zusammen. Um die Lebensdauer zu maximieren, setzen Hersteller verschiedene Techniken ein. Beispielsweise reduzieren sie zur Verhinderung des vorzeitigen Ausfalls von Laufwerken die P/E-Zyklen und gleichen P/E-Lasten aus.

Ein Enterprise-Flash-Laufwerk besteht in der Regel aus einem Controller, einer Schnittstelle, dynamischem RAM, mehreren NAND-Chips und anderen Komponenten. Der NAND-Flash-Memory speichert die aktuellen Daten. Jeder Chip enthält Dies („Würfel“), jeder Die enthält Ebenen (normalerweise zwei) und jede Ebene enthält Blöcke. Die Blöcke bestehen aus Pages. Diese enthalten die Zellen, in denen sich die Daten befinden.

Die Zellen speichern die Daten als Elektronen. Deren Spannungszustand bestimmt die Binärwerte, die die Daten repräsentieren. Die meisten NAND-Flash-Speicher verwenden Floating Gates, um die Elektronen zu speichern, wobei pro Zelle ein Floating Gate eingesetzt wird. Wenn ein Floating Gate Elektronen enthält, gilt es als geladen oder programmiert. Andernfalls gilt es als ungeladen oder gelöscht.

Bei einem Laufwerk mit Single-Level Zell-Technologie registriert das Laufwerk den Bitwert der Zelle als Null, wenn ein Floating Gate programmiert ist, und den Bitwert als Eins, wenn das Floating Gate gelöscht wird. Die Bitwerte sind bei MLC- und TLC-Technologien (Multi-Level Cell und Triple-Level Cellvielfältiger, aber das Prinzip ist das gleiche.

Floating Gate Flash Memory Zelle
Abbildung 1: Floating Gate Flash-Memory-Zelle

Im Inneren der Zelle trennt eine Oxidschicht das Floating Gate vom Siliziumsubstrat. In diesem fließt die Spannung in und aus der Zelle. Die Oxidschicht ist so dünn, dass die Elektronen beim Anlegen der Spannung zwischen dem Floating Gate und dem Substrat hindurchgehen können. Während eines Programm- oder Schreibvorgangs bewegen sich Elektronen in das Floating Gate hinein – während eines Löschvorgangs bewegen sich Elektronen hingegen aus dem Floating Gate heraus.

Obwohl dies eine stark vereinfachte Erklärung dessen ist, was in einer Flash-Zelle vor sich geht, veranschaulicht es ein wichtiges Prinzip: Alle Programm- und Löschvorgänge senden eine Spannung durch das Substrat, was bewirkt, dass Elektronen die Oxidschicht passieren. Bei jeder solchen Operation wird die Oxidschicht leicht beschädigt. Das ist zu Beginn der Laufwerksnutzung kein Problem. Je länger aber das Laufwerk in Betrieb ist und je größer damit die Anzahl der P/E-Zyklen wird, desto größer ist auch die Schädigung der Zellen.

Da die Oxidschicht erodiert, werden Elektronen viel wahrscheinlicher aus dem Floating Gate austreten. Das macht es schwieriger, den tatsächlichen Zustand des Gates zu erkennen. Fehlererkennungs- und Korrekturmechanismen können helfen, diese Probleme für eine Weile zu mildern. Aber irgendwann ist es zu spät und die Zelle wird unlesbar.

Die Probleme werden noch verschärft, da mehr Bits in die Zellen gepackt werden, wie es bei MLC- und TLC-NAND-Flash-Speicher der Fall ist. Aufgrund dieses Verhaltens kann eine Flash-SSD nur eine begrenzte Anzahl von P/E-Zyklen ertragen. Dann fällt das Laufwerk aus.

NAND-Flash-Speicher Write Amplification

Da die Anzahl der P/E-Zyklen eine so wichtige Rolle bei der Langlebigkeit von NAND-Flash-Speicher spielt, besteht der logische Ansatz zur Maximierung der Lebensdauer eines Laufwerks darin, P/E-Zyklen zu minimieren. Dies wird dadurch erreicht, dass die Arbeitslast möglichst gleichmäßig auf alle Zellen des Laufwerks verteilt wird. Allerdings sind Flash-SSDs noch mit einer weiteren großen Herausforderung konfrontiert: der Write Amplification („Schreibfaktor“).

Die Write Amplification tritt auf, wenn Datenänderungen dazu führen, dass mehr Daten auf das Flash-Laufwerk geschrieben als geändert werden. Diese Write Amplification ist bei Flash-Laufwerken besonders stark, weil Daten auf Page-Ebene gelesen und geschrieben werden, aber nur auf Block-Ebene gelöscht werden können. Erschwerend kommt hinzu, dass die Daten nicht direkt aktualisiert werden können. Sie müssen zuerst gelöscht und dann neu geschrieben werden. Das Ergebnis sind viele zusätzliche P/E-Zyklen bei jeder Datenänderung.

Vergleich NAND Flash Memory
Abbildung 2: Vergleich NAND Flash Memory

Beispielsweise kann ein Update auf eine 10 KByte große Textdatei mehrere Operationen auslösen. Das Laufwerk muss den Block, in dem sich die Daten der Datei befinden, an einen temporären Ort kopieren. Es muss dann den ursprünglichen Datenblock löschen. Und schließlich muss es dann die geänderten Daten in den gelöschten Block schreiben. Ein einfaches Update einer 10-KByte-Datei kann auf diese Weise leicht dazu führen, dass 10 MByte oder mehr Daten gelöscht und neu geschrieben werden. Die Folge ist, dass die Tunneloxidschicht mit jedem P/E-Zyklus immer mehr erodiert wird. Bei größeren Dateien, an denen mehrere Blöcke beteiligt sind, wird der Prozess noch komplexer.

Enterprise-NAND-Flash-Speicher muss solche Operationen den ganzen Tag und jeden Tag immer wieder ausführen – und das nicht nur für einen einzigen Benutzer. Relativ leichte und diskrete Datenänderungen können zu enormen Belastungen führen – die die Lebensdauer des Laufwerks langsam aber sicher verschlechtern.

Ausgleich der P/E-Zyklen

Die Hersteller wissen genau, wie sich die Write Amplification und andere Faktoren auf die Lebensdauer des NAND-Flash-Speichers auswirken und wie sie die Lebensdauer des Laufwerks verkürzen. Um diese Probleme zu minimieren und die Lebensdauer der Laufwerke zu maximieren, integrieren sie deshalb verschiedene Technologien in ihre Flash-Drives.

Eine dieser Technologien ist das Wear Leveling („Verschleißausgleich“). Wear Leveling verteilt die P/E-Zyklen gleichmäßig über die gesamte Platte. Diese Technik verhindert, dass einzelne Zellen einen unfairen Anteil der Last erhalten, was dazu führen kann, dass sie sich lange vor den anderen Zellen abnutzen und das Laufwerk vorzeitig ausfällt – auch wenn die meisten anderen Zellen ungenutzt sind. Der Mechanismus stellt also sicher, dass alle Schreibvorgänge auf allen vorhandenen Zellen gleichmäßig verteilt werden. Doch die Wear-Leveling-Technik ist mehr als ein einfacher Lastausgleich. Es ist ein komplexer Algorithmus, der kontinuierlich Datenblöcke im Hintergrund löscht und neu schreibt, während er versucht, überschüssige Write Amplifications zu minimieren.

Müll sammeln - Garbage Collection

Eine weitere Technologie, die Flash einsetzt, ist Garbage Collection, die automatische Speicherbereinigung. Dieser Hintergrundprozess bewegt, konsolidiert und löscht Daten, um Blöcke freizugeben und die Programmleistung zu verbessern. Garbage Collection sammelt die in Blöcken verbliebenen Pages und fasst diese blockweise zusammen. Die als ungültig markierten Pages sollen dabei möglichst viele neue freie Blöcke ergeben. Die Bereinigung entspricht also bildlich einer Müllabfuhr, welche für die Minimierung des Speicheranspruchs eines Prozesses steht. Damit lassen sich die ineffiziente Nutzung des bereits zugeteilten Speichers sowie eine Verlangsamung der Datentransfers vermeiden.

Es gibt zwei Methoden der Garbage Collection: Entweder diese arbeitet passiv im Hintergrund, wenn das Laufwerk beziehungsweise der Controller gerade wenig oder gar nichts zu tun hat. Oder aber die Garbage Collection findet aktiv statt, wenn das Laufwerk gerade Schreibdaten bearbeitet.

Leider kann die Garbage Collection auch zur Write Amplification beitragen. Obwohl die Hersteller die Garbage Collection wie gesagt auf unterschiedliche Weise implementieren können, versuchen sie alle, die richtige Balance zwischen Leistung und Schreibverstärkung zu finden – was ausgefeilte Algorithmen und eine sorgfältige Abstimmung mit den Wear-Leveling-Technologien erfordert.

Zur Unterstützung von Operationen wie Wear-Leveling und Garbage-Collection enthält der NAND-Flash-Speicher auch Over-Provisioning. Dabei wird eine bestimmte Menge an Speicherplatz speziell für SSD-interne Zwecke reserviert und kann vom Anwender nicht genutzt werden. Wear Leveling kann zum Beispiel den freien Platz beim Ausbalancieren von P/E-Lasten nutzen. Und die Garbage Collection verwendet den Platz beim Konsolidieren und Verschieben von Daten. Das Flash-Laufwerk behandelt den Over-Provisioning-Teil als großen Pool, so dass die Mechanismen die Maximalleistung des Laufwerks aufrechterhalten. Ohne eine ausreichende Menge an freiem Speicherplatz würde die Write Amplification weiter zunehmen – und die Leistung abnehmen, wenn sich das Laufwerk mit Daten füllt.

NAND-Flash Endurance

Um die Lebensdauer des Laufwerks zu verlängern nutzen Flash-Laufwerke weitere Techniken. Beispielsweise kann ein Laufwerk ein Bad Block Mapping verwenden, um Daten von einem Block, der schlechte Zellen enthält, in einen Block zu verschieben, der nur gute Zellen enthält. Daten aus fehlerhaften Zellen werden in funktionierende Zellen verschoben. Die defekte Zelle wird dann für die künftige Speicherung von Daten ausgeschlossen, und eine neue nimmt dafür ihren Platz ein. Einige Laufwerke enthalten auch Datenkompressionsalgorithmen, um die Anzahl der Programmoperationen zu reduzieren.

SSDs sind heute in Speicherprodukten und Servern üblich. Aber sie können teuer sein – und sie nutzen sich leider ab. Jeder Hersteller setzt die Laufwerk-Technologien auf unterschiedliche Weise ein. Das übergreifende Ziel ist aber immer, die P/E-Zyklen zu minimieren und die Lebensdauer des Laufwerks zu maximieren. Die Anbieter sind auch auf der Suche nach neuen Wegen, um ihre Laufwerke zu verbessern, die Performance und die Dichte zu erhöhen und gleichzeitig die erwartete Lebensdauer zu verlängern. Die SSDs, die wir in ein paar Jahren sehen, werden wahrscheinlich wenig Ähnlichkeit mit den heutigen Flash-Laufwerken haben.

Folgen Sie SearchStorage.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Vor- und Nachteile von QLC-NAND

Wann eignet sich TLC-NAND

Charge-Trap-Technologie für 3D-NAND

Erfahren Sie mehr über Flash Storage und SSD