Mobile-Menu

Hardware-Basics: Nichtflüchtige Speicher Was macht ein NAND-Flash-Memory-Controller?

Von Katrin Zinn* 7 min Lesedauer

Anbieter zum Thema

Wer Flash-Speicher sagt, meint eigentlich ein vollständiges Speichersystem, bestehend aus Speicherchip, Speichercontroller sowie einigen analogen Schaltungskomponenten. Im Chip liegen die abgelegten Daten – doch was macht eigentlich der Controller?

Speichersteuerung: Bei Diskussionen über Flash-Speicher geht es meist um Kapazität, Schnittstellen, Datenraten, Bits pro Zelle, Anzahl der Chip-Layer – weniger um den Controller, der das alles – und noch mehr – verwaltet. Dabei ist dieser für die Funktion, Sicherheit und Lebensdauer der Speicherchips essenziell.(Bild:  Dmitriy Rybin/Shutterstock)
Speichersteuerung: Bei Diskussionen über Flash-Speicher geht es meist um Kapazität, Schnittstellen, Datenraten, Bits pro Zelle, Anzahl der Chip-Layer – weniger um den Controller, der das alles – und noch mehr – verwaltet. Dabei ist dieser für die Funktion, Sicherheit und Lebensdauer der Speicherchips essenziell.
(Bild: Dmitriy Rybin/Shutterstock)

NAND-Flash-Memory-Controller, kurz „Controller“, gibt es für Schnittstellen wie PCIe, eMMC, SD, SATA und USB in unterschiedlichen Qualitäten und für verschiedene Anwendungsfälle. Allen Controllern gemein ist, dass sie die Daten auf dem NAND-Flash verwalten. NAND-Flash hat sich zur am weitesten verbreiteten Speichertechnik für zahllose Applikationen entwickelt und ist aus unserer heutigen Welt nicht mehr wegzudenken.

Bildergalerie
Bildergalerie mit 5 Bildern

Durch enorme Fortschritte sowohl bei der Fertigung der Speicherchips – Stichwort 3D-Stacking – als auch bei Controllern und der Firmware hat die NAND-Flash-Technik es geschafft, die HDD-Festplatte in vielen Bereichen als meistgenutztes Massenspeichermedium abzulösen.

Die Herausforderungen an den Controller werden immer höher, wenn sie den steigenden Ansprüchen aus Fehlerkorrektur, Mapping, Garbage Collection, Data-Refresh genügen sollen. Was sind also die Vorteile und Unterschiede dieser spezifischen Controller und der Firmware? Ein Controller arbeitet wie ein Gehirn für ein NAND-Flash-Speichersystem. Er gewährleistet, dass die vom Host empfangenen Daten an den Flash-Speicher gesendet und später wieder abgerufen werden können. Zudem übersetzt und ändert er die Lese-/Schreib- und Statusbefehle des Hostsystems in die verschiedenen Befehle der Flash-Komponente und transformiert die logischen Blockadressen oder Sektoradressen des Hosts, der das Dateisystem verwaltet, in Adressen auf dem Flash. Der Controller sorgt auch für Kompatibilität auf beiden Seiten und behebt alle inhärenten Mängel der Flash-Technologie.

NAND-Flash ist eigentlich recht unzuverlässig

Warum jedoch schreibt man die Daten nicht einfach mit einem simplen Programm auf den Flash-Speicher? NAND-Flash ist ein von Natur aus eher unzuverlässiger Speicher. Halbleiter, zu denen der NAND-Flash gehört, werden durch die im Betrieb entstehende Wärme, die in etwa proportional zur Verlustleistung ist, erheblich belastet. Außerdem migrieren die Elektronen beim Betrieb innerhalb des Siliziums und zerstören mit der Zeit die internen Strukturen auf dem integrierten Chip. Weil sich unter Wärme die Elektronen bewegen, werden alle Alterungsprozesse mit zunehmender Wärme exponentiell beschleunigt. Je nach Performance geben Controller während der Aktivität zusätzliche Wärme ab. Je kleiner die Geometrien oder Zellstrukturen innerhalb eines Halbleiters sind, desto anfälliger ist das Bauteil für derartige Effekte.

Doch damit hört es nicht auf – die Struktur von Flashs ist unterteilt in Planes, Blöcke, Pages und Zellen. Die kleinste Einheit, die zu beschreiben ist, ist eine Page, die kleinste Einheit, die gelöscht werden kann, jedoch ein Block. Die Blöcke im Flash haben lediglich eine begrenzte Anzahl von Schreib- und Löschzyklen, bevor die physische Abnutzung sie unbrauchbar macht. Aus diesem Grund betreibt der Controller ein sogenanntes Wear-Leveling: Er ordnet Daten so zu, dass die Flash-Blöcke des Systems gleichmäßig und somit möglichst lange nutzbar sind.

