Computerhardware: SSD: Details

Aus Wikibooks

Flash-Speicher und SSD[Bearbeiten]

In USB-Speichersticks und SSD-Festplatten kommt „Flash-Speicher“ zum Einsatz. Um beim Kauf und bei der Nutzung keinen Fehler zu machen, ist es ratsam, mehr über diesen Speichertyp zu wissen. EEPROM ist ein „electrically erasable programmable Read Only Memory” (elektrisch löschbarer PROM).

Wie funktioniert eine Flash-Speicherzelle?[Bearbeiten]

Stellen Sie sich ein Stück Halbleiter vor, das von Silizium-Oxid umgeben ist, einem hervorragenden Isolator. Mit einem „Floating-Gate-Transistor“ entsteht ein Käfig, der Elektronen permanent gefangen hält. Wenn sich in der Zelle eine elektrische Ladung befindet, wird sie vom Floating Gate „eingesperrt“. Die Ladung bleibt auch ohne Betriebsspannung erhalten, ohne Ladungsverlust, ganz im Unterschied zum DRAM, der mehrmals pro Sekunde aufgefrischt werden muss. Ein zweiter Unterschied: Anders als beim DRAM muss die Speicherzelle nicht entladen werden, um festzustellen, ob eine Ladung darin gespeichert war. Es wird ausgenutzt, dass die gefangenen Elektronen umliegende Ladungen beeinflussen. Ein „Control-Gate-Transistor“, der sich über dem Floating-Gate befindet, „fühlt“ die Ladung. Die Leitfähigkeit des Control Gate hängt davon ab, ob sich in der Speicherzelle eine Ladung befindet oder nicht. Dadurch kann der Speicherinhalt beliebig oft gelesen werden, ohne dass sich die Ladung der Speicherzelle dabei verändert.

Die Ladung in die Zelle hinein- oder herauszubefördern, ist ein Problem. Die Isolierschicht wird mit einer hohen Spannung „durchschlagen“, wie von einem „Flash“ (Blitz). Die Physiker nennen das einen quantenphysikalischen „Tunneleffekt“. Es gibt dabei zwei Probleme: Das Schreiben dauert deutlich länger als das Lesen. Schlimmer ist, dass die Isolierschicht dabei Schaden nimmt. Nach einigen zehn- bis hunderttausend Schreib- oder Löschvorgängen wird die Isolierschicht der Speicherzelle durchlässig und die Speicherzelle wird „vergesslich“. Bei einem USB-Stick oder Kameraspeicher wird diese Zahl zum Glück nie erreicht. Doch wenn man Flash-Speicher für eine SSD-Festplatte verwendet, muss man Vorkehrungen treffen, dass die Festplatte nicht ausfällt.

Zwei Arten der Ansteuerung: NAND und NOR[Bearbeiten]

Die Zusammenschaltung der Flash-Zellen kann auf zwei Wegen erfolgen, die NAND und NOR genannt werden.

Die einfachste Schaltung, um Speicherzellen zu verbinden, ist die Anordnung in Zeilen und Spalten wie beim RAM. Bei diesem NOR-Speicher lässt sich jedes Bit einzeln lesen oder schreiben. NOR-Speicher ist vorteilhaft, wenn das Lesen und Schreiben typischerweise nur einige Byte betrifft. Doch wenn es um möglichst hohe Speicherkapazitäten geht, hat die NOR-Schaltung einen Nachteil: Word- und Bit-Leitungen brauchen viel Platz und machen den Chip komplex und teuer in der Herstellung.

Bei der NAND-Schaltung teilt sich eine Gruppe von Speicherzellen eine gemeinsame Datenleitung. Lesen und Schreiben kann dadurch nur in ganzen Blöcken erfolgen, wie z. B. bei einer Festplatte. Die geringere Zahl von Datenleitungen spart Platz auf dem Chip. Die NAND-Architektur ist optimal, wenn viel Speicher auf wenig Platz untergebracht werden soll, wie in USB-Sticks und SSD-Festplatten. Für Massenspeicher ist es kein Nachteil, dass der NAND-Speicher zwischen 512 und 4096 Byte in einem Block zusammenfasst: Das Betriebssystem ist ohnehin darauf eingestellt, Daten für Massenspeicher blockweise zu lesen und zu schreiben, eine Einzelbyteadressierung würde keinen Sinn machen. Die Gruppe von Zellen, die zu einer Speichereinheit zusammengeschaltet werden, wird „Page“ oder Speicherseite genannt.

