SSD - Solid State Drive

Ein Solid State Drive, kurz SSD, ist ein Massenspeicher, vergleichbar mit einer Festplatte. Das SSD, nicht die SSD, wird wie eine herkömmliche Festplatte angesprochen. Im Gegensatz zur Festplatte hat ein SSD keine beweglichen Teile. In einem SSD ist das Speichermedium ein Flash-Halbleiterspeicher.

Flash-Speicher ist ein elektronischer Speicher und arbeitet demnach vollkommen geräuschlos, hat kurze Zugriffszeiten und schont den Akku, weil keine mechanischen Teile durch Motoren bewegt werden müssen. Flash-Speicher wird hauptsächlich in mobilen Endgeräten, wie Handys, Digitalkameras und MP3-Player, eingesetzt.

Obwohl das SSD als Massenspeicher sich durchgesetzt hat, hat die klassische Festplatte immer noch ihre Daseinsberechtigung. Trotz der typischen Vorteile, wie hohe Geschwindigkeit bei nicht-sequenziellen Zugriffen und niedrigem Energieverbrauch ist ein SSD nicht zwangsläufig der bessere Datenspeicher. Insbesondere bei der Archivierung von Daten hält der Speicherinhalt länger.

SSD in der Form einer herkömmlichen Festplatte SSD als mSATA-Steckkarte SSD in der m.2-Bauform (NFF)

Vorteile eines SSD (Solid State Drive)

  • hohe Transferraten
  • kurze Zugriffszeiten, vor allem beim Lesen
  • niedrige Leistungsaufnahme
  • geräuschloser Betrieb

Lesen und Schreiben

Eine Festplatte organisiert den Speicher in Spuren und Sektoren auf mehreren magnetischen Scheiben. Um einen bestimmten Sektor zu lesen, muss eine Festplatte die Köpfe auf die richtige Spur bewegen. Diese Bewegung unterliegt einer gewissen mechanische Trägheit, die überwunden werden muss. Dann vergeht noch eine geringe Zeit, bis der gewünschte Sektor am Lesekopf vorbeidreht. Dieser ganze Zeitverlust fällt bei einem SSD weg. SSDs zeichnen sich also durch eine sehr hohe Lese- und Schreibgeschwindigkeit aus.

Beim Lesen holt der Flash-Controller immer 2 bis 4 kByte aus den Flash-Zellen und schreibt sie in einen Pufferspeicher. Da beim Lesen keine Lese-/Schreibköpfe mechanisch positioniert werden müssen ergeben sich äußerst geringe Zugriffszeiten.

Während das Lesen sehr schnell geht, gestaltet sich das Schreiben von Daten etwas aufwändiger. Flash-Speicher ist blockweise organisiert. Typischerweise hat ein Speicherblock 128 bis 512 kByte. Auch dann, wenn es nur ein paar Bit sind, muss der betreffende Block vollständig neu geschrieben werden. Vor dem Beschreiben einer Speicherzelle, muss sie gelöscht werden. Dazu wird eine hohe Löschspannung angelegt. Dabei verlieren alle Zellen dieses Blocks ihren Inhalt. Erst dann werden die Daten geändert und dann wieder zurück geschrieben. Dieser Vorgang führt dazu, dass schnelle Festplatten beim Schreiben schneller sein können, als langsame SSDs.

Um die niedrige Schreibgeschwindigkeit zu beschleunigen wird der Flash-Speicher um einen Puffer ergänzt. Davon profitiert vor allem NCQ. NCQ fängt die Schreibzugriffe ab und sortiert sie um, damit sie möglichst intelligent auf die einzelnen Speicherblöcke verteilt werden. Obwohl dieses Verfahren mit dem Namen NCQ (Native Command Queuing) für herkömmliche Festplatten eingeführt wurde, ermöglicht es auch SSDs einen Geschwindigkeitsgewinn.
Bei normalem Nutzungsverhalten machen sich die hohen Zugriffszeiten beim Schreiben nicht negativ bemerkbar. Die meisten Daten werden immer noch aus dem Speicher gelesen. Schreibzugriffe treten wesentlich seltener auf.

Flash-Memory

