Hy-Line : Solid State Disk - schnell, aber sicher

Flash-Memory dominiert den Consumer-Markt für Elektronikgeräte. Ob Mobiltelefon mit fest eingebautem Speicher, Kamera mit SD-Karte, oder der Datentransfer von Desktop-PC zu Notebook-Computer mit USB-Speicher, überall hat sich Flash etabliert. Kommt es auf kompakte Bauweise, schnellen Zugriff und Robustheit an, laufen Solid State Disks den Festplatten mit rotierenden Scheiben den Rang ab. Die letzte Generation bietet in kompakter Chip-Bauform höchste Transferleistungen bei gleichzeitig größter Datensicherheit.

Historie - Warum SSD

Die Verfügbarkeit von Speicherbausteinen mit ausreichend hoher Kapazität zu günstigen Preisen ermöglichte die Ablösung rotierender Speichermedien überall dort, wo diese mit ihren Eigenschaften nicht eingesetzt werden konnten oder sollten. Beispiele dafür sind schnellere Zugriffszeiten – vor dem Zugriff müssen keine Magnetköpfe positioniert werden – die Unempfindlichkeit gegenüber Vibrationen und Schock, was sie für mobilen Betrieb auszeichnet, die im Vergleich zu gleich großen Magnetspeichern niedrigere Leistungs­aufnahme und schnellerer Datentransfer, besonders beim Lesen von Daten. Der Temperaturbereich von Halbleiterspeichern ist generell höher als der von magnetischen, daher auch die Eignung für industri­elle Anwendungen. Dem gegenüber stehen die Nachteile der Abnutzung durch Alterung der Zellen und die kritische Phase des Verlusts der Versorgung während des Schreibvorgangs, was aber auf Magnetscheiben genauso zutrifft.

Was ist eigentlich Flash?

Flash bezeichnet eine Technologie, mit der es möglich wird, Daten nichtflüchtig elektrisch in einem Halbleiter zu speichern, zu modifizieren und wieder zu löschen. Der Vorgänger, EPROM, benötigte energiereiche UV-Strahlung für den Löschvorgang, EEPROMs können die Energie mit einer On-Chip-Ladungspumpe erzeugen. Der wesentliche Unterschied zwischen EEPROM und Flash ist, dass Flash-Speicher nur blockweise beschrieben und gelöscht werden können. Der Zugriff auf eine einzelne Zelle ist nicht möglich; um ein Bit zu ändern, muss ein gesamter Block in einen Zwischenspeicher aus­gelesen, das Bit manipuliert und der gesamte Block zurückgeschrieben werden. Flash speichert Daten nichtflüchtig, indem eine elektrische Ladung zwischen zwei Isolationsschichten eingeschlossen wird. Beim Schreiben und Löschen wird eine dieser Schichten kurzzeitig leitfähig und lässt Ladungen zu- und abfließen. Der Lesevorgang ist nicht-destruktiv und kann beliebig oft erfolgen. Schreib- und Löschvorgänge lassen die Zelle altern. Dadurch ver­schlech­tert sich der Isolationswiderstand, und die eingeschlossene Ladung kann im Laufe der Zeit abfließen.

Um die Speicherdichte weiter zu erhöhen, haben die Halbleiterhersteller weitere Strategien ent­wickelt: die ursprünglich planare Anlage der Speicherzellen wird in einen V-förmigen Graben verlegt (V-NAND), und es werden in einem Chip mehrere Dies übereinander gestapelt und elektrisch mit­einander verbunden (3D NAND). So kann in einem sehr kompakten Gehäuse eine große Speicher­kapazität realisiert werden.

Flash-Technologien – SLC oder MLC/TLC

Nur von außen betrachtet speichert eine Flash-Zelle eine digitale Information, die als „0“ oder „1“ ausgelesen wird. Real wird eine bestimmte Zahl Ladungsträger isoliert. Beim Auslesen entscheidet die Auswertungsschaltung im Chip, ob die Zahl der Ladungsträger höher oder niedriger als ein Schwell­wert ist und gibt ein entsprechendes Logiksignal aus. Dies gilt für die SLC (Single Level Cell)-Zelle. Im MLC-Speicher (Multi Level Cell) gibt es dem entsprechend mehrere Schwellen, die gemein­sam als vier verschiedene Zustände ausgewertet werden und nach außen hin zwei Bits repräsen­tieren. Je nach „Füllgrad“ der Zelle sind die Bitwerte 00, 01, 10 und 11 abgelegt. Die aktuellste Tech­nologie verfeinert die Klassifizierung des Ladezustands um eine weitere Stufe und interpretiert ihn in acht Stufen als drei Bits. Dies wird als „TLC“ – Triple Level Cell – bezeichnet. Die Vorteile dieser Techno­logie sind die höhere Speicherdichte pro Chip, die Speichermedien höherer Kapazität setzen sie wegen des geringeren Bauvolumens und Preises ein.