Zwei Technologien: MLC und SLC[Bearbeiten]

Die ersten Flash-Speicher bestanden aus Single-Level-Cell-Speicherzellen, kurz SLC. Das sind Speicherzellen, von denen jede nur ein Bit speichert, also „0“ oder „1“.

Wenn man mehrere Bits pro Zelle speichert, passt ein Vielfaches an Speicherkapazität auf einen Chip. Multi-Level-Cell-Speicherzellen, kurz MLC, sind Speicherzellen, in denen mehr als ein Bit pro Zelle gespeichert wird. Beispielsweise arbeiten Speicherzellen, die zwei Bit speichern können, mit vier verschiedenen Zuständen („keine Ladung“, „wenig Ladung“, „zweidrittel geladen“, „voll geladen“), denen die Ziffern „0“, „1“, „2“ und „3“ zugeordnet werden. Es gibt auch MLC-Zellen, in denen drei Bit (8 Zustände) und sogar vier Bit (16 Zustände) gespeichert werden. Erinnern Sie sich an die Erklärung in „Computerhardware für Anfänger“, dass das Dezimalsystem für Computer ungeeignet ist, weil es schwer ist, zehn verschiedene Spannungen präzise zu unterscheiden? In MLC-Speichern ist das Risiko für Bitfehler erhöht, deshalb müssen Fehlerkorrekturschaltungen in den Speicherchip eingebaut werden.

Vor- und Nachteile

Das ­Schreibverfahren beansprucht eine MLC-Speicherzelle stark, die Zellen altern etwa zehn mal schneller als bei SLC-Zellen. Auch sind MLC-Zellen deutlich langsamer beim Lesen und Schreiben. Andererseits kann pro Flächeneinheit die ­doppelte, vierfache oder sogar achtfache Kapazität gespeichert werden. Die Hersteller ergreifen mehrere Gegenmaßnahmen, um die Nachteile von MLC zu mildern.

  • Mit modernen ECC-Verfahren werden Bitfehler zuverlässig vermieden.
  • Die Chips erhalten reichlich Reservezellen, um ausgefallene Zellen zu ersetzen (Over-Provisioning).
  • Durch den geringen Flächenbedarf für die Speicherzellen bleibt Platz auf dem Chip. Der kann z. B. für Parallelschaltung von Speicherzellen verwendet werden, was den Geschwindigkeitsnachteil von MLC mildert.

Was sollten Sie kaufen? In den üblichen SSDs, USB-Sticks und Speicherkarten kommt aus Preisgründen MLC zum Einsatz.

MLC sind zu empfehlen, wenn Daten nur selten geschrieben werden, z. B. für USB-Memory-Sticks und für SSD-Festplatten, die nur wenige Stunden täglich benutzt werden. SLC sind optimal für SSD-Festplatten in Servern, die rund um die Uhr intensiv genutzt werden.

Das „Füllen“ eines USB-Sticks mit Daten kann lange dauern. In einem Versuch dauerte es 40 Minuten, 8000 Dateien mit einer Gesamtkapazität von 16 GB über USB 3.0 auf einen Stick zu schreiben. Falls Sie oft große Datenmengen auf einen Stick schreiben wollen, sollten Sie in Testberichten nach den schnelleren SLC-Sticks suchen.

Die Eigenschaften eines Speichers hängen stark vom eingebauten Speichercontroller ab. Deshalb sollte man nicht nur nach formalen Kriterien (SLC oder MLC) urteilen, sondern Testberichte lesen.

SSD[Bearbeiten]

