SSD - Solid State Drive

Ein Solid State Drive, kurz SSD, ist ein Massenspeicher, vergleichbar mit einer Festplatte. Im Gegensatz zur Festplatte hat eine SSD keine beweglichen Teile. Bei der SSD ist das Speichermedium ein Flash-Speicher (z. B. NAND-Flash).
Flash-Speicher wird hauptsächlich in mobilen Endgeräten, wie Handys, Digitalkameras und MP3-Player, eingesetzt. Flash-Speicher arbeitet vollkommen geräuschlos, hat kurze Zugriffszeiten und schont den Akku, weil keine mechanischen Teile durch Motoren bewegt werden müssen.
Die SSD wird wie eine herkömmliche Festplatte angesprochen. 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 Latenzzeit, bis der gewünschte Sektor am Lesekopf vorbeidreht. Dieser Zeitverlust fällt bei der SSD weg. SSDs zeichnen sich also durch eine sehr hohe Lese- und Schreibgeschwindigkeit, sowie einen geringeren Energieverbrauch aus.

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

Vorteile von SSD (Solid State Drive)

Lesen und Schreiben

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.

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.

SLC-, MLC- und TLC-Flash

SSDs mit SLC-Flash sind sehr zuverlässig und dafür teuer. SSDs mit MLC-Flash haben eine langsamere Schreibgeschwindigkeit und weisen eine geringere Haltbarkeit gegenüber SLCs auf. Dafür sind MLCs günstig, aber eben weniger zuverlässig. Mit Wear Leveling versucht man diese Nachteile zu kompensieren. Die langsamere Schreibgeschwindigkeit ist nicht so das Problem. Bei der typischen PC-Nutzung werden sehr viel mehr Daten gelesen als geschrieben.

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. Zum Beispiel mit MLC und TLC. Bei 3 Bit umfasst eine Speicherzelle 8 verschiedene Zustände, die in Form einer Ladung abgebildet wird. 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. Zusätzlich geht die Zahl der Schreibzyklen zurück, die jede einzelne Zelle übersteht.

Mit zunehmender Anzahl an Zuständen (oder Bit pro Speicherzelle) steigt die Dauer, bis der Controller den Zelleninhalt ausgelesen hat. Bei 4 Bit pro Zelle könnte Schluss sein. Hier müssen 16 Zustände sauber voneinander getrennt werden. Dafür braucht es ausreichend Ladungsträger im Floating-Gate. Eine weitere Miniaturisierung wäre möglich, hat aber ihre Grenze. Die ist dann erreicht, wenn in das Floating-Gate nicht mehr Elektronen passen als es für eine saubere Unterscheidung der Ladung notwendig wäre.
Nur bei SLC-Flash sind sehr kleine Strukturen möglich. Hier ist die Gesamtkapazität bei 4 TByte erreicht. Eine Alternative sind Flash-Speicherchips mit 3D-Strukturen.

Aufbau einer SSD

Aufbau einer SSD

Wear-Leveling

Ein Hauptproblem von Flash-Speicher und damit auch bei SSDs ist die begrenzte Lebensdauer. Je nach Flash-Typ geht eine Speicherzelle nach rund 1.000 bis 100.000 Speichervorgängen kaputt. 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 soviel 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 eine 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 als Ersatz ein 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 eine SSD auch nach Jahren und großer Beanspruchung keine Speicherzellen. Die Lebensdauer, Zuverlässigkeit und Speicherkapazität einer SSD bleiben so längerfristig 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. Alle SSD-Controller verteilen die Schreibzugriffe mit Wear-Leveling-Algorithmen gleichmäßig über alle Speicherzellen. Zusätzlich korrigieren ECC-Verfahren eventuelle Fehler.
Die Webseite "The Tech Report" hat hierzu einige SSDs einem Langzeittest unterzogen. Hierbei kam heraus, dass die Datenmenge, die auf eine 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 einer 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 die SSD schreiben, um die SSD 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 einer SSD bei angemessener Nutzung eher unwahrscheinlich ist. Angemessen bedeutet, dass die richtige SSD für den jeweiligen Einsatzzweck anhand ihrer Parameter und Leistungsangaben ausgewählt wurde.

