SSD
12.02.2013
SSDs erklärt
1. Teil: „Alles über Solid State Drives“

Alles über Solid State Drives

Read-Modify-Write-Zyklus, Write Amplification, Garbage Collection: Diese Techniken stecken in modernen Solid State Drives. com! übersetzt das SSD-Fachchinesisch.
Wer sich für ein Solid State Drive (SSD) interessiert, der kennt das Problem: Im Laden und in den Produktbeschreibungen erfährt man vieles – aber zumeist unverständliches Fachchinesisch. Während die meisten mit Begriffen wie TRIM noch etwas anfangen können, weiß kaum jemand, was sich zum Beispiel hinter Garbage Col­lection verbirgt.
  • Random 4K lesen? MLC asynchron? In den Produktbeschreibungen von SSDs, hier in einem Online-Shop, finden sich viele Fachbegriffe. Was diese eigentlich bedeuten, steht nirgends.
Auch ein englisches Wörterbuch hilft kaum weiter: Was hat ein Müllsammler mit SSDs zu tun? com! übersetzt das Fachchinesisch und erklärt die wichtigsten Begriffe zu Solid State Drives.
Bilderstrecke
SSDs sollen die klassischen Festplatten ersetzen. Wir erklären, was hinter dieser Technologie steckt.

Pages und Blocks

Solid State Drives speichern Daten nicht auf einer Magnetscheibe, sondern auf Speicherchips. SSDs mit SLC-Chips (Single Level Cell) speichern 1 Bit pro Speicherzelle. MLC-Chips (Multi Level Cell) speichern 2 Bit pro Speicherzelle.
Mehrere Speicherzellen werden zu einer Page zusammengefasst. Eine Page ist 4 oder 8 KByte groß und die kleinste Speichereinheit, die gelesen und geschrieben werden kann. Das bedeutet, dass selbst eine kleine Datei mit nur 30 Byte eine komplette Page belegt.
Pages sind wiederum in Blocks zusammengefasst. Ein Block ist die kleinste Einheit, die gelöscht werden kann. Pages lassen sich nicht einzeln löschen.
In den meisten SSDs bilden 128 Pages mit 4 KByte einen Block mit 512 KByte. Alternativ bilden 256 Pages mit 8 KByte einen Block mit 2 MByte. Mehr dazu lesen Sie im Abschnitt „Pages und Blocks: So speichern SSDs Daten“.
  • Solid State Drives unterteilen den Speicherbereich in Pages und Blocks.
Da sich Pages einzeln beschreiben lassen, aber nur Blocks gelöscht werden können, führt dies dazu, dass eine SSD deutlich mehr Daten schreiben muss als eigentlich notwendig. Genauer beschreibt dies der Abschnitt „Write Amplification und Read-Modify-Write-Zyklus“.

Pages und Blocks: So speichern SSDs Daten

Auf SSDs ist eine Page die kleinste Speichereinheit. Auf den meisten SSDs haben Pages eine Größe von 4 KByte. 128 Pages bilden einen Block mit 512 KByte.Pages lassen sich einzeln beschreiben – aber nicht einzeln löschen. Eine SSD kann nur ganze Blocks löschen. Somit werden immer 128 Pages gleichzeitig gelöscht.
2. Teil: „SSDs mit SLC- und MLC-Chips“

SSDs mit SLC- und MLC-Chips

SSDs speichern Daten in Flash-Speicherchips vom Typ Single Level Cell (SLC) oder Multi Level Cell (MLC). SLC-Chips haben den Vorteil, dass sie sich sehr schnell beschreiben lassen. Dafür sind sie teuer in der Fertigung.
Daher kommen in Solid State Drives ab 64 GByte Kapazität hauptsächlich MLCs zum Einsatz. MLCs speichern pro Speicherzelle 2 Bit im Gegensatz zu 1 Bit in SLCs. So speichern sie bei gleicher Anzahl an Chips mehr Daten.
  • Speicherchips: SSDs speichern Daten in Flash-Speichern vom Typ Single Level Cell (SLC) oder Multi Level Cell (MLC).