Wenn man viele NAND-Flash-Speicher (ebensolche wie in den USB-Sticks) zusammen mit einem Controller und Cache-Speicher in ein Festplattengehäuse packt, trägt es den Namen „Solid State Disk“ (SSD). Diese Massenspeicher sind im Unterschied zu Festplatten sehr schnell und absolut geräuschlos (es steckt ja kein Motor drin). Einige Spitzenmodelle können Daten schneller lesen, als sie ein SATA-2-Anschluss mit 6 Gbit/s (600 GByte/s) weiterleiten kann. SSD brauchen nur wenig Strom, was sie besonders für Notebooks attraktiv macht. Allerdings sind sie mit etwa 0,40 Euro pro Gigabyte sehr teuer. Eine 250-GB-SSD kostet 100 € (März 2016) – für den gleichen Preis könnte man eine Magnetfestplatte mit 4000 GB kaufen. Eine SSD mit 4000 GB Kapazität kostet mindestens 2000 Euro, in der Profiklasse ein Vielfaches davon.

Innere Organisation einer SSD[Bearbeiten]

Die Flash-Speicherzellen sind als Speicherseiten (Pages) organisiert, die typisch 4 KByte groß sind − ebenso groß wie die Sektoren auf modernen Festplatten. Schreiben kann man nur komplette Pages. Das ist nicht anders als wie bei der Festplatte: Daten werden stets in Blöcken von 4096 Bytes (früher: 512 Byte) geschrieben, und alle datenerzeugenden Programme sind darauf eingestellt.

Mehrere Pages sind zu Blöcken zusammengeschaltet, die meist eine Größe zwischen 128 und 512 KByte haben. Bei einer Blockgröße von 256 kByte passen also 64 Speicherseiten in einen Block.

Leider haben NAND-Speicher ein Problem: Man kann alte Daten nicht einfach mit neuen Daten überschreiben, wie bei einer (Magnet-)Festplatte. Man muss erst die alten Daten löschen, bevor neue Daten geschrieben werden können. Schlimmer noch: Die SSD kann zwar einzelne Speicherseiten beschreiben, doch löschen kann sie nur ganze Blöcke.

Angenommen, der Anwender hat ein Word-Dokument auf der SSD gespeichert. Nach Änderungen speichert er das überarbeitete Dokument unter unverändertem Namen ab. Bei einer Festplatte würde das Betriebssystem einfach die alte Datei überschreiben. Bei einer SSD wird die Datei in irgend eine freie Speicherseite gespeichert und die von der früheren Dateiversion belegten Speicherseiten werden als „ungültig“, als „zum Löschen freigegeben“ markiert.

Auf diese Weise sammeln sich in den Blöcken immer mehr ungültige Speicherseiten, während die Anzahl der gültigen Seiten abnimmt.

Solange es noch freie Seiten auf der SSD gibt, geht das Schreiben zügig voran und die Performance der SSD ist großartig. Doch was geschieht, wenn es keine freien Blöcke mehr gibt, um die nächste Datei zu speichern? Jetzt muss der SSD-Controller zügig einen Block zum Löschen auswählen. Es ist sinnvoll, einen Block zu wählen, in dem der Anteil der als ungültig markierten Seiten hoch ist. Der Controller kopiert die verbliebenen gültigen Speicherseiten des Blocks in einen Puffer, löscht den Block und kopiert die zwischengespeicherten Seiten zurück in den soeben gelöschten Block. Die restlichen Seiten des Speicherblocks stehen nun zum Schreiben von neuen Dateien zur Verfügung.

Wenn der Controller immer erst dann mit dem Freimachen von Speicherplatz beginnt, wenn die Schreibaufträge eintreffen, wird selbst bei guten SSDs die Schreibgeschwindigkeit um rund 40 Prozent reduziert. Es ist also wichtig, den Speicher vorsorglich aufzuräumen, damit immer eine größere Anzahl freier Blöcke für die nächsten Schreibaufträge bereitsteht. Für diese Aufräumarbeit gibt es die „Garbage Collection“.

Garbage Collection[Bearbeiten]

Wörtlich übersetzt handelt es sich um eine „Müllsammlung“. Der SSD-Controller sortiert seine Ressourcen: Er sucht Blöcke mit einem großen Anteil von ungültigen Speicherseiten (den „Müll“). Die restlichen gültigen Seiten aus mehreren Blöcken werden in einen neuen Block kopiert, wodurch mehrere Blöcke frei werden und gelöscht werden können.

