Controller für die Optimierung von Flash

Wie NAND-Flash-Speicher funktioniert

26. Februar 2018, 12:04 Uhr | Von Damien Col, Technical Marketing Manager bei Hyperstone
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Multi-Level-Zellen

Wie bereits erwähnt, speichert jede Zelle einen einzelnen Binärwert: 0 oder 1. Es ist auch möglich, variierende Ladungsmengen in das Floating Gate einzubringen, sodass die Zelle mehrere Werte darstellen kann. Eine Multi-Level-Zelle (MLC) kann z.B. vier verschiedene Werte speichern, um zwei Bits darzustellen. Ähnlich verwendet eine Triple-Level-Zelle (TLC) acht verschiedene Werte, um drei Bits pro Zelle zu speichern. Dadurch lassen sich mehr Daten in einem Array speichern, was die Kosten pro Bit verringert. Allerdings verschlechtert sich dabei die Leistungsfähigkeit, weil die Programmier- und Lesespannungen genauer gesteuert werden müssen. Aus dem gleichen Grund ist MLC-Flash-Speicher anfälliger für Fehler.

3D-Flash

3D-Flash-Speicher ist eine Neuentwicklung, um die Speicherdichte weiter zu erhöhen und die Kosten pro Bit zu verringern. Die Speicherstruktur wird in drei Dimensionen und nicht nur auf der Oberfläche des Chips aufgebaut. Die Ketten von Flash-Zellen sind vertikal im Chip aufgebaut, sodass sich viel mehr Bits in die gleiche Oberfläche packen lassen. 3D-Flash bringt einige Herausforderungen mit sich, kommt aber bereits zum Einsatz, wenn hohe Speicherkapazitäten erforderlich sind.

Flash-Controller

Der Flash-Controller stellt die Schnittstelle zwischen dem Host-System und dem Flash-Speicher dar. Er bietet eine Reihe von Funktionen, darunter die Zuordnung (Mapping) der vom Host bereitgestellten Adressen zu Speicherorten im Flash-Speicher. Der Flash-Con­troller muss auch die typischen Mängel der Flash-Technologie bewältigen.

HYPERSTONE
Bild 2: Aufbau eines Flash-Arrays
© HYPERSTONE

Fehlererkennung und -korrektur

Weil Fehler in den Daten auftreten können, die von einem Flash-Array gelesen werden, fügt der Flash-Controller zusätzliche Bits hinzu, die einen Fehlerkorrekturcode (ECC; Error Correcting Code) enthalten, wenn Daten in den Flash-Speicher geschrieben werden. Der ECC wird beim Lesen der Daten überprüft, wodurch sich Einzelbitfehler korrigieren und Mehrbitfehler erkennen lassen.

Inhärente Schwächen der Flash-Technologie

Ein Problem bei Flash-Speichern ist, dass nur eine begrenzte Anzahl von Schreib-Lösch-Zyklen möglich ist. Die verwendeten hohen Spannungen verursachen eine kleine Beschädigung der Zellen, was dazu führt, dass sie mit der Zeit schwerer zu programmieren und zu löschen sind. Eine Schädigung der isolierenden Schichten rund um das Floating Gate verringert auch die Zeitdauer zur Speicherung der Daten (Datenerhalt). Dies begrenzt die nutzbare Lebensdauer von Flash-Speicher auf etwa 100.000 Zyklen – oder noch weniger im Fall von MLC-Flash.

Die Lebensdauer eines Flash-Arrays lässt sich verlängern, indem sichergestellt wird, dass die Anzahl der Schreib-Lösch-Zyklen für alle Blöcke gleich ist – ein Vorgang, der Wear-Leveling genannt wird. Dazu muss der Flash-Controller verfolgen, welche Blöcke verwendet wurden, und den besten Block zum Verschieben von Daten auswählen, sobald neue Daten geschrieben werden.

Die Spannungen, die zum Programmieren und Lesen von Zellen verwendet werden, können dazu führen, dass die Ladung, die in benachbarten Zellen gespeichert ist, sich geringfügig ändert. Dies führt schließlich zu Fehlern, wenn Daten gelesen werden. Dieser vorübergehende Effekt wird beim nächsten Schreiben von Daten in diese Zellen korrigiert. Der Flash-Con­troller kann den Inhalt von Zellen aktualisieren, um Datenverluste zu vermeiden – entweder regelmäßig oder wenn zu viele Fehler erkannt werden.

Wie bei jedem Speicher gibt es eine kleine Anzahl von Blöcken, die wegen Fertigungstoleranzen oder Fehlern nicht richtig funktionieren. Zudem gibt es Blöcke, die im Laufe der Zeit versagen. Diese lassen sich erkennen, sobald ECC-Fehler beim Schreiben neuer Daten nicht korrigiert werden. Der Controller muss diese fehlerhaften Blöcke verfolgen und die Art und Weise ändern, in der Daten dem Array zugeordnet werden. Somit wird die Verwendung fehlerhafter Blöcke vermieden.

Der Controller verwaltet den Datenspeicher und verbirgt diese inhärenten Mängel der NAND-Flash-Technologie vom Host-System. Damit erhöht sich die Leistungsfähigkeit und Lebensdauer des Flash-Speichers, damit dieser sich ideal für Massenspeicher eignet, bei denen es auf hohe Zuverlässigkeit ankommt.


  1. Wie NAND-Flash-Speicher funktioniert
  2. Multi-Level-Zellen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu HYPERSTONE GmbH