Ein Nachteil von MLC-Chips: Sie sind langsamer und überleben nur rund 100.000 Schreibvorgänge, während mit SLCs mehrere Millionen Schreibvorgänge möglich sind.
Dieser Nachteil spielt aber nur eine geringe Rolle – kaum ein Anwender reizt die maximale Anzahl an Schreibvorgängen aus. Techniken wie Wear Leveling sorgen für eine möglichst lange Lebensdauer der Chips. Zudem werden in der Praxis mehr Daten gelesen als geschrieben. Das Lesen von Daten schadet den Zellen nicht. Daher halten SSDs deutlich länger als man einen Computer nutzt.
Es gibt auch TLC-Chips (Triple Level Cell). Sie speichern 3 Bit pro Zelle. Aufgrund der geringen Lebensdauer kommen TLCs nur in USB-Sticks und SD-Speicherkarten zum Einsatz.

Synchroner und asynchroner Flash-Speicher

In Solid State Drives unterscheidet man zwischen synchronen und asynchronen Speicherchips. Die Bezeichnungen beziehen sich darauf, wie die Speicherchips mit dem Kontroller der SSD verbunden sind. Der Kontroller ist dafür zuständig, Daten auf den Chips zu speichern und auszulesen und an den SATA-Anschluss weiterzuleiten.
Beim synchronen Speicher werden sowohl bei der auf- als auch bei der absteigenden Flanke des Taktsignals Daten übertragen. Dabei handelt es sich um dasselbe Prinzip wie bei DDR-RAM (Double Data Rate). Im Gegensatz dazu überträgt der asynchrone Speicher Daten nur bei der aufsteigenden Flanke.
Damit ist synchroner Speicher theo­retisch doppelt so schnell wie asynchroner Speicher. In der Praxis spielen aber weitere Faktoren eine Rolle, wie die Qualität des Kontrollers und Techniken wie Interleaving. Daher sind Solid State Drives mit asynchronem Speicher nicht unbedingt langsamer als die mit synchronem Speicher.
3. Teil: „Der Kontroller einer SSD“

Der Kontroller einer SSD

Der Kontroller ist die Schnittstelle zwischen den Speicherchips und dem Rest des Rechners. Der zentrale Chip entscheidet darüber, wie schnell das Laufwerk Daten mit PC-Komponenten wie dem Prozessor austauscht, und wie effizient die SSD Techniken wie Wear Leveling nutzt. Derzeit nutzen die meisten Solid State Drives Kontroller der Hersteller Marvell, Intel, Samsung und Sandforce.
Es entscheidet jedoch der Kontroller nicht allein über das Tempo einer SSD. So bringt der schnellste Kontroller wenig, wenn etwa langsame Speicherchips zum Einsatz kommen.
  • SATA-Anschluss: Solid State Drives schließen Sie wie normale Festplatten an das Mainboard an. Am gebräuchlichsten sind SATA 2 und SATA 3.
Je nach Kontroller unterstützt das Lauf­werk SATA 2 mit 3 GBit/s oder SATA 3 mit 6 GBit/s. Dabei handelt es sich um die Schnittstelle, mit der die SSD am Mainboard angeschlossen ist.
Besser sind SSDs, die über einen SATA-3-Anschluss verfügen, auch als SATA 600 bezeichnet. Er ermöglicht eine theoretische Datenrate bis 6 GBit/s. In der Praxis bleiben rund 600 MByte/s.
Da flotte SSDs Daten mit über 500 MByte/s lesen, kann ein SATA-2-Anschluss mit rund 300 MByte/s schnell zum Flaschenhals werden. Auf der anderen Seite: Das Gros der Laufwerke reizt die Bandbreite von SATA 3 – wenn überhaupt – nur selten aus. Zudem ist für alltägliche Aufgaben mit Windows die SATA-2-Bandbreite ausreichend.
Zudem sollte bei der Kaufentscheidung berücksichtigt werden, ob das Mainboard über SATA-3-Anschlüsse verfügt. Wenn das nicht der Fall ist, dann bringt auch eine SSD mit diesem flotten Anschluss keinen Geschwindigkeitsvorteil.
  • SATA 2 oder SATA 3: Das Tool Sisoftware Sandra Lite 2012 SP3 zeigt Ihnen in den Informationen zum Mainboard an, welche SATA-Version Ihr Computer unterstützt – in diesem Beispiel SATA 2.