Was ist ein Solid State Drive (SSD)?

Jedec (Joint Electron Device Engineering Council), die Organisation zur Standardisierung von Halb­leitern, definiert: „Ein Solid State Drive (SSD) ist ein nichtflüchtiges Speichermedium. Ein Controller ist zusammen mit einem oder mehreren Speicherbausteinen in einem Gehäuse verbaut. Das Gerät sollte Interfaces (Protokoll und physisch) und Formfaktoren von Standard-Harddisks verwenden.“

Formfaktoren

Für Solid State-Speicher haben sich folgende Formfaktoren etabliert: 2.5“-Laufwerke können direkt durch die SSD-Äquivalente ersetzt werden. Die Bauform MO-297 hat denselben elektrischen An­schluss, ist jedoch mit 39mm x 54mm kompakter aufgebaut. Sie ist auch unter dem Begriff 1.8“ Slim Line bekannt. Moderne Single Board Computer bieten einen Steckplatz für kompakte SSD-Module im mSATA (MO‑300) oder M.2-Format, z.B. 22mm x 42mm. Während mSATA sich den Steckplatz mit miniPCIexpress teilt, liegt bei M.2 das Hauptaugenmerk auf Speicher. Bei M.2 ist die Breite der Karten genormt, die Steckerbelegung jedoch hängt vom Interface SATA oder PCIe ab. Die Länge variiert die mit der Komplexität (Speicherkapazität) von 42 bis 110mm. Darüber hinaus stehen SSDs auch auf Chipebene zur Verfügung, wie die PCIe FerriSSD von Silicon Motion.

Host-Interface

Für die ersten Generationen von SSDs wurde das von Magnetscheiben verwendete Interface ver­wendet: Der von der ATA-Schnittstelle verwendete Adressraum reichte lange für die verfügbare Kapazität aus. Mit der Migration nach SATA konnten die schneller gewordenen Halbleiterspeicher zügig angesprochen werden. Jedoch besonders beim Schreiben mussten noch Wartezyklen eingelegt werden. Die letzte Generation SSDs setzt auf PCI Express. Dazu wurde eigens der NVMe-Standard definiert, der die Anbindung von nichtflüchtigen Halbleiterspeichern über den PCIe-Bus beschreibt.

Controller

Für den praktischen Einsatz der Flash-Technologie in Form einer SSD ist ein Controller unabdingbar. Er wandelt die Flash-Schnittstelle elektrisch und logisch in ein Format um, über das sie an einen Computer angeschlossen werden kann. Die Verwaltung der Flashbausteine und die Kommunikation übernimmt eine Firmware, die exakt auf die Hardware an­gepasst ist, um die maximale Leistung aus den Speichern herauszuholen und einen sicheren Betrieb zu gewährleisten.

Für die folgenden Betrachtungen soll die neue PCIe FerriSSD von Silicon Motion als Grundlage dienen. Sie ver­eint alle Funktionen auf nur einem einzigen Chip: Host-Controller, 3D NAND mit bis zu 256GB mit einem mehrstufigen Cache und einer leistungsfähigen Firmware.

Wear Leveling

Die einzelnen Zellen eines Flash-Bausteins altern durch jeden Schreib- und Löschzugriff. Für eine lange Lebensdauer müssen häufige Zugriffe auf dieselbe Zelle vermieden werden. In der Praxis legt das Betriebs­system in einem bestimmten Bereich des Speichers das Directory ab, in dem über Dateien und deren Position auf dem Datenträger Buch geführt wird. Bei jedem schreibenden Dateizugriff muss der Inhalt auf den neuesten Stand gebracht werden. Andere Zellen, wie z.B. die am Ende des verfüg­baren Speicherbereichs, werden hingegen erst verwendet, wenn das Medium nahezu gefüllt ist. Die Aufgabe des Controllers ist es nun, die logischen Zugriffe auf den Speicher so in physikalische umzu­setzen, dass keine Speicherzelle überlastet wird und so vorzeitig altert.

Cache Struktur, Redundanz und End-to-End Datenschutz

Der Schreibvorgang jedes Blocks benötigt eine gewisse Zeit, da Ladungen in die Isolationsschicht trans­portiert werden müssen. Für die höchste Zugriffs­geschwindigkeit hilft ein mehrstufiger Cache als Zwischenspeicher. Sollte beim Lesen ein korrigierbarer Flash-Fehler festgestellt werden, können durch die in jeder Stufe stattfindende ECC korrekte Daten an den Host ausgeliefert werden, und die nun korrigierten Daten in einem neuen Block gespeichert werden, siehe dazu Abb. 3. Dies geschieht völlig transparent ohne Mitwirkung der Host-CPU.