Ein Beispiel: Wenn es mehrere Blöcke gibt, von denen jeder ein Viertel ungültige Seiten hat, kann der SSD-Controller die gültigen Seiten von je vier Blöcken auf drei leere Blöcke verteilen und dann vier Blöcke löschen. Wenig effektiv? Stimmt. Doch wenn der Controller Blöcke mit je drei Viertel ungültigen Seiten hat, passen die gültigen Speicherseiten von vier Blöcken auf einen einzigen leeren Block und anschließend können vier Blöcke gelöscht werden!

Wie häufig sollte die Garbage Collection stattfinden?

  • Möglichst zu einem Zeitpunkt, an dem die SSD im Leerlauf ist.
  • Möglichst oft, damit möglichst viele freie Blöcke verfügbar sind.
  • Möglichst selten, um die Lebensdauer der SSD zu maximieren. Wenn es eine ausreichend große Reserve von freien Blöcke gibt, sollte der Controller die „Müllsammlung“ verzögern. Denn im Lauf der Zeit steigt die Zahl der Blöcke, in denen nur noch ein kleiner Teil der Speicherseiten mit gültigen Daten belegt ist. Je später das Aufräumen stattfinden kann, desto effektiver wird es und desto weniger Blöcke müssen gelöscht werden. Ein großer Speichervorrat erhöht also die Lebensdauer.

Trim[Bearbeiten]

Bei einer Magnetfestplatte weiß Windows genau, welche Sektoren belegt sind und welche gelöscht werden könnten, um Platz für neue Daten zu schaffen. Doch bei Magnetfestplatten ist ein vorsorgliches Löschen nicht nötig. Ganz anders bei SSD. Die Blöcke werden vom SSD-Controller verwaltet, Windows hat keinen Einblick. Die TRIM-Funktion ermöglicht Windows, dem SSD-Controller mitzuteilen, welche Dateien nicht mehr benötigt werden. Dadurch kann der Controller die belegten Speicherseiten und Blöcke vorsorglich löschen, noch bevor durch den nächsten Schreibbefehl ein Mangel an freien Blöcken entsteht.

Wear-Leveling[Bearbeiten]

SSDs sind nur begrenzt haltbar. Das Löschen eines Blocks lässt diesen altern, deshalb ist nur eine begrenzte Anzahl von Schreibvorgängen möglich. Aufgrund der vielen automatisierten Schreibvorgänge von Windows ist es umso wichtiger, durch eine optimale Konfiguration die Lebensdauer der SSD zu erhöhen. Deshalb sorgt der SSD-Controller dafür, dass alle Zellen möglichst gleich oft beschrieben werden. Dafür benutzt er eine Methode, die als „Wear Leveling“ bezeichnet wird. Dieses Wear Leveling erhöht die durchschnittliche Lebensdauer von SSDs auf mehrere Jahre.

Für das Wear Leveling benutzt der SSD-Controller zwei Tabellen: Die Dateitabelle enthält die Zuordnung der logischen zu den physischen Speicherplätzen, ähnlich wie beim FAT-Dateisystem die FAT. Zusätzlich gibt es eine Tabelle, die für jeden einzelnen Block angibt, wie oft er bisher gelöscht wurde. Wenn der SSD-Controller von Windows Daten zum Schreiben bekommt, wird er einen Block zum Beschreiben aussuchen, der bisher am seltensten gelöscht worden ist. Das ist nennt man das dynamische Wear Leveling.

Doch das reicht nicht. Es gibt Dateien, die faktisch nie geändert werden, z. B. Programmdateien. Einmal installiert, bleiben die Programmdateien in den Blöcken gespeichert, wo sie sind, bis das Programm möglicherweise deinstalliert wird. Die belegten Blöcke bleiben „frisch“, während andere Blöcke durch das häufige Löschen altern. Deshalb gibt es das statische Wear Leveling: Der Controller verschiebt von Zeit zu Zeit die „statischen“ Inhalte in häufig benutzte Blöcke. Danach können die bisher selten gelöschten Blöcke in das Wear Leveling einbezogen werden.

Allgemein wird angenommen, dass eine Flash-Speicherzelle ihre Ladung nicht verliert. Das ist nicht ganz korrekt. Es gibt einen winzigen Leckstrom. Ich möchte nicht darüber spekulieren, wie viele Wochen oder Monate es dauert, bis eine Flash-Zelle einen kritischen Teil ihrer Ladung verliert. Doch zum Glück wirkt das statische Wear Leveling dem entgegen: Noch bevor die gespeicherten Daten zu schwach werden, kommt jeder Speicherblock an die Reihe, umkopiert zu werden.