Welcher SATA-Anschluss auf Ihrem Mainboard verbaut ist, zeigt das Tool Sisoftware Sandra Lite 2012 SP3 (kostenlos). Wählen Sie in dem Tool „Hardware-Informationen, Mainboard“. Wenn unter „Laufwerkscontroller, Schnellster SATA Modus“ der Eintrag „SATA300“ steht, dann unterstützt das Mainboard SATA 2. Mit der Angabe „SATA600“ unterstützt das Mainboard SATA 3.
Interleaving: Die Transferraten der Flash-Speicherchips sind längst nicht so hoch wie die Gesamtgeschwindigkeit einer SSD. So liegen die Transferraten je nach Art des Chips mit 50 bis 200 MByte/s deutlich unter den maximalen Geschwindigkeiten der derzeit schnellsten SSDs. Um die hohen Datenraten von über 500 MByte/s zu erreichen, behelfen sich die Kontroller mit einem Trick: Sie steuern mit der Technik Interleaving bis zu zehn Speicherchips parallel an. Dadurch addieren sich die Transferraten der Chips.
Das ist übrigens auch der Grund, weshalb SSDs mit kleineren Kapazitäten langsamer sind, vor allem beim Schreiben: Aus Kostengründen verbauen die Hersteller bei kleineren SSDs weniger Speicherchips. Es gibt also weniger Möglichkeiten zur Leistungssteigerung, indem man mit Interleaving mehrere Chips parallel anspricht.
4. Teil: „Die Spare Area einer SSD“

Die Spare Area einer SSD

Spare Area bedeutet so viel wie Reservebereich. Diesen freien Bereich auf der SSD benötigt der Kontroller, um Techniken wie Wear Leveling zu nutzen.
Die Hersteller der Solid State Drives empfehlen eigentlich, rund 15 bis 20 Prozent der Gesamtkapazität unpartitioniert zu lassen. Da sich jedoch nicht alle Anwender daran halten, ist standardmäßig ein Teil des Speichers für die Spare Area reserviert. Dabei handelt es sich um einen Speicherbereich, der für Betriebssysteme nicht nutzbar ist. Typischerweise beträgt die Größe der festen Spare Area rund 7 Prozent der Gesamtkapazität.
Diesen Bereich zweigen die SSD-Hersteller von der Gesamtkapazität der SSD ab. So steht Ihnen nicht die gesamte Kapazität einer SSD zur Verfügung.

Over-Provisioning: So erhöhen Sie die Spare Area

Die Spare Area einer SSD können Sie vergrößern. Mit einer größeren Spare Area erhöhen Sie die Lebensdauer der SSD, da mehr freie Blocks als Ersatz zur Verfügung stehen.
Die Hersteller konfigurieren SSDs so, dass sie rund 7 Prozent der Gesamtkapazität als Spare Area nutzen. Diese Größe lässt sich manuell erhöhen. Das nennt man Over-Provisioning.
  • Over-Provisioning: Wer die Spare Area eines Solid State Drives vergrößern will, der muss zu Linux greifen und mit dem Tool Hdparm erst freie Blocks löschen.
Mit einer größeren Spare Area stehen mehr freie Blocks als Ersatz für defekte Blocks sowie zum Wear Leveling zur Verfügung. Das verlängert die Lebensdauer der SSD und sorgt für mehr Geschwindigkeit.
SSDs verfügen im Vergleich zu normalen Festplatten nur über eine geringe Kapazität. Daher ist Over-Provisioning nur bei großen SSDs sinnvoll. Zudem sind SSDs ohnehin schnell genug und überdauern die durchschnittliche Nutzungszeit eines Rechners.
Spare Area erhöhen: Die SSD kann einen unpartitionierten Bereich nur dann als Spare Area nutzen, wenn alle Blocks gelöscht sind. So reicht es nicht aus, wenn Daten unter Windows lediglich als gelöscht markiert sind.
Am einfachsten lässt sich daher die Spare Area erhöhen, wenn Sie auf einer neuen SSD einen Teil unpartitioniert lassen. So nutzen Sie etwa auf einer 160-GByte-SSD nur 144 GByte.
Wenn sich auf dem Solid State Drive schon Daten befinden oder das Laufwerk bereits partitioniert war, ist es etwas komplizierter:
Das komplette Löschen aller Daten erreicht man mit einem sogenannten Secure Erase. Das bezeichnet ein sicheres Löschen aller Daten. Das Löschen der Daten und das Verändern der Spare Area setzt einiges an Fachkenntnissen voraus. Sie erledigen dies unter Linux.
Eine Anleitung, wie Sie dabei vorgehen, finden Sie unter www.thomas-krenn.com/de/wiki/SSD_Over-Provisioning_mit_hdparm .
5. Teil: „Write Amplification und Read-Modify-Write-Zyklus“