Defekte Zellen und Bad Block Management

Der Controller überwacht die Lebensdaten jeder einzelnen Speicherzelle. Stellt sich heraus, dass eine Zelle die Ladung nicht hält, wird der zugehörige Block als defekt markiert und aus der Liste der ver­füg­baren Blöcke gelöscht. Zunächst wird für ihn aus der Reserve ein Block bereitgestellt, ist diese auf­gebraucht, wird die verfügbare Kapazität der SSD reduziert.

Funktionelle Sicherheit

Die Aufgabe des Controllers ist, dem Host-Computer die maximale Performance zur Ver­fügung zu stellen. Dies bedeutet Geschwindigkeit, aber auch Daten-Integrität. Neben dem ECC-Mechanismus führt der Controller einen automatischen Refresh der Daten durch, indem er Speicherblöcke ausliest und wieder zurückschreibt, wenn der Host gerade nicht auf den Speicher zugreift.

Hybrid Zone

Konventionelle SSDs konfigurieren den kompletten Flash-Bereich homogen: Single Level Cells (SLC), Multi Level Cells (MLC) oder Triple Level Cells (TLC) nach Abwägung von Speicherdichte gegenüber Zugriffslatenz, die jedem Zelltyp eigen ist. Die PCIe FerriSSDs bieten über die Funktion "Hybrid Zone" eine freie Partitio­nierung eines einzelnen NAND-Chip in separate SLC- und MLC- bzw. TLC-Zonen. Ohne auf die Vorteile der Speicherdichte von MLC/TLC verzichten zu müssen, können einzelne Bereiche der SSDs schnell beschreibbaren (Pseudo-) SLC-Speicher bereithalten. Durch die höhere Transfergeschwindigkeit wird die Zugriffszeit kürzer, also auch die Zeit, die bei Ausfall der Versorgung für eine ordnungsgemäße Beendigung des laufenden Schreibvorgangs benötigt wird. Die dafür erforderliche Pufferung kann deutlich kompakter aus­fallen. Die Partitionierung in SLC einerseits und MLC/TLC andererseits erlaubt eine Optimierung der Kosten – schneller SLC-Speicher für die Ausführung des Betriebssystems und MLC/TLC-Speicher mit höherer Speicherdichte für die Daten. Abb. 4 zeigt, wie der partitionierte Speicher physikalisch (oben) und logisch (unten) an den Host angebunden ist.

Überwachung während des Betriebs

Mit steigendem Alter, d.h. Anzahl der P/E-Zyklen, nimmt die Fähigkeit der Flash-Zellen, Daten dauer­haft zu speichern, ab. Ebenso bewirkt eine erhöhte Umgebungstemperatur eine kürzere Datenhalte­zeit. Um potenziellen Datenverlust zu vermeiden, scannt PCIe FerriSSD "IntelligentScan" proaktiv NAND-Bausteine, um Zellen, die demnächst ihren Inhalt zu verlieren drohen, aufzufrischen und die Lebensdauer der enthaltenen Daten effektiv zu verlängern. Der Algorithmus protokolliert dazu Sperrschicht-Temperaturmesswerte, die Anzahl der P/E-Zyklen, die Einschaltdauer der SSDs und andere wichtige Referenzpunkte. Er startet automatisch immer dann, wenn keine ander­weitigen Aktivitäten der SSD (lesen, schreiben) anliegen.

Fazit

Die neueste Generation von Embedded-/Industrieanwendungen verlangt schnellere Daten­über­tragung und eine robuste, zuverlässige Datenspeicherung durch optimal an das System angebundene SSDs. Schnittstellen wie SATA III mit 6Gbps können die Leistungsfähigkeit der schnellsten Speicher nicht mehr ausschöpfen. PCIe steht in der dritten Gene­ration bereit, um die Transferleistung zu steigern. Eine leistungsfähige SSD braucht einen Controller, der die aktuellen Flash-Speicher perfekt unterstützt. PCIe FerriSSD bringt alle Funktionen auf engstem Raum zusammen: außer dem Flash-Speicher ist im BGA-Gehäuse ein Con­troller, mehrstufiger Cache und eine leistungsfähige Firmware untergebracht, die zuverlässigen, langlebigen und schnellen Speicher mit hoher Kapazität von bis zu 256GB bieten. Mit der konfigu­rierbaren Partitionierung als SLC oder MLC/TLC kann er auf die Anwendung optimal ange­passt werden und bietet damit die beste Mischung aus Datenintegrität und Kosten-/Leistungsrelation für alle Embedded-Anwendungen.