Ein Gehirn unter Strom

Das macht ein NAND Flash Memory Controller

4. Mai 2022, 8:00 Uhr | Tobias Schlichtmeier
Controller
© Hyperstone | Weka Fachmedien

Manchmal ist die Rede von einem Speicherchip, gemeint ist jedoch eine SD-Karte. Sie besteht jedoch aus einem Speicherchip und einem Speicher-Controller sowie einigen analogen Komponenten. Doch warum ist der Controller überhaupt nötig? Dass es nicht ohne ihn geht, zeigt Hyperstone.

Die Rede ist von NAND-Flash-Memory-Controllern, kurz »Controller«. Es gibt sie für unterschiedliche Schnittstellen wie PCIe, eMMC, SD, SATA, und USB in unterschiedlichen Qualitäten und für verschiedene Anwendungsfälle. Was sie gemein haben ist, dass sie die Daten auf dem NAND-Flash verwalten. Die Speichertechnik ist über die letzten Jahre immer beliebter geworden und ist aus unserer heutigen Welt nicht mehr wegzudenken. Mithilfe von komplexen Controllern und zugehöriger Firmware hin zu 3D-Strukturen haben die stetigen Fortschritte in der Entwicklung der NAND-Flash-Technik es geschafft, die HDD-Festplatte als meistgenutztes Massenspeichermedium abzulösen. So sind die Herausforderungen an den Controller immer höher, um Aufgaben wie Fehlerkorrektur, Mapping, Garbage Collection, Data Refresh und viele mehr zu erledigen. Was sind also die Vorteile eines Controllers und seiner Firmware gegenüber eines anderen und welche Unterschiede gibt es?

Anbieter zum Thema

zu Matchmaker+

Controller und ihre grundlegenden Funktionen

Der Controller ist das Gehirn eines jeden NAND-Flash-Speichersystems. Er gewährleistet, dass die vom Host empfangenen Daten an den Flash-Speicher gesendet und später wieder abgerufen werden können. Er übersetzt und ändert die Lese-/Schreib-/Statusbefehle des Hostsystems in die verschiedenen Lese-/Schreib-/Statusbefehle der Flash-Komponente. Außerdem übersetzt er die logischen Blockadressen (LBAs) oder Sektoradressen des Hosts, die das Dateisystem verwaltet, in Adressen auf dem Flash, die in Blöcken und Pages organisiert sind. Der Controller sorgt für Kompatibilität auf beiden Seiten und behebt alle inhärenten Flash-Mängel.

Warum jedoch schreibt man die Daten nicht einfach mit einem kleinen Programm auf den Flash? Man könnte meinen, dass das nicht so schwer sein kann. NAND-Flash selbst ist alles andere als zuverlässig. Halbleiter, zu denen 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 innerhalb des Siliziums und zerstören mit der Zeit die internen Strukturen. Weil die Wärme die Elektronen bewegt, werden alle Alterungsprozesse mit zunehmender Wärme exponenziell beschleunigt. Die Controller geben zusätzliche Wärme ab, wenn sie aktiv sind, je nach Performance. Je kleiner die Geometrien oder Zellstrukturen innerhalb eines Halbleiters sind, desto anfälliger ist das Bauteil für derartige Effekte.

Heutige Halbleiter haben Strukturen, die kleiner als Viren sind, und es ist ein enormer Entwicklungsaufwand erforderlich, um all diese Effekte angemessen zu berücksichtigen.  Hierbei haben unterschiedliche Anwendungsgebiete unterschiedliche Anforderungen an den Flash. 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. Hierbei nimmt die Menge an Daten pro Fläche, die zu speichern ist, kontinuierlich zu, um mit Festpatten gleichziehen zu können was die Kosten pro Gigabyte angeht. Die Antwort der Flash-Speicher Entwickler darauf ist der Aufbruch in die dritte Dimension.

Full_Size_SD_Controller
Auf dem PCB einer SD-Karte befinden sich neben dem NAND-Speicher auch passive Komponenten und der Controller, der den NAND-Chip steuert.
© Hyperstone

Ist 3D Flash günstiger als NAND-Flash?

Geräte, die auf NAND-Flash basieren, haben die Vorteile einer geringen Leistungsaufnahme, hoher Geschwindigkeit und Zuverlässigkeit. Die Kosten eines Siliziumchips sind proportional zur Fläche und weitgehend unabhängig davon, was sich darauf befindet. Aus dem Grund hängen die Kosten pro Byte bei NAND-Flash-Speichern davon ab, wie viele Bits auf einem Chip einer bestimmten Größe gespeichert werden können. Es gibt dabei mehrere Techniken, die zur Erhöhung der Speicherdichte von NAND-Flash-Speichern eingesetzt wurden.