Write Amplification und Read-Modify-Write-Zyklus

Von Write Amplification spricht man, wenn ein Solid State Drive deutlich mehr Daten schreiben muss, als sich eigentlich ändern. Amplification heißt auf Deutsch Vervielfachung.
Je mehr Daten sich auf der SSD befinden, desto weniger freie Pages stehen zur Verfügung. Dann tritt folgender Effekt ein: Da keine leeren Pages zur Verfügung stehen, muss der Kontroller als gelöscht markierte, aber noch vorhandene Daten in Pages überschreiben.
Und hier kommt Write Amplifica­tion in Spiel: Pages lassen sich erst beschreiben, nachdem sie gelöscht wurden. Das Problem wird noch größer, wenn man bedenkt, dass eine Page gar nicht gelöscht werden kann. Es lassen sich nur komplette Blocks löschen.
  • Infografik: So funktioniert der Read-Modify-Write-Zyklus
So muss der Kontroller zum Speichern von Daten drei Schritte vor­nehmen, was auch als Read-Modify-Write-Zyklus bezeichnet wird: Er liest zunächst einen gesamten Block aus und lagert die noch benötigten Daten in den Cache aus. Danach werden alle Daten im Block gelöscht. Im dritten Schritt legt der Kontroller die zuvor gespeicherten sowie die neuen Daten im Block ab. Diesen Prozess veranschaulicht die Infografik „So funktioniert der Read-Modify-Write-Zyklus“.
Vor allem ältere SSDs hatten mit Write Amplification Probleme. So ist die Schreibgeschwindigkeit auf vollen Laufwerken um bis zu 90 Prozent eingebrochen. Moderne SSDs nutzen Techniken wie Garbage Collection. Sie verhindern, dass Write Amplification allzu häufig auftritt.
Auch der TRIM-Befehl wirkt Write Amplification entgegen: Damit teilt das Betriebssystem der SSD mit, welche Pages endgültig gelöscht werden können. Diese Pages werden dann im Leerlauf gelöscht. Dabei geht das Laufwerk genauso vor wie bei der Technik Garbage Collection.
6. Teil: „Garbage Collection und Wear Leveling“

Garbage Collection und Wear Leveling

Solid State Drives speichern Daten umso schneller, je mehr freie Pages zur Verfügung stehen. Um eine gute Performance zu erreichen, nutzen SSDs Garbage Collection. Das bedeutet so viel wie Müllsammlung. Es handelt sich um eine Art Defragmentierungs-Tool.
  • Infografik: So funktioniert Garbage Collection
Damit erledigt der Kontroller einen Teil des Read-Modify-Write-Zyklus, wenn sich die SSD im Leerlauf befindet: Der Kontroller sammelt benötigte Daten aus nur teilweise beschriebenen Blocks. Diese Daten fasst er in möglichst wenigen vollen Blocks zusammen. Die freien Blocks werden gelöscht und sind bei Bedarf sofort beschreibbar. Was bei Garbage Collection passiert, zeigt die Infografik „So funktioniert Garbage Collection“.

Wear Leveling

