Ăśberflieger
Flash-Speicher statt einer Festplatte verspricht mehr Performance und geringeren Energieverbrauch. Bisherige Solid State Disks konnten diese Versprechen nur bedingt einlösen, doch jetzt tritt Intel auf den Plan und zeigt allen anderen, wo es langgeht.
- Boi Feddern
- Benjamin Benz
Es gab in den vergangenen Monaten viel Wirbel um Flash-Disks als Festplattenalternative. Bislang zu Unrecht, wie die letzten Tests zeigten, denn die Technik steckte noch in den Kinderschuhen und ein echter Geschwindigkeitsvorteil gegenüber Festplatten war in der Praxis weder spür- noch messbar. Das viel beworbene Energiesparpotenzial gegenüber Notebookplatten gehörte in das Reich der Sagen und mit Preisen von mehreren Hundert Euro für wenige Gigabyte waren SSDs nur etwas für Gutbetuchte.
Seit unseren letzten Tests in c't 9/08 [1] sowie 11/08 [2] ist die Entwicklung jedoch rasant vorangeschritten und es kommt Schwung in den Markt: Einerseits lassen sich durch den drastischen Preisverfall bei Flash-Chips Solid State Disks jetzt günstiger als noch vor einigen Monaten herstellen, andererseits ermöglichen neue Controller-Chips den Herstellern, künftig nicht nur schnelle SSDs mit teurerem SLC-Flash (Single Level Cell), sondern auch mit den günstigeren MLC-Chips (Multi Level Cell) anzubieten.
MLC-Flash-Chips speichern anders als SLC-Flash nicht nur ein Bit, sondern zwei bis vier pro Zelle. MLC-Flash erlaubt also höhere Speicherdichten bei gleichen Siliziumkosten und ist deshalb günstiger zu fertigen. Supertalent und Transcend bieten MLC-Disks mit der brauchbaren Kapazität von 60 GByte heute beispielsweise schon ab 170 Euro an, während gleich große Disks mit SLC-Flash noch mindestens das Dreifache kosten. Allerdings lässt sich MLC nicht ganz so flott wie SLC-Flash beschreiben und ist defektanfälliger. Dazu gleich mehr.
Die Flash-Disk-Hersteller fahren nun offenbar eine zweigleisige Strategie: Die zuverlässigeren SLC-SSDs sollen künftig Server-Systeme befeuern, während MLC-SSDs für den Massenmarkt gedacht sind und hier in erster Linie für Notebooks und Ultra Mobile Devices. Mächtig nach vorne prescht jetzt Intel. Nachdem der Prozessorhersteller bislang nur recht altbackene Mini-Flash-Module mit Parallel-ATA- und USB-Schnittstelle im Angebot hatte, mischt er nun mit den ersten ausgewachsenen SATA-SSDs den Markt auf. Intel wirbt bei seiner „Mainstream-SSD X25-M“ beispielsweise mit (Lese-)Transferraten von bis zu 225 MByte/s.
Auch beim Energieverbrauch soll sich endlich etwas getan haben: Der Prozessorhersteller verspricht eine elektrische Leistungsaufnahme im „Leerlauf“ (idle) unterhalb von 0,1 Watt und somit gut ein halbes Watt weniger als bei herkömmlichen Notebookfestplatten oder anderen SSDs üblich.
Grund genug für uns, der neuesten Generation von Solid State Disks mit MLC-Flash näher auf den Zahn zu fühlen. Zum Vergleich haben wir außerdem noch eine SLC-SSD von Transcend mit ins Testfeld aufgenommen, die mit demselben Controller wie das MLC-Modell arbeitet und den Geschwindigkeitsunterschied zwischen SLC- und MLC-Flash aufzeigt. Auch Samsung schickte uns noch ein SLC-Modell, das gegenüber dem in c't 10/08 getesteten mit OCZ-Label stark verbessert sein soll.
Schreib mal wieder
Reichen bei einer herkömmlichen Festplatte die beiden grundlegenden Operationen „Lesen“ und „Schreiben“ aus, so braucht Flash-Speicher noch eine dritte: Vor dem Beschreiben muss man ihn zunächst löschen. Dazu legt man an einen großen Erase-Block (typischerweise 128 bis 512 KByte) aus vielen Pages eine hohe Löschspannung an. Dabei verlieren alle Zellen im Block ihre Ladung und somit ihre Information.
Einzelne Flash-Zellen überstehen nur recht wenige Löschzyklen. Bei SLC-NAND-Flash sprechen die Hersteller von rund 100 000 Zyklen, MLC-Speicher verträgt noch weniger. Um diese Schwäche zu kompensieren, verteilt der Flash-Controller die Schreibzugriffe gleichmäßig über alle Zellen, auch wenn das Betriebssystem scheinbar immer dieselben Pages verändert. Die genauen Wear-Leveling-Algorithmen gehören zu den bestgehüteten Geheimnissen der Hersteller von Flash-Controllern. Klar ist jedoch, dass es zwei unterschiedlich radikale Ansätze gibt: Beim dynamischen Wear-Leveling verteilt der Controller nur die Schreibzugriffe von sich ändernden Daten gleichmäßig über die freien oder frei werdenden Blöcke. Allerdings nutzen sich dabei die Bereiche, deren Daten sich häufig ändern, stark ab und fallen irgendwann aus, während solche mit unveränderten Dateien noch sehr viele Schreibzyklen aushalten würden. Um das auszugleichen, verschiebt man beim statischen Wear-Leveling von Zeit zu Zeit Daten, die sich nicht oder selten verändern, in stark abgenutzte Zellen. Somit gelangen wieder frische Zellen in den Pool und zögern so den Zeitpunkt hinaus, zu dem die ersten Schreibfehler auftreten. Das erhöht die Lebensdauer des Gesamtmediums stark, kostet allerdings Performance.
Geister
Löscht das Betriebssystem Dateien oder verschiebt sie in den Papierkorb, so bekommt das Speichermedium davon nichts mit. Lediglich ein paar Bits im Dateinamen oder den Datenstrukturen des Dateisystems ändern sich und teilen dem Betriebssystem mit, dass der Platz anderweitig genutzt werden darf. So kann es passieren, dass der Flash-Controller mit viel Aufwand Daten umschichtet, die Anwender und Betriebssystem bereits als wertlos betrachten. Selbst eine frisch vom Betriebssystem formatierte „Platte“ ist aus Sicht des Flash-Controllers nahezu voll. Microsoft hat deshalb beim für die ATA-Spezifikation zuständigen Gremium einen Vorschlag für neue Befehle eingereicht. Mit dem Trim-Kommando teilt das Betriebssystem dem Laufwerk mit, welche Pages es nicht mehr braucht. Die Linux-Gemeinde arbeitet bereits vor Aufnahme der neuen Befehle in den Standard an einer Implementation.
Trotz Wear-Leveling und Vermeidung unnötiger Datenumschichtungen nutzen sich die Zellen von Flash-Speichern jedoch je nach Schreibaufkommen früher oder später ab. Um die Ausfallsicherheit der SSD zu verbessern, bietet beispielsweise Intels-SSD zusätzlich zu den 80 GByte Speicherplatz noch einen wenige GByte großen Reservedatenbereich. Dorthin schreibt der Controller Daten, wenn die heilen Blöcke zur Neige gehen. Dieser Reservedatenbereich soll sich vom Anwender vergrößern lassen, indem er per ATA-Kommando SetMaxAddress die nutzbare Speicherkapazität auf weniger als 80 GByte begrenzt.
Geschwindigkeit
Betrachtet man die Transferraten in der Tabelle, so fallen eklatante Unterschiede zwischen sequenziellen und zufällig verteilten Zugriffen, Messungen mit verschiedenen Blockgrößen sowie Lese- und Schreibraten auf. Diese lassen sich mit dem internen Aufbau einer SSD und ein paar Spezialitäten von Flash-Chips erklären: Beim Lesen holt der Flash-Chip immer eine komplette Page (2 bis 4 KByte) aus den Flash-Zellen in ein Pufferregister. Das dauert bei einem aktuellen Samsung-SLC-Chip (siehe Soft-Link) nach dem Übertragen und Anlegen der Adresse rund 25 µs. Von dort wandert alle 25 ns (Read Cycle Time) ein Byte zum Controller. Somit dauert das Auslesen einer 4-KByte-Page rund 127 µs. Das ergäbe – für einen einzelnen Flash-Chip – eine Transferrate von gerade einmal 30,8 MByte/s. Die Latenzzeit für den Datentransfer zwischen Zellen und Register kann der Chip im Idealfall kaschieren, da er aus zwei Dice mit je vier Planes besteht. Jede Plane hat eigene Pufferregister, sodass eine Plane Daten von den Flash-Zellen holen kann, während eine andere den Controller füttert. Somit kann der Chip rund 38 MByte/s liefern. Die Transferraten von MLC-Speicher liegen noch weit unter denen ihrer SLC-Kollegen.
Den vollständigen Artikel finden Sie in c't 21/2008.
Literatur
[1] Boi Feddern, Evolutionär, Solid State Disks als Festplattenersatz in Notebooks und Servern, c't 9/08, S. 156
[2] Boi Feddern, Gemischte GefĂĽhle, Solid State Disks mit bis zu 128 GByte, c't 11/08, S. 70
[3] Benjamin Benz, Boi Feddern, Festplatte ade, Wie Flash-Speicher allmählich den PC erobert, c't 21/07, S. 100
[4] Boi Feddern, Speicherschwarm, 58 USB-Sticks mit zwei, vier und acht GByte, c't 18/06, S. 168
Flash-Haltbarkeit
Bereits vor rund zwei Jahren haben wir versucht, einen USB-Stick durch kontinuierliches Beschreiben eines einzelnen Blocks zu zerstören [4]. Damals murrte unser Opfer auch nach 16 000 000 Zyklen nicht. In Anbetracht moderner Wear-Leveling-Algorithmen haben wir unser Testszenario verändert: Diesmal beschreiben wir einen 2-GByte-USB-Stick in jedem Zyklus von vorn bis hinten mit (mehr oder weniger) zufälligen Daten. Alle 50 Schreibvorgänge prüft ein Skript anhand der MD5-Prüfsummen, ob die Daten auch korrekt auf dem Stick stehen. Bei einer Schreibrate von rund 7 MByte/s dauert ein Schreibzyklus knapp 5 Minuten. Bislang hat der Stick in mehr als einem Monat Dauertest über 23,5 TByte Daten klaglos gefressen und liefert auch nach diesen 12 240 kompletten Schreibzyklen beim Auslesen keine Fehler.
Obwohl unser Skript annähernd den ganzen Stick jedes Mal neu beschreibt, hat dessen Flash-Controller eine bestimmte – uns unbekannte – Anzahl an Reserveblöcken zur Verfügung. Selbst wenn einige Zellen kapitulieren sollten, kann er sie so problemlos ersetzen. Einen Fehler dürften wir erst feststellen, wenn dem Controller die Reserveblöcke ausgehen. Die Hersteller von MLC-Chips – aus denen die meisten USB-Sticks bestehen – geben mindestens 10 000 Löschzyklen pro Zelle an. Bei unserem Test-Stick dürfte die Mehrzahl der Zellen mittlerweile ungefähr so viele Zyklen ertragen haben. Auch wenn wir gespannt sind, wie viele Durchläufe der Test-Stick überlebt, so stellt die Lebenserwartung der Flash-Zellen im USB-Stick-Alltag wohl kein Problem dar. Die meisten USB-Sticks und Flash-Speicherkarten dürften, lange bevor ihre Flash-Zellen streiken, verloren, gestohlen, zertreten oder in einem Gulli ertrunken sein.
Die Hersteller von SSDs spezifizieren für ihre Consumer-Produkte entweder eine bestimmte Datenmenge, die man getrost schreiben kann, oder einen Zeitraum von rund fünf Jahren bei einem typischen Datenaufkommen von einigen GByte pro Tag. Als Faustregel gilt jedoch: Je mehr Kapazität ein Medium hat, desto besser verteilen sich die Schreibzyklen auf einzelne Zellen. Ein Grund dafür, dass wir nur mit einem 2-GByte-Stick messen und nicht mit einer 128-GByte-großen Solid State Disk. (boi)