SSDs (Solid State Drives) bieten Vorteile wie Geschwindigkeit, geringen Stromverbrauch, Haltbarkeit und geringes Gewicht. SSDs sind mittlerweile genauso verbreitet wie HDDs (Festplattenlaufwerke). Der Unterschied zwischen HDDs und SSDs besteht darin, wie sie Daten verwalten. Diese Aufgabe ist auf SSDs komplizierter als auf HDDs. Bei richtiger Verwaltung sind SSDs schnell und haben eine lange Lebensdauer über die gesamte Lebensdauer des Laufwerks.
Grundlegende Funktionsweise von NAND (NOT-AND Gate).
Es ist nicht möglich, einzelne NAND-Flash-Zellen einzeln zu lesen oder zu beschreiben. Daten müssen mit sehr spezifischen Eigenschaften gruppiert und darauf zugegriffen werden. Im Folgenden sind die Lese-, Schreib- und Löscheigenschaften von SSDs aufgeführt:
1. Auf Seite 1 ausgerichtete Lesevorgänge können nur 1 Byte vom Betriebssystem anfordern, es wird jedoch eine ganze Seite auf der SSD abgerufen, wodurch viel mehr Daten als nötig gelesen werden müssen.
2. Schreibt auf Seiten ausgerichtet. Beim Schreiben von Daten auf eine SSD erfolgen die Schreibvorgänge in Schritten der Seitengröße. Auch wenn ein Schreibvorgang nur ein Byte betrifft, muss eine ganze Seite in den Flash geschrieben werden.
So schreiben Sie Daten auf eine Seite:
A. Die blauen Daten zeigen Datenschreibvorgänge.
B. Neue Daten in Gelb werden dem Block hinzugefügt. Die blauen Daten müssen ebenfalls aktualisiert werden. Da es nicht überschrieben werden kann, muss es erneut geschrieben werden und die Originaldaten werden als ungültig markiert.
C. Dieser Vorgang wiederholt sich jedes Mal, wenn die blauen Daten eine Aktualisierung erhalten.
3. Löschungen werden an Blockgrößen ausgerichtet. Die Seite arbeitet lesend/schreibend, es ist jedoch nicht möglich, einzelne Seiten zu löschen. Es ist nur möglich, den gesamten Block auf einmal zu löschen.
Lese- und Schreibvorgänge können auf Seitenebene erfolgen, das Löschen (Löschen) jedoch nur auf Blockebene. Benutzer können eine beliebige Anzahl von Seiten aus einem Block oder in einen Block lesen oder schreiben, aber wenn ein Benutzer einen Teil dieses Blocks löschen möchte, muss das Laufwerk den Block löschen.
Eigenschaften von Löschvorgängen auf SSDs
A. Alle Seiten sind leer
B. Daten werden geschrieben
C. Der Block ist voll
D. Daten werden als ungültig markiert. Gültige Daten, die nicht zum Löschen markiert sind, werden mit neuen Daten kombiniert. Die neue kombinierte Gruppe „zieht um.“ Hierbei werden „gute Daten“, die nicht als ungültig markiert sind, aus dem blauen Block und dem grünen Block in einen leeren Block mit verfügbaren Seiten umgeschrieben
e. Die gültigen Daten werden in einen anderen Block geschrieben. Alle Daten im Block können als ungültig markiert werden
F. Alle Daten in einem Block wurden gelöscht und können wiederverwendet werden
Flash-Übersetzungsschicht (FTL)
SSDs nutzen die gleichen Host-Schnittstellen wie eine SATA-Schnittstelle (Serial ATA). Eine zusätzliche Komponente ist erforderlich, um die inneren Eigenschaften des NAND-Flash-Speichers zu verbergen und dem Host nur ein Array von LBAs (logische Blockadressen) zugänglich zu machen. Diese Komponente ist die FTL und befindet sich im SSD-Controller. Die FTL ist von entscheidender Bedeutung und dient zwei Hauptzwecken: logische Blockzuordnung und Garbage Collection.
Logische Zuordnung
Die logische Blockzuordnung übersetzt LBAs aus dem Hostraum in PBAs (physische Blockadressen) im physischen NAND-Flash-Speicherraum. Diese Zuordnung erfolgt in Form einer Tabelle, die für jede LBA die entsprechende PBA angibt. Diese Zuordnungstabelle wird für einen schnelleren Zugriff im Cache der SSD gespeichert. Bei einem Stromausfall wird es im Flash-Speicher gespeichert.
Müllabfuhr
Der Garbage-Collection-Prozess im SSD-Controller stellt sicher, dass „ungültige“ Seiten gelöscht und in einen „freien“ Zustand zurückversetzt werden. Dadurch wird Platz für eingehende Schreibbefehle geschaffen, da Seiten nicht teilweise geschrieben werden können. Wenn die Daten auf einer Seite aktualisiert werden müssen, werden die neuen Daten auf eine freie Seite geschrieben und die Seite mit den vorherigen Daten wird als ungültig markiert. Wenn Blöcke ungültige Seiten enthalten, müssen diese gelöscht werden, bevor sie neu geschrieben werden können.
Zusammenfassung
SSD-Operationen werden durch die Funktionen von NAND-Flash eingeschränkt:
1. Schreibvorgänge müssen in der Einheit einer Seite erfolgen und dürfen den ursprünglichen Inhalt der Seite nicht überschreiben.
2. Das Löschen von Daten muss aufgrund physischer Einschränkungen auf Blockebene erfolgen.