Die Technik Wear Leveling bedeutet so viel wie Abnutzungsausgleich und soll die Lebensdauer eines Solid State Drives erhöhen. Sie sorgt dafür, dass Schreibzugriffe gleichmäßig auf alle Speicherzellen verteilt werden. So kommt jede einzelne Zelle möglichst selten an die Reihe.
Die Speicherzellen haben nur eine begrenzte Lebensdauer. Jeder Schreibzugriff lässt die Speicherzellen altern. Lesezugriffe schaden hingegen nicht.
Windows schreibt die Daten auf das Solid State Drive, indem es eine bestimmte logische Adresse angibt. Wenn sich nun eine Datei regelmäßig ändert, dann würde aufgrund der ständigen Schreibzugriffe der dazugehörige Block schnell kaputtgehen.
Mit Wear Leveling schreibt der Kon­troller Daten immer auf unterschiedliche Speicher-Blocks. Dazu führt die SSD eine interne Statistik, welche Blocks wie oft beschrieben wurden.
Man unterscheidet zwischen dynamischem und statischem Wear Leveling. Das dynamische Wear Leveling verteilt Daten, die sich im Moment ändern und geschrieben werden. Das statische Wear Leveling verteilt im Leerlauf bereits abgelegte Daten auf verschiedene Speicher-Blocks.
Das Wear Leveling verwendet eine eigene Zuordnungstabelle. Windows gibt beim Schreiben von Daten eine bestimmte logische Adresse an, unter der sie abgelegt werden. Wenn nun die Daten aufgrund des Wear Leveling verschoben werden, dann würde Windows sie nicht mehr auffinden. Daher pflegt der Kontroller eine eigene Zuordnungs­tabelle: Sie gibt für die von Windows festgelegten logischen Speicheradressen den tatsächlichen Speicherort an.
7. Teil: „Alignment und IOPS“

Alignment und IOPS

Unter Alignment versteht man das Ausrichten von Partitionen an den physischen Grenzen des Laufwerks. Auf SSDs liegt die kleinste beschreibbare Speichereinheit, die Page, bei 4 oder 8 KByte. Windows 7 nutzt mit dem Dateisystem NTFS standardmäßig als kleinste Speichereinheit ebenfalls 4 KByte.
  • SSD von innen: Damit die SSD in einen normalen Festplattenschacht passt, hat sie trotz weniger Chips das Format 2,5 Zoll.
Normale Festplatten nutzen als kleinste Speichereinheit eine sogenannte Sektorgröße von 512 Byte. Damit SSDs kompatibel sind, emulieren sie nicht nur die Bauform, sondern auch die Sektorgröße von 512 Byte.
Wenn ein Betriebssystem eine SSD wie eine herkömmliche Festplatte mit einer Sektorgröße von 512 Byte partitioniert, dann entspricht eine Speichereinheit im Betriebssystem meist nicht genau einer Page auf der SSD. Die Folge: Beim Speichern von 4 KByte Daten verteilen diese sich auf zwei Pages. Somit verringert sich nicht nur die Performance, sondern auch die Lebensdauer. Aktuelle Betriebssysteme wie Windows 7 erkennen, wenn sie auf einer SSD installiert werden, und passen das Alignment bei der Installation an.

IOPS

  • IOPS: In den Datenblättern von SSDs steht oft ein IOPS-Wert. Er soll angeben, wie viele Befehle ein Laufwerk pro Sekunde verarbeiten kann.
Viele Hersteller von SSDs geben einen IOPS-Wert an (Bild G). IOPS steht für Input/Output Operations per second und ist eine Art Benchmark für Laufwerke.
Der IOPS-Wert gibt an, wie viele Ein- und Ausgabebefehle pro Sekunde ein Laufwerk verarbeitet. Je größer dieser Wert ist, desto schneller ist die SSD.
Durchschnittliche SSDs erreichen beim Lesen rund 45.000 IOPS und beim Schreiben rund 25.000 IOPS. Schnelle SSDs kommen lesend auf bis zu 90.000 IOPS und schreibend auf bis zu 70.000 IOPS. Zum Vergleich: Herkömmliche Festplatten erreichen beim Lesen nur rund 100 IOPS.
Es fehlt jedoch eine Definition von IOPS. Daher sind die Angaben schwer vergleichbar. Einige Hersteller geben immerhin an, worauf sich der IOPS-Wert bezieht. Ein Beispiel ist die Angabe „Random 4K Read“. Sie bedeu­tet ein zufälliges Lesen von Daten-Blocks mit einer Größe von je 4 KByte.

mehr zum Thema