SSD: Vor- und Nachteile
Was sind SSDs?
Eine „Solid State Disk“ ist ein Speichermedium welches nicht wie Festplatten auf dem Magnetspeicherverfahren basiert sondern stattdessen Informationen ähnlich wie ein USB-Stick auf einem Flash-Speicher sichert. Der gravierende Vorteil von SSDs gegenüber Festplatten liegt also einerseits darin, dass keinerlei bewegliche Bauteile vorhanden sind und die SSDs robuster sind als Festplatten. Insbesondere im Betrieb sind Festplatten sehr anfällig gegenüber Erschütterungen, da der Schreib- / Lesekopf der Festplatte bei Erschütterungen oder durch Vibrationen auf die Magnetplatten kommen kann und dadurch die am Berührpunkt gesicherte Information in den meisten Fällen unwiederbringlich gelöscht wird. SSDs zeichnen sich aber zudem durch ihre schnellen Zugriffszeiten gegenüber Festplatten aus. Während bei einer Festplatte zunächst die richtige Spur und in dieser der passende Block angefahren werden müssen liest eine SSD den Inhalt der einzelnen Blöcke im Index aus und kann sofort auf die richtige Position zugreifen. Gerade im Industriebereich bieten sich SSDs durch ihre Robustheit und den geringen Stromverbrauch gepaart mit ausserordentlicher Leistung an. Die hauptsächliche Beschränkung der Zugrifszeiten bei SSDs liegt deshalb nicht beim Auffinden der Daten sondern bei dem Auffinden des richtigen Auszulesenden Blocks. Diese Aufgabe übernimmt der Controller der SSD. Eine einfache Lösung dieses Problems bieten kleine CF-Karten, die zwar auch unter dem Verschleiß von Blöcken leiden, deren interner Controller aber viel weniger Speicher adressieren muss. Gerade zum Betrieb eines Betriebssystems in embedded Systems werden deshalb CF-Karten mit Industrie-Standard verwendet. Als große Speichereinheit wird zudem meist noch eine SSD eingebaut.
Übersicht
SLC SSD |
MLC SSD |
CFKarte |
Festplatte |
Vorteile
|
Vorteile
|
Vorteile
|
Vorteile
|
Nachteile
|
Nachteile
|
Nachteile
|
Nachteile
|
SSD und CF-Karten im Vergleich
SSDs sind sowohl räumlich als auch von der Speicherkapazität größer als CF-Karten. Dies liegt vor allem daran, dass SSDs aus vielen Flash-Speicher Bausteinen bestehen, die zusammengefasst werden und von einem Controller angesprochen werden. CF-Karten haben im Gegensatz zu SSDs viel weniger Speicherbausteine wodurch einerseits die Kapazität geringer wird, da bei der Verwendung von gleichartigen Flash-Speichern weniger Speicher zur Verfügung steht, andererseits werden sie durch den geringeren Platzbedarf auch kompakter. CF-Karten in Industriestandard zeichnen sich ausserdem durch hervorragende Resistenz gegenüber rauher Umgebung aus. So können sie im erweiterten Temperaturbereich von -40°C bis 80°C betrieben werden und sind durch ein besonders robustes Gehäuse bestens vor Erschütterungen und Vibrationen geschützt. In der Anwendung ist auf die Tauglichkeit von CF-Karten bzw. SSDs mit Blick auf die gewünschte Funktionalität zu achten. Wird ein möglichst kompaktes Speichermedium benötigt, zum Beispiel zur Verwendung in einem Embedded System, so bietet sich eine CF-Karte im Industriestandard an. Wird allerdings viel Speicher benötigt, um beispielsweise die Daten von vielen Messstationen zusammenzuführen, so sollte eher auf eine SSD zurückgegriffen werden. Gerne beraten wir Sie bei der Auswahl von CF-Karten oder SSDs für Ihre persönliche Anwendung.
Geschwindigkeitsverlust durch volle Blöcke
Der enorme Geschwindigkeitsvorteil von Flash-Speichern nimmt leider mit längerem Betrieb ab. So sind SSDs zu Beginn ihrer Inbetriebnahme zwar viel schneller als Festplatten, ihre Geschwindigkeit nimmt aber teilweise drastisch ab sobald alle Blöcke einmal beschrieben sind. Der Grund für diese Geschwindigkeitsabnahme liegt darin, dass das erneute Beschreiben eines Blocks in einer SSD im Gegensatz zu Festplatten, wo ein Block direkt neu beschrieben wird, bei SSDs nur durch komplettes Löschen des Blocks und anschließendes Neubeschreiben möglich ist. Die Zugriffszeit verdoppelt sich also sobald alle Blöcke beschrieben sind. Da heutige SSDs bereits bis zu 1TB Speicherkapazität besitzen mag die Frage aufkommen, ob dieser Fall denn je eintritt, was aber dadurch, dass ein Block stets aus 4kByte besteht gerade bei häufig zu schreibenden kleinen Datenmengen durchaus vorkommen kann. So belegen viele Blöcke die jeweils mit nur wenigen Bits beschrieben sind pro Block hinsichtlich des Schreibprozesses den Platz von 4kByte. Beim ändern eines Bits innerhalb eines bereits beschriebenen Blocks werden dann die im Block vorhandenen Informationen ausgelesen und neu geschrieben. Genauso wird mit gelöschten Daten verfahren. Sind die Daten gelöscht, so wird ihre Adressierung im Verzeichnis des Betriebssystems zwar gelöscht, die Daten befinden sich aber nach wie vor an Ort und Stelle und behindern einen erneuten Schreibprozess. Beim erneuten Beschreiben werden dann die bereits gelöschten Informationen ausgelesen und erst danach mit dem Verzeichnis der gelöschten Dateien abgeglichen bevor die neuen Daten geschrieben werden können.
TRIM und Garbage Collection
TRIM
Um dieses Problem einzudämmen wurde TRIM entwickelt. Dieser Standard gibt dem Controller bekannt, wenn ein Block ungültige bzw. zu löschende Daten enthält und gibt dem Controller die Berechtigung den Block während des Leerlaufs freizugeben. Durch den TRIM Standard, der ab Windows Vista, Linux Kernel 2.6.33.x und Mac OS X unterstützt wird, wird die Geschwindigkeitsabnahme des Datenaustauschs mit einer SSD zuverlässig eingedämmt. Lediglich alte SSDs profitieren noch nicht von TRIM, da neben der Software-Unterstützung auch die Hardware TRIM unterstützen muss. Der Nachteil am TRIM Standard ist die Tatsache, dass die Unterstützung durch das Betriebssystem notwendig ist, um die freigegebenen Blöcke zu löschen.
Einsatz in virtuellen Maschinen
Beim Einsatz von SSDs in virtuellen Maschinen ist darauf zu achten, wie die Konfiguration des Systems aussieht. Wird die SSD von der virtuellen Maschine direkt beschrieben und unterstützt die virtuelle Maschine kein TRIM, so wird die SSD auch nicht von TRIM aufgeräumt. Wird allerdings die Festplatte nur durch eine Datei auf dem Host simuliert und unterstützt der Host TRIM, so wird die Datei auch unter Berücksichtigung der TRIM-Funktion beschrieben. Ausserdem existiert für viele Virtualisierungstools mittlerweile bereits eine Implementierung der TRIM Funktion bei der Virtualisierung.
Garbage Collection
Eine weitere Maßnahme zur Leistungssteigerung die ohne Unterstützung durch das Betriebssystem auskommt ist die Geräte-interne „Garbage Collection“. Diese funktioniert ähnlich wie die TRIM Funktion. Der Controller hält beschriebene aber ungültige Blöcke nach und löscht diese sobald Leerlaufzeit zur Verfügung steht. Während die Garbage Collection in frühen Modellen der SSDs nur unzureichend ihren Dienst tat und TRIM die Hauptarbeit übernahm ist die Qualität der Garbage Collection in den letzten Jahren insbesondere durch den Einbau von bis zu 10% Reservespeicher, welcher ausser von der Garbage Collection nur dann verwendet wird, wenn Speicherzellen ausfallen, rapide gestiegen, sodass mittlerweile auch ohne TRIM-Funktion die Geschwindigkeit der SSDs nahezu konstant bleibt.
Speicherverfahren: SLC und MLC
Die Datenspeicherung auf SSDs erfolgt wie bei USB-Sticks auf einem Flash-Speicher. Der Flash-Speicher beruht auf der Leitfähigkeit eines Transistors bei verschiedenen Ladungszuständen des Gates. Das Speichern eines Bits erfogt durch Zufügen von Ladungsträgern auf das Gate, welche den Widerstand zwischen Source und Drain verändern. Dieser Widerstand wird beim Lesen gemessen und erlaubt eine Identifizierung mit zwei Zuständen, 0 und 1. Bei Multi-Level Speichern werden zwei verschiedene Ladungszustände des Gates unterschieden, sodass der Widerstand nicht nur in zwei sondern 4 Zustände unterteilt wird.
Bei SSDs gilt es die zwei verschiedenen Bauformen zu unterscheiden. Einerseits SLC SSDs (Abkürzung für „Single Level Cell“) SSDs welche pro Speicherzelle nur ein Bit speichern und MLC SSDs (Abkürzung für „Multi Level Cell“). MLC Speicher sind einerseits langsamer, da sie beim Schreiben stets 2 Spannungen anlegen müssen, zudem sind sie auch nicht so langlebig wie SLC Zellen, da die MLC Zellen bei gleicher Zellenzahl häufiger angesprochen werden müssen. Auch das Auslesen der MLC Zellen bereitet eher Probleme als bei SLC Zellen, da hier 4 Zustände zu unterscheiden sind, was den erlaubten Fehlerbereich im Gegensatz zur Unterscheidung von nur 2 Zuständen in SLC Speichern stark einschränkt. So kann eine Veränderung der Leitfähigkeit um lediglich 1/16 ihres Soll-Wertes bei MLC Speichern bereits zu falsch ausgelesenen Daten führen. Der enorme Vorteil von MLC SSDs gegenüber SLC SSDs ist die günstigere Herstellung. Da pro Zelle doppelt so viel Speicher verbaut werden kann wie bei SLC SSDs haben MLC SSDs einen viel geringeren Preis pro GB und sind mit größerer Kapazität erhältlich.
SSDs für schnellste Zugriffszeiten und längste Lebensdauer
Um die Zugriffszeiten von SSDs zu verkürzen werden seit kurzer Zeit immer häufiger DDR-RAM Chips in SSDs eingebaut. Dabei wird einerseits noch schneller auf die im RAM zwischengespeicherten Daten zugegriffen, ausserdem wird durch das Auffangen von Daten im Zwischenspeicher ein ständiges Beschreiben einzelner Blöcke mit nur wenigen Bits verhindert und die Speicherzellen können voller beschrieben werden, wodurch die Lebensdauer von SSDs verlängert wird.
Fazit
Um die Nachteile von MLC SSDs zu verringern wurden die Controller der MLC SSDs dahingehend optimiert, möglichst gleichmäßig alle Zellen zu belasten, damit nicht einzelne Speicherzellen schon nach kurzer Zeit durch häufiges Beschreiben zerstört werden. Ausserdem stehen bereits bekannte Verfahren wie ECC oder Paritätserkennung zur Erkennung und Korrektur von Fehlern zur Verfügung. Gerade im industriellen Bereich, wo es auf lange Haltbarkeit und Robustheit ankommt, bieten sich aber nach wie vor SLC SSDs an, da diese nicht nur Zuverlässiger sind, sondern sich auch durch eine geringere Leistungsaufnahme sowie schnellere Zugriffszeiten sowohl gegenüber Festplatten aber auch im Hinblick auf MLC SSDs auszeichnen.