Es ist hilfreich, dem SSD-Controller einen großzügigen Cache zu spendieren, damit die Daten vor dem Schreiben in sinnvolle Strukturen geordnet werden können.

Over-Provisioning[Bearbeiten]

„Übermäßige Bevorratung“ wird es genannt, wenn die Hersteller große Speicherreserven bereitstellen, von denen das Betriebssystem nichts weiß. Selbst wenn die SSD ziemlich voll ist, hat der SSD-Controller dadurch stets einen Vorrat an leeren Blöcken, und auch bei Schreib-„Großaufträgen“ sinkt die Schreibgeschwindigkeit nicht ab.

Wie hoch ist der Anteil der Speicherreserve? Ebenso wie beim RAM ist die Kapazität pro Chip stets eine Potenz von Zwei: 128, 256, 512, 1024, 2048, 4092 ... GB. Bei den „Consumer-SSD“ werden von 256 GB üblicherweise 240 oder 250 GB für das Betriebssystem bereitgestellt, was einem Overprovisioning von 7 % oder nur 2,4 % entspricht. 500 von 512 oder 1000 GB von 1024 GB enthalten ebenfalls 2,4 % Reserve. Bei den „Enterprise-SSD“ werden meist 200 von 256 GB bereitgestellt. 56 GB = 28 % der Kapazität bleiben in Reserve, um die höheren Anforderungen an Geschwindigkeit und Lebensdauer zu erfüllen.

Daraus folgt: Sie haben eine einfache Möglichkeit, die Geschwindigkeit und Lebensdauer Ihrer SSD zu erhöhen: Machen Sie den Speicher nicht zu voll! Bei Magnetfestplatten verlieren Sie stark an Geschwindigkeit, wenn die Platte zu mehr als 90 % belegt ist. Doch bei SSD fängt der Verlust früher an und wirkt weitaus stärker. Auch bei der Lebensdauer gibt es einen Unterschied: Die Lebensdauer einer Magnetplatte hängt in keiner Weise davon ab, ob sie voll oder leer ist, doch bei der SSD steigt der Verschleiß einer fast vollen Platte dramatisch, weil der Controller nicht mehr effektiv aufräumen kann.

Am sichersten vermeiden Sie es durch Partitionierung, die SSD versehentlich zu voll zu schreiben. Nutzen Sie nur 90 % für Partitionen und lassen Sie 10 % der Platte ungenutzt! Dem SSD-Controller ist es egal, auf welchem Weg er zusätzliche Blöcke bekommt, um effektiver zu arbeiten.

Bad Block Management[Bearbeiten]

Unvermeidliche Toleranzen bei der Fertigung bewirken, dass die Speicherzellen eine unterschiedliche Anzahl von Schreibvorgängen aushalten. Erste Zellen fallen schon nach der Hälfte der durchschnittlichen Lebensdauer aus, und allmählich steigt die Zahl der defekten Zellen immer schneller an. Die Verteilung der Lebensdauer folgt ungefähr der „Normalverteilung“.

Wegen der ECC-Fehlerkorrektur gehen beim Ausfall einzelner Zellen keine Daten verloren, jedoch wird jeder Fehler vom Fehlermanagement registriert. Wenn sich in einem Speicherblock die Fehler häufen, wird er deaktiviert. Es gibt ja eine Menge Reserveblöcke.

Was geschieht, wenn die „Stille Reserve“ aufgebraucht ist? Windows bekommt eine abnehmende Kapazität der SSD gemeldet, und wenn Sie den „Füllstand“ des Speichers nicht rechtzeitig durch Auslagerung von Dateien verringern, gibt es irgendwann die Meldung „kein freier Speicherplatz“.

Verzichten Sie auf Leistungstests und Tuning-Tools[Bearbeiten]

SSDs sind schnell. Doch lassen Sie sich nicht verleiten, sich das mit Leistungstests bestätigen zu lassen. Die vielen Schreibzugriffe reduzieren die Lebensdauer Ihrer SSD. Ähnliches gilt für Tuning-Tools. Denn in vielen Fällen wird dabei die Festplatte mit unnötigen Schreib- und Lesezugriffen belastet.