Flash-Speicher bzw. Flash-Memory kombiniert die Vorteile von Halbleiterspeicher und Festplatten. Die Daten bleiben wie bei einer Festplatte auch nach dem Abschalten der Energieversorgung erhalten.
Die Speicherzelle eines Flash-Speichers ist dem Feldeffekttransistor (FET) sehr ähnlich. Über das Floating-Gate des Transistors wird die Speicherzelle gelöscht, geladen und deren Speicherinhalt gemessen (gelesen).
Typischerweise nimmt eine Speicherzelle nur zwei verschiedene Zustände an, die sich durch geladen und ungeladen ausdrücken. Wenn man in der Lage ist, mehrere Zustände in einer Speicherzelle festzuhalten, dann kann man die Speicherdichte erhöhen. Bei Flash-Speicher versucht man durch unterschiedliche Spannungsniveaus mehrere Zustände in einer Speicherzelle abzubilden. Also nicht nur 1 Bit pro Zelle, sondern 2, 3, 4 oder sogar mehr Bit.

Speicherkapazität

Ein Nachteil von SSDs ist der relativ große Platzbedarf. Prinzipiell kann man mit feineren Halbleiterstrukturen mehr Speicherkapazität bei gleicher Chipgröße bekommen. Bei Flash-Speicher lässt sich die Datendichte aber nicht einfach erhöhen, ohne dabei Nachteile in Kauf zu nehmen. Mit jeder weiteren Verkleinerung der Chipstrukturen wird das Floating Gate jeder Speicherzelle immer empfindlicher und auch der Stromverbrauch höher. Im Floating Gate werden die Ladungen gespeichert. Jedes Ändern des Ladezustandes, das so genannte Schreiben, belastet das Floating Gate und die umgebenden Sperrschichten.

Empfindlichkeit und Stromverbrauch stehen dem Wunsch nach größerer Speicherkapazität gegenüber. Deshalb versucht man die Speicherdichte pro Speicherzelle zu erhöhen, in dem man mehrere Zustände in eine Zelle packt. Also nicht nur 1 Bit, sondern 2 oder mehr Bit pro Speicherzelle, die in Form einer Ladung abgebildet werden. Diese Ladung muss entsprechend exakt in die Speicherzelle geschrieben werden. Entsprechend exakt muss auch der Lesevorgang sein, bei dem die Ladung der Speicherzelle gemessen wird.

Erschwerend kommt hinzu, dass die Zellen auch noch feinere Halbleiterstrukturen aufweisen. Dann reduziert sich die Anzahl der Schreibvorgänge, die eine einzelne Speicherzelle aushält. Kleinere Strukturbreiten haben zur Folge, dass jede Speicherzelle immer weniger Elektronen aufnehmen, deren Ladung eine bestimmte Zelleninhalt darstellt. Je geringer die Anzahl von Elektronen, desto höher die Wahrscheinlichkeit von Bitfehlern. Fehlerkorrekturmaßnahmen im Chip und im Controller senken die Fehlerwahrscheinlichkeit.

Aufbau eines SSD

Aufbau einer SSD

Wear-Leveling

Ein Hauptproblem von Flash-Speicher und damit auch bei SSDs ist die begrenzte Lebensdauer. Je nach Flash-Typ wird eine Speicherzelle nach rund 1.000 bis 100.000 Speichervorgängen defekt. Zwar wird nicht der gesamte Speicher zerstört. Doch es machen sich Verschleißerscheinungen bemerkbar, die auch zu Datenverlust führen können. Deshalb ist eine ständig auf den Speicher schreibende Anwendung für Flash-Speicher eher ungeeignet.

Wear-Leveling sind eine Kombination aus Verfahren und Mechanismen, die die Lebensdauer von Flash-Speicher insbesondere in SSDs verlängern. Beispielsweise verteilt der Flash-Controller die Schreibzugriffe gleichmäßig über alle Speicherzellen. So müssen einzelne Speicherblöcke nicht durch ständige Speicherzugriffe leiden.
Über die exakte Arbeitsweise der Wear-Leveling-Algorithmen ist wenig bekannt. Die SSD-Controller-Hersteller halten sie verständlicherweise unter Verschluss. Doch so viel ist bekannt, man unterscheidet zwischen dynamischen und statischen Wear-Leveling.

Beim dynamischen Wear-Leveling verteilt der Flash-Controller die Schreibzugriffe gleichmäßig über die freien oder frei werdenden Blöcke. Dabei nutzen sich Bereiche, die häufiger geändert werden stark ab und fallen irgendwann aus. Deshalb verschiebt man beim statischen Wear-Leveling immer mal wieder Daten in stark abgenutzte Bereiche, die sich nicht oder selten ändern. Auf dieses Weise wird der Ausfallzeitpunkt einzelner Zellen hinausgezögert. Das erhöht die Lebensdauer des Flash-Speichers. Die zusätzlichen Lese- und Schreibzugriffe kosten jedoch Performance.