Die erste Technik besteht darin, die Größe der Zelle zu verringern. Diese Verkleinerung stieß jedoch irgendwann an ihre Grenzen. Sie führte auch zu einigen unerwünschten Nebeneffekten, wie größeren Leckströmen und höheren Fehlerraten.

Die andere Technik bestand darin, mehr Bits in jeder Zelle zu speichern. Anstelle einer einstufigen Zelle (SLC), die nur ein Datenbit speichern können, können moderne Flash-Speicher, zwei (MLC), drei (TLC) oder vier (QLC) Bits pro Zelle speichern, und diese Entwicklung geht weiter. Das bedeutet, dass präzise zu programmieren und zu messen ist. So erhöht die Technik zwar die Speicherdichte, aber auch sie ist lediglich ein Kompromiss, wenn man geringere Leistung, kürzere Lebensdauer und höhere Fehlerraten betrachtet.

Der Hauptvorteil von 3D-NAND-Flash ist die Senkung der Kosten pro Byte. Das liegt daran, dass man mehr Bits auf der gleichen Fläche des Chips unterbringt.  Die Speicherzellen in einem 3D-NAND-Chip liegen dichter beieinander als bei einem 2D-Baustein, bei dem sie außen auf der Oberfläche verteilt sind. Anstatt ein Array von Speicherzellen über die Oberfläche des Chips zu legen, werden bei den modernen Flashs mehrere Schichten von Speicherzellen erstellt, um eine vollständige dreidimensionale Struktur im Silizium zu schaffen. Das ermöglicht eine viel größere Speicherkapazität auf der gleichen Fläche und, was ebenso wichtig ist, kürzere Verbindungen zu den Daten, was wiederum eine schnellere Datenübertragung ermöglicht.

Während 3D-NAND-Flash in Bezug auf Speicherkapazität und Kosten pro Byte die richtige Wahl sein mag, hängt die effektive Nutzung von 3D-NAND-Flash-Speicher stark vom Flash-Speicher-Controller 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. Selbst dann wird die Wahl der richtigen Technologie immer noch durch den Anwendungsfall bestimmt.

Was zeichnet einen guten Controller aus?

Die grundsätzlichen Anforderungen an einen Controller wurden bereits kurz angerissen, doch wie bereits erwähnt, gibt es viele Unterschiede im Funktionsumfang und den Merkmalen von Controllern. Man kann Controller grundsätzlich in zwei Kategorien aufteilen: in DRAM-basierte und DRAM-less Controller. Für den Einsatz in industriellen Umgebungen oder Anwendungen, die absolute Datenzuverlässigkeit benötigen (beispielsweise medizintechnische Geräte oder Mobilfunkstationen) bieten sich DRAM-less Controller an. Zwar haben DRAM-basierte Systeme eine höhere Performance, doch wenn es um Zuverlässigkeit geht, sind DRAM-less Controller die bessere Alternative. So bieten sie zum Beispiel die Gewissheit, dass die Daten im Falle eines plötzlichen Stromausfalls wirklich auf dem Flash gespeichert wurden, da sie nicht im DRAM zwischengespeichert werden. Im Falle eines Controllers mit DRAM passiert es, dass Daten, die gerade im DRAM verarbeitet werden, verloren gehen, sobald dieser nicht mehr mit Strom versorgt wird. Des Weiteren ist weder beim Einkauf noch in dem Design ein weiteres Teil zu berücksichtigen, und somit ist auch eine Komponente weniger auf dem PCB, die ausfallen könnte oder eine fixe Bill of Material (BOM) verkomplizieren würde.

Doch damit hört es nicht auf – die Struktur von Flashs ist unterteilt in:

  • Planes
  • Blöcke
  • Pages
  • Zellen