Windows Vista, Windows 7 und höher verfügen über eine komfortable Wiederherstellungsfunktion, die Ihre Dateien automatisch im Hintergrund speichert. Auch diese Funktion sollten Sie deaktivieren, sonst werden von Windows zahlreiche Lese- und Schreibzugriffe ausgeführt, um sogenannte Schattenkopien von älteren Dateiversionen zu sichern. So deaktivieren Sie die Wiederherstellungsfunktion von Windows:

  1. Über „Start“ klicken Sie mit der rechten Maustaste auf „Computer“ und wählen dann im Kontextmenü die „Eigenschaften“. Schneller geht es mit der Tastenkombination Windows-Taste und „Pause“.
  2. Klicken Sie am linken Rand auf „Computerschutz“.
  3. Markieren Sie das SSD-Laufwerk und klicken Sie auf „Konfigurieren“.
  4. Aktivieren Sie die Option „Computerschutz deaktivieren“ → „Übernehmen“ → „OK“.

Aktueller Zustand Ihrer Festplatten[Bearbeiten]

Das kostenlose Tool Crystaldiskinfo Portable kann Sie über die Smart-Werte, Firmware-Version, Seriennummer, Einschaltzyklen, Arbeitsstunden und Temperatur informieren. Wenn einer der Parameter einen kritischen Wert erreicht, kann das Tool eine Warnung auf Bildschirm ausgeben oder per Mail senden. Crystaldiskinfo liest interne HDD-und SSD-Festplatten ebenso wie externe USB-Festplatten. Sie finden das Programm auf http://www.pcwelt.de/downloads/CrystalDiskInfo-570015.html.

Wie langlebig ist die gespeicherte Information?[Bearbeiten]

Auf die Frage, wie lange Informationen auf einer stromlosen SSD erhalten bleiben, antwortete Samsung: „SSDs sind ... für die tägliche Nutzung ... konzipiert. Konkrete Aussagen, wie lange Daten auf einer stromlosen, nicht genutzten SSD gehalten werden können, sind daher nicht möglich. Einflussfaktoren sind hier die Kapazität, Nutzungsintensität .. sowie die Lagerungsbedingungen, insbesondere die Raumtemperatur.“ Siehe: http://www.channelpartner.de/a/haendler-fragen-die-ssd-experten-von-samsung-antworten-teil-1,3041954?tap=0708e9ccc96632278b21010225f2980d&r=463652022246228&lid=320228&pm_ln=101

Zukünftige SSD-Festplatten[Bearbeiten]

Werden magnetische Festplatten bald überflüssig? Wenn es um große Speicherkapazitäten geht, voraussichtlich nicht, und für Archivierung über längere Zeit schon gar nicht. Die Kosten pro Gigabyte sind bei magnetische Festplatten mehr als zehnmal geringer als bei SSD-Speichern.

Die Ladung in den SSD-Speicherzellen wird von einer Isolierschicht, dem „Floating Gate“, zurückgehalten. Um ein Bit zu löschen, werden die Elektronen mit hoher Spannung durch diese Isolierschicht gepresst. Dabei nutzt sich die Isolierschicht ab.

Um größere Kapazitäten zu erreichen, müssen die Zellen kleiner werden. Je kleiner die Zelle, umso schneller ist sie verschlissen. Erste Speicher in 25-nm-Strukturen werden produziert. 20 nm sind geplant. Ob noch kleinere Bits möglich sind, ist ungewiss.

Einige Hersteller beherrschen die Technologie, viele Speicherebenen im Chip übereinander zu stapeln. Damit können große Kapazitäten erreicht werden. Samsung liefert seit März 2016 eine SSD mit 15,36 TB Kapazität im 2,5" Gehäuse aus, bei der in jedem Chip 16 Die’s übereinandergestapelt sind. Die Geschwindigkeit der Datenübertragung beträgt 12 Gbit/s. Sie wird nur an Firmenkunden verkauft, der Preis wurde nicht bekanntgegeben.

Zum Vergleich: Die größte gegenwärtig erhältliche Magnetfestplatte im 3,5" Gehäuse speichert 10 TB.