Hohe Anforderungen an Speicher für den industriellen Einsatz

Die Strukturen heutiger Halbleiter sind kleiner als Viren, und es ist ein enormer Entwicklungsaufwand erforderlich, um die beschriebenen Effekte erkennen und berücksichtigen zu können. Hinzu kommt: Unterschiedliche Anwendungsgebiete haben verschiedene Anforderungen an den Flash-Speicher. Ein Halbleiter, der für Verbraucherprodukte bestimmt ist, die sechs Stunden am Tag, fünf Tage die Woche und fünf Jahre lang hauptsächlich bei Raumtemperatur betrieben werden sollen, ist anders zu konstruieren als ein Industrieprodukt, das 24 Stunden am Tag, sieben Tage die Woche und mehr als zehn Jahre lang in einer Außenumgebung betrieben wird.

Die Menge an Daten pro Fläche, die zu speichern ist, nimmt kontinuierlich zu, um auch kostenmäßig, also beim Preis pro Gigabyte, mit herkömmlichen Magnet-Festplatten gleichziehen zu können. Die Antwort der Flash-Speicher-Entwickler darauf ist das Speichern mehrerer Bits pro Zelle und der Aufbruch in die dritte Dimension.

NAND-Flash-Speicherzellen können nicht beliebig klein sein

NAND-Flash überzeugt durch geringe Leistungsaufnahme, hohe Lesegeschwindigkeit und, richtig konstruiert, hohe Zuverlässigkeit. Die Kosten eines Siliziumchips sind proportional zur Fläche. Deswegen hängen die Kosten pro Byte bei NAND-Flash davon ab, wie viele Bits je Flächeneinheit gespeichert werden können. Mit verschiedenen Maßnahmen hat man die Speicherdichte immer weiter erhöht – etwa durch das Verkleinern der Speicherzellen. Dieses Vorgehen stößt jedoch an Grenzen: Je kleiner eine Zelle ist, desto weniger Ladungsträger sind darin enthalten. Auch unerwünschte Nebeneffekte nehmen zu, etwa Leckströme und Fehlerraten.

Ein anderer Weg führt über das Speichern mehrerer Bits pro Zelle. Anstelle mit einer einstufigen Zelle (Single-Level-Cell, SLC), die nur ein Datenbit speichern kann, arbeiten moderne Flash-Speicher mit zwei (Multi-Level-Cell, MLC), drei (Triple-Level-Cell, TLC) oder vier (Quad-Level-Cell, QLC) Bits pro Zelle. Die Programmierung muss sehr präzise erfolgen, und auch die Messungen zum Auslesen müssen akkurat sein. So erhöht die Technik zwar die Speicherdichte, ist aber auch ein Kompromiss, der geringere Leistung, kürzere Lebensdauer und höhere Fehlerraten mit sich bringt.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Mehr Kapazität: Aufbruch in die dritte Dimension

Um die Kapazität ihrer Bausteine weiter zu erhöhen, stapeln die Hersteller mittlerweile hunderte Flash-Chips übereinander – auch dies muss der Controller beachten. Der Hauptvorteil von 3D-NAND-Flash ist die Senkung der Kosten pro Byte. Hinzu kommt, dass die Speicherzellen in einem 3D-NAND-Chip dichter beieinander liegen als bei einem 2D-Baustein, bei dem sie planar als Array auf der Oberfläche verteilt sind. Die 3D-Struktur ermöglicht eine viel größere Speicherkapazität auf der gleichen Fläche bei kürzeren Verbindungen zu den Daten, was wiederum eine schnellere Datenübertragung ermöglicht.

Wie effizient sich 3D-NAND-Flash-Speicher nutzen lässt, hängt stark von der Leistungsfähigkeit des verwendeten Controllers ab. Um die große Speicherkapazität effizient zu verwalten, die Auswirkungen der Zellprogrammierung zu minimieren und eine maximale Lebensdauer und Zuverlässigkeit zu gewährleisten, sind ausgefeilte Mechanismen im Controller notwendig. Welche Technologie die richtige ist, hängt zudem vom Anwendungsfall ab.

Controller mit eigenem und ohne eigenen Arbeitsspeicher

Grundlegende Anforderungen muss ein Controller immer erfüllen, jedoch bestehen immense Unterschiede im Funktionsumfang und bei den Leistungsmerkmalen. Man kann Controller grundsätzlich in zwei Kategorien aufteilen: Controller mit und ohne Arbeitsspeicher (DRAM). Für den Einsatz in industriellen Umgebungen oder Anwendungen, die absolute Datenzuverlässigkeit benötigen (beispielsweise medizintechnische Geräte oder Mobilfunkstationen) bieten sich DRAMless-Controller an.

Zwar haben DRAM-basierte Systeme eine höhere Performance, doch wenn es um Zuverlässigkeit geht, sind DRAMless-Controller die sichere Alternative. Anders als bei Controllern mit DRAM bleiben abgelegte Daten auch bei einem plötzlichen Stromausfall erhalten. Weitere Vorteile der DRAMless-Variante sind die kürzere Stückliste (Bill of Material, BOM), ein einfacheres Design und schließlich weniger Bauteile, die ausfallen können.

Was zeichnet einen guten Controller aus?

Zellen verlieren mit der Zeit ihren Ladungszustand – dadurch kann der Wert einer Zelle „kippen“, es kommt zu einem Bit-flip. Ein Controller kann diese falschen Bits jedoch erkennen und mithilfe einer Fehlerkorrektur ausgleichen. Sollten sich diese Bitfehler jedoch häufen, muss der Controller gegensteuern.

Die meisten Controller beinhalten einen Auffrischungsalgorithmus, der erkennt, wenn die Daten alt und damit instabil werden, zum Beispiel durch Zeitstempel oder durch Aufzeichnung von Bitfehlerstatistiken. Einfache Controller erkennen und überprüfen Daten nur, wenn sie gelesen werden – also nur, wenn der Host einen Lesevorgang anfordert. Bessere Controller planen Laufwerkscans aller Daten als Wartungsvorgang im Hintergrund.

Speicherseiten im Flash beeinflussen sich gegenseitig

Auch das Lesen eines Blocks innerhalb einer Page kann sich im Laufe der Zeit negativ auf die physische Datenqualität der benachbarten Pages auswirken. Um dem entgegenzuwirken, verfügen Controller über ein Read-Disturb-Management, das die Lesevorgänge im Flash überwacht und die umliegenden Daten bei Bedarf aktualisiert.

Die SMART-Technologie liefert Informationen über den Gesundheitszustand und die Lebensdauer des NAND-Flash-Speichers. Sie ermöglicht es dem Benutzer, die Lebensdauer des Flash-Geräts anhand verschiedener Attribute zu überwachen. So können beispielsweise Reserveblöcke, Löschvorgänge, die Gesamtzahl der Lesevorgänge oder die Gesamtzahl der ECC-Fehler gezählt und die Lebensdauer vorhergesagt werden. Diese Funktion ist bei ATA-Schnittstellen standardmäßig vorhanden.

In anderen anspruchsvollen Anwendungen, auf welche Hyperstone-Controller ausgelegt sind, ist die Funktion jedoch auch für weitere Schnittstellen wie USB oder SD implementiert. Abgestimmt auf den jeweiligen Anwendungsfall, lässt sich zudem das Design entsprechend anpassen, und der Con­troller und die Firmware können in Hinblick auf Kosten, Leistung oder Zuverlässigkeit optimiert werden.

Bildergalerie
Bildergalerie mit 5 Bildern

Auch für SD-Karten oder USB-Drives?

Gerade bei diesen originär auf günstig getrimmten Massenprodukten entwickelte sich ein ganzes Paralleluniversum an Controllern, Firmware, Fertigungen und Speichermedien. Für Controller-Entwickler ist es durchaus eine Herausforderung, ein älteres Interface wie CompactFlash oder SD 2.0 mit den aktuellen 3D-Flash-Chips zu unterstützen. Im Idealfall besteht schon beim Design der Anspruch, viele weitere zukünftige Flash-Generationen zu berücksichtigen.

Diesem Gedanken folgend, hat Hyperstone den SD-Controller S9 entwickelt, der mit seiner schlüsselfertigen Firmware auch anspruchsvolle Anwendungen erfüllt. Für eine lange Lebensdauer und eine hohe Datenintegrität sowie Ausfallsicherheit verfügt der Controller über FlashXE ECC- und hyReliability-Funktionen. Der hyMap Flash Translation Layer gewährleistet eine minimale Schreibverstärkung bei hoher Ausdauer – das Resultat ist eine effiziente Nutzung von NAND-Flash bei geringsten Ausfällen.

Hyperstone ergänzt den Funktionsumfang mit dem Monitoring-Tool hySMART zur Zustandsüberwachung. Doch die Anforderungsliste an Speicherkarten geht weiter. Heutzutage werden sensible Informationen auf SD- und µSD-Karten gespeichert, weswegen zusätzliche Security Features erforderlich sind. Sie sind mithilfe eines Application Programming Interfaces (API) in der S9S-Version des Controllers implementierbar. (me)

Dieser Beitrag ist ursprünglich auf unserem Partnerportal ELEKTRONIKPRAXIS erschienen.

* Katrin Zinn ist Technical Marketing Manager bei Hyperstone

(ID:49585851)