Hierbei ist die kleinste Einheit, die zu beschreiben 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 dem Grund wird »Wear-Leveling« (WL) durch den Controller betrieben, um Daten so zuzuordnen, dass die Flash-Blöcke des Systems gleichmäßig nutzbar sind. Wear-Leveling wird im Hintergrund ausgeführt, wenn eine vordefinierte Anzahl von Schreib- und Löschvorgängen auf einzelnen Blöcken erreicht wird. Die Daten werden dann in einen anderen Block kopiert. Im Allgemeinen wählt der WL-Algorithmus zum Schreiben auf einen freien Block einen Block mit der niedrigsten Löschzahl aus einem Pool aller unbenutzten Blöcke des gesamten Geräts aus. Aueßrdem altern die Zellen mit der Zeit und verlieren ihren Ladungszustand – der Wert einer Zelle »kippt« und ein sogenannter Bit-flip passiert. 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 Flash-Controller beinhalten eine Art Auffrischungsalgorithmus, der erkennt, wenn die Daten alt und damit instabil werden, zum Beispiel durch Zeitstempel oder durch Aufzeichnung von Bitfehlerstatistiken. Günstigere Controller erkennen und überprüfen Daten nur, wenn sie gelesen werden, d.h. nur, wenn der Host einen Lesevorgang anfordert. Anspruchsvollere Controller planen Laufwerksscans aller Daten als weiteren Wartungsvorgang im Hintergrund. Auch das Lesen eines Blocks in 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 aktualisiert die umliegenden Daten bei Bedarf. Die Self-Monitoring, Analysis and Reporting Technology (SMART) 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 genau geschätzt werden, wenn die entsprechenden Daten aus dem Flash abgerufen werden können. 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 entsprechend implementiert. Mit dem Wissen über den jeweiligen Anwendungsfall, basierend auf den SMART-Daten, lässt sich zudem das Design entsprechend anpassen. Je nach Anforderung können Controller und Firmware in Hinblick auf Kosten, Leistung oder Zuverlässigkeit optimiert werden.

S9_SD_Flash_Controller
Hochwertige SD-Controller ermöglichen den Einsatz von NAND-Speichern in anspruchsvollen Anwendungsgebieten.
© Hyperstone

Gibt es diese Features für SD-Karten oder USB-Drives?

Gerade bei diesen ursprünglich auf billig getrimmten Produkten, gibt es ein ganzes Parallel-Universum, ein Ökosystem an Controllern, Firmware, Fertigungen und Speichermedien Anbietern, die sich primär auf Zuverlässigkeit und Langzeitverfügbarkeit fokussieren. Für Controller-Entwickler ist es durchaus eine Herausforderung, ein älteres Interface wie etwa CompactFlash oder SD 2.0 mit den aktuellen 3D Flashs zu unterstützen. Am besten, man hat schon beim Design den Anspruch viele weitere zukünftige Flash-Generationen zu berücksichtigen.

Kathrin Zinn
Katrin Zinn ist als Technical Marketing Managerin für das Produktmanagement der Hyperstone-Produkte verantwortlich - von der Markteinführung bis zum Ende der Lebensdauer. Dank ihrer Erfahrung im Vertrieb versteht sie die Bedürfnisse der Kunden, ihre Anforderungen und Anwendungsfälle über die verschiedenen Phasen des Produktlebenszyklus hinweg. Sie studierte »Economics and Politics of East Asia« an der Ruhr-Universität Bochum.
© Hyperstone

Mit dem Gedanken wurde auch der neue SD-Controller von Hyperstone, der »S9«, entwickelt, der mit der schlüsselfertigen Firmware sogar die Anforderungen anspruchsvoller 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 (Write Amplification) bei hoher Ausdauer – das Resultat: eine effiziente Nutzung von NAND-Flash und gerinte Ausfälle. Hyperstone ergänzt den Funktionsumfang mit dem Monitoring-Tool hySMART zur Zustandsüberwachung. Doch die Anforderungsliste an die einstmals billigen Karten geht weiter. Es werden heutzutage sensible Informationen auf SD- und µSD-Karten gespeichert, was zusätzliche Security Features erforderlich macht. Sie sind mithilfe eines Application Programming Interfaces (API) in der S9S-Version des Controllers implementierbar.

Es gibt viele Alternativen für Speichersysteme und Controller, sowohl in Bezug auf die Schnittstellenoptionen als auch auf die Qualitätsstufen. Um ein ausgewogenes Design zu erhalten, das die Abwägung zwischen Performance und Zuverlässigkeit und ebenfalls Kosten und Nutzen berücksichtigt, ist viel Aufwand erforderlich. Hyperstone steht hier mit Turn-key-Applikationen zur Seite. Das Angebot reicht von Controllern bis hin zu Komplettlösungen, wie µSD-Karten mit Firmware-Anpassungen für Spezialanwendungen. Ist das Speichersystem für Ihre Anwendung lebenswichtig, enthält sensible Daten oder würde ein Ausfall zu kostspieligen Downtimes führen, müssen Entwickler Ihren Controller und die Speichertechnologie sorgfältig auswählen.


Das könnte Sie auch interessieren

Verwandte Artikel

HYPERSTONE GmbH

TWO Embedded Computing 22