Wenn bei einer 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.
Außerdem ist die Speicherkapazität noch begrenzt. Während man bei herkömmlichen Festplatten schon weit im TByte bereich ist, liegt man bei SSDs noch weit darunter (Stand Mitte 2014).

Übersicht: SSD-Schnittstellen

Wegen immer schnellerer Flash-Speicher und -Controller nimmt die Geschwindigkeit von SSDs unaufhörlich zu. Da SSDs als Festplatten-Ersatz dienen, ist die SATA- bzw. SAS-Schnittstelle als Massenspeicher-Schnittstelle hier maßgeblich im Einsatz. Im Vergleich zur Weiterentwicklung von SSDs bleibt die Weiterentwicklung von SATA leider zurück. Während es schon SSDs gibt, die Daten mit 2 GByte/s schaufeln können, hängt SATA 6G bei 600 MByte/s bzw. SAS bei 1,2 GByte/s fest. In der Praxis können SATA-6G-Desktop-Festplatten Daten linear mit ca. 180 MByte/s lesen. Sehr schnelle Server-Festplatten erreichen ca. 250 MByte/s. Mit der bisherigen Übertragungstechnik und den dazugehörigen Steckverbindern ist es leider nicht möglich, die Datenrate von SATA zu steigern.

Vermeintliche PCIe-SSD-Steckkarten für Server und Worksstations benutzen einen integrierten SATA- oder SAS-Hostadapter für die Anbindung des Flash-Speicher. Das bedeutet, trotz PCIe-Anbindung wird intern bei den meisten SSDs mit SATA 6G gearbeitet. Es ist jedoch davon auszugehen, dass sich PCIe mit m.2 oder SATAe in Workstations und Servern durchsetzen wird.
Sicher ist auch, dass sich bei SSDs der PCIe als Standardschnittstelle durchsetzen wird. Was noch nicht sicher ist, welche Steckverbindung und Bauform das sein wird. Während m.2-Steckplätze bei allen Motherboard-Herstellern zumindest auf den teuren Motherboards aufgelötet sind, ist die Resonanz für SATA Express durchwachsen.

In Zukunft soll der PCI Express (PCIe) als Basis für Massenspeicher-Schnittstellen dienen. PCI Express erreicht pro Lane 500 MByte/s (Version 2.0) oder 1.000 MByte/s (Version 3.0). Bündelt man mehrere Lanes kann man in Zukunft sehr schnelle SSDs möglich machen.

SSD vs. Festplatte

Obwohl die SSD in den letzten Jahren sich immer mehr durchgesetzt hat, hat die klassische Festplatte immer noch ihre Daseinsberechtigung. Trotz der typischen Vorteile, wie hohe Geschwindigkeit bei nicht-sequenziellen Zugriffen und niedrigen Energieverbrauch ist eine SSD nicht zwangsläufig der bessere Datenspeicher. Mit einem Blick auf Speicherkapazität, Preis und Zuverlässigkeit spricht mehr für die herkömmliche Festplatte.

Hohe Performance erreichen SSDs bisher nur mit rechenstarken Controllern, die ausgefeilte Wear-Leveling-Algorithmen beherrschen, viele Flash-Chips parallel anbinden und SDRAM-Cache nutzen. Eine Zwischenlösung zwischen Festplatten und SSDs sind Hybrid-Festplatten (SSHD, Solid-State Hybrid Drives), die neben dem Plattenspeicher auch einen Chip-Speicher haben, der das Booten des Betriebssystems und den Start von Anwendungen beschleunigen kann.

Übersicht: Festplatten