Beim statischen Wear-Leveling macht sich jedoch ein Mechanismus des Betriebssystems negativ bemerkbar. Denn beim Löschen von Dateien bekommt der Flash-Controller nichts mit. Lediglich ein paar Bit im Dateinamen und der Dateistruktur ändern sich. So merkt sich das Betriebssystem, dass der Platz anderweitig genutzt werden kann. So kann es passieren, dass der Flash-Controller beim statischen Wear-Leveling mit viel Aufwand Daten verschiebt, die bereits vom Anwender gelöscht wurden. Genau aus diesem Grund ist ein vom Betriebssystem frisch formatierter Speicher aus Sicht des Flash-Controllers nahezu voll. Deshalb gibt es das Trim-Kommando, mit dem das Betriebssystem dem Flash-Controller mitteilt, welche Speicherbereiche es nicht mehr braucht.

Als Anwender kann man der Belastung der Speicherzellen dadurch entgegenwirken, dass man das Speichermedium im Vergleich zur schreibenden Datenmenge sehr groß wählt. Dadurch kommt jede einzelne Zelle seltener an die Reihe. Mit der Größe der Speicherkapazität steigert also indirekt auch die Lebensdauer.
Wenn also ein SSD nur wenig befüllt ist, hat der Controller keine Schwierigkeiten die Daten auf dem Speicher zu verteilen. Erst bei zunehmender Speicherbelegung gehen dem Controller die unbelegten Speicherblöcke aus und er muss die Daten auf verschiedene Blöcke verteilen. Wenn dann nur noch teilweise beschriebene Blöcke vorhanden sind, dann muss der Controller diese Blöcke lesen, modifizieren und wieder zurückschreiben. Das kostet Zeit und macht sich mit größeren Verzögerungszeiten und geringen Transferraten bemerkbar. Aus diesem Grund werden SSDs im Lauf der Zeit beim Schreiben immer langsamer.

Um diesen Effekt möglichst lange hinauszuzögern, ist es empfehlenswert Defragmentierung, Dateiindexierung und Prefetching des Betriebssystems abzuschalten. SSDs brauchen diese Optimierungsmechanismen aufgrund ihrer geringen Lesezugriffszeit überhaupt nicht. Im Gegenteil. Sie schaden, weil unnötigerweise sehr viele zusätzliche Schreibzugriffe anfallen. Dadurch brauchen normale Schreibzugriffe länger und die Lebensdauer des Flash-Speichers reduziert sich.

Bad Block Management / Defect Management

Das Bad Block Management bzw. Defect Management überwacht die Flash-Speicherzellen auf Abnutzung. Wird eine Speicherzelle zu stark abgenutzt und steht kurz vor einem Ausfall, wird ein ganzer Zellenblock als fehlerhaft markiert und durch einen Zellenblock aus der Reserve ersetzt.
Bei SLC-SSDs ist die Gefahr der Abnutzung nicht so groß. Hier steht in der Regel eine Reserve von 2% der Gesamtspeicherkapazität zur Verfügung. Bei MLC-SSDs ist die Abnutzung größer. Hier steht in der Regel eine Reserve von 7% zur Verfügung.
Durch das Bad Block Management verliert ein SSD auch nach Jahren und großer Beanspruchung keine Speicherzellen. Die Lebensdauer, Zuverlässigkeit und Speicherkapazität eines SSD bleiben so langfristig erhalten.

Error Correction Code / Error Detection Code

Bei ECC und EDC geht es um das Erkennen und die Korrektur von Bitfehlern. Die Anzahl der Bitfehler nimmt zu, wenn eine Flashzelle in die Nähe ihrer maximalen Schreib-/Löschzyklen kommt. In dem Fall schlägt das Bad Block Management zu. Doch schon vorher kann es zu einem Bitfehler kommen. Die Folgen könnten zum Beispiel Datenverlust oder inkonsistente Daten sein.
Bei MLC-SSDs kommen 24 Bit für die Fehlerkorrektur auf 1 kByte. Bei SLC-SSDs kommen nur 8 Bit für die Fehlerkorrektur auf 512 Byte. Die Gefahr durch Bitfehler ist bei SLC-SSDs geringer.

Garbage Collection

Hinter Garbage Collection steckt ein Hintergrundprozess, der vom Betriebssystem mit dem TRIM-Befehl angestoßen wird.
Da beim Löschen einer Datei nur der Name im Dateisystem gelöscht wird und die eigentliche Informationen in den Speicherzellen erhalten bleiben kann das Betriebssystem nicht geleerte Speicherzellen prüfen und leeren lassen. Dadurch steigt die Schreibgeschwindigkeit bei gelöschten Zellen

Haltbarkeit und Zuverlässigkeit von SSDs

Es wurde bereits die begrenzte Lebensdauer von Flash-Speicher und damit von SSDs angesprochen. Hierzu gibt es folgende Erkenntnisse:
Die Anzahl der möglichen Schreib- bzw. Löschzyklen lässt keine direkten Rückschlüsse auf die Haltbarkeit oder die Zuverlässigkeit zu. Anders als bei Festplatten besteht zwischen den Speicherzellen und den Sektoren des Dateisystems keine direkte Zuordnung. Generell verteilt der Flash-Controller die Schreibzugriffe gleichmäßig über alle Zellen. Die Daten in Zellen, die mit selten veränderten Daten, wie Betriebssystem und Programmen belegt sind, werden ab und zu umgeschichtet, um so wieder weniger stark abgenutzte Zellen zu bekommen.
Generell kann man davon ausgehen, dass SSDs im alltäglichen Desktop-Betrieb länger halten, als von den Herstellern angegeben. 3.000 bis 100.000 Speicher- bzw. Löschzyklen sind für die meisten Anwendungen vollkommen ausreichend. Außerdem wird mit zusätzlichem technischen Aufwand die Anzahl der Zugriffe auf die Speicherzellen verringert.

Prinzipiell darf man sich von den Angaben zur Lebensdauer von Flash-Speicher nicht irritieren lassen. Die Webseite "The Tech Report" hat hierzu einige SSDs einem Langzeittest unterzogen. Hierbei kam heraus, dass die Datenmenge, die auf ein SSD geschrieben werden muss, um sie zu zerstören, zwischen 700 TByte und 1 PByte liegt. Das ist 10 mal mehr als die Hersteller garantieren. Beispielsweise beträgt die Garantie bei einem SSD von Sandisk bei 80 TByte geschriebenen Daten in 10 Jahren. Hierbei der Hinweis, dass das für Server-SSDs zu wenig ist. Bei einem gewöhnlichen PC oder einem Notebook mit typischer Nutzung müsste man schon mehr als 20 GByte pro Tag auf das SSD schreiben, um es nach mehreren Jahren ins Nirvana zu schicken. Das ist dann doch eher unwahrscheinlich. Das Schreiben kommt in typischen Client-Systemen sehr viel seltener vor als Lesen.
Diese Tests sind schon etwas älter und damit nicht auf aktuelle SSDs und Flash-Controller übertragbar. Allerdings ist ersichtlich, dass die Gefahr eines Ausfalls eines SSD bei angemessener Nutzung eher unwahrscheinlich ist. Angemessen bedeutet, dass das richtige SSD für den jeweiligen Einsatzzweck anhand ihrer Parameter und Leistungsangaben ausgewählt wurde.

Wenn bei einem SSD irgendwann mal die Verschleißgrenze erreicht ist, dann stellt sie ihren Betrieb unter Umständen in einer äußerst unangenehmen Form ein. Sie lässt sich überhaupt nicht mehr ansprechen und das ohne Vorwarnung. Aber das ist bei herkömmlichen Festplatten nicht anders.

Preis und Speicherkapazität

SSDs sind im Vergleich zu herkömmlichen, magnetischen Festplatten relativ teuer. Während Festplatten pro Gigabyte billiger werden, ist das bei SSDs nicht immer der Fall. Je nach Flächendichte, Performance und Technik ergeben sich unterschiedliche Preise.

Übersicht: SSD-Schnittstellen

Übersicht: Festplatten

Übersicht: Datenspeicher mit Flash-Memory

Weitere verwandte Themen:

Teilen:

Die Computertechnik-Fibel, das Computer-Buch

Alles was Sie über Computertechnik wissen müssen.

Computertechnik-Fibel

Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessoren, Halbleiterspeicher, Schnittstellen und Bussysteme, Datenspeicher und Komponenten.

Das will ich haben!

Die Computertechnik-Fibel, das Computer-Buch

Alles was Sie über Computertechnik wissen müssen.

Computertechnik-Fibel

Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessoren, Halbleiterspeicher, Schnittstellen und Bussysteme, Datenspeicher und Komponenten.

Das will ich haben!