NAND-Flash
NAND-Flash bezeichnet einen Typ von Flash-Speicher, der in der sogenannten NAND-Technik gefertigt ist. Hierbei sind die Einzel-Speicherzellen (Floating-Gate-Transistoren oder Charge-Trapping-Speicherzellen) seriell verschaltet, was an die serielle Anordnung der Transistoren in einem NMOS-NAND-Gatter erinnert. NAND-Flash-Speicher haben eine hohe Verbreitung erfahren und werden zum Beispiel in SD-Karten und in Solid-State-Drives verwendet.
Aufbau
Beim NAND-Flash werden wie bei allen Flash-Speichern die Informationen (Bits) in einer Speichereinheit (Speicherzelle) in Form von elektrischen Ladungen auf einem Floating-Gate oder in einem Charge-Trapping-Speicherelement gespeichert. Anders als beim NOR-Flash in dem die Speicherzellen über Datenleitungen parallel geschaltet sind, sind die Speicherzellen beim NAND-Flash in größeren Gruppen hintereinander geschaltet (Reihenschaltung). Dies spart Datenleitungen ein. Der Platzbedarf für eine Flash-Speicherzelle in NAND-Technik beträgt laut Toshiba nur etwa 2/5 der Fläche, die für eine Speicherzelle in NOR-Technik erforderlich ist[1].
NAND-Flashs arbeiten grundsätzlich page- und blockorientiert. Eine Page besteht aus einer Zusammenfassung von mindestens 512 Bytes an Speicherzellen. Im Zuge der Miniaturisierung der Transistoren und damit einhergehenden Erhöhung der Speicherdichte wurde die Page Größe aber bis 2005 auf zunächst 2048 Bytes erhöht[2]. Bis 2022 wurde die Page-Größe sukzessive auf bis zu 16 kB vergrößert[3]. Mehrere Pages sind zu einem Block gruppiert. Die Größe der Blöcke lag bei kleineren Speichergrößen bei 16 kB und ist inzwischen bei größeren Speicherbausteinen auf 2 bis 20 MiB angewachsen[4].
Pages können nur einmal beschrieben werden; weitere Schreibvorgänge sind erst nach einem erneuten Löschen möglich. Aufgrund der Gruppierung ist ein Löschen einer Page jedoch nur über ein Löschen des Blocks möglich, in dem sie liegt. Wie bei Flash-Speichern üblich, können die Bits in den Bytes nur von 1 nach 0 gekippt werden. Der umgekehrte Weg ist nur über einen Löschvorgang zu erreichen.[5]
Bei NAND-Flashs ist es üblich, dass bereits zum Zeitpunkt der Auslieferung defekte Blöcke, Bad Blocks, vorhanden sind. Diese werden bereits vom Hersteller durch spezielle Tests detektiert und als defekt markiert. Später müssen sie von der Treibersoftware berücksichtigt werden. Garantiert ist von den meisten NAND-Flash-Herstellern, dass der erste Block eines Speicherbausteins für eine bestimmte Anzahl von Schreibvorgängen fehlerfrei ist.[6] Dies ermöglicht die robuste Speicherung wichtiger, sich permanent ändernder Initialdaten, sowie der „Bad-Block-Tabelle“.[7]
Bei NAND-Flashspeichern besitzt jede Page fix zugeordnet eine Spare Page. Diese war bei kleineren Bausteinen 16 Byte lang, bei größeren Bausteinen 64 Bytes. Darin werden unter anderem vom Hersteller Bad-Block-Markierungen abgelegt oder bei fehlerfreien Blöcken Korrekturdaten für eine Vorwärtsfehlerkorrektur (FEC), um mögliche Lesefehler korrigieren zu können.[8]
Die Spare Pages sind mit den Nutzdaten-Pages fest gekoppelt: Wird eine Page, in diesem Fall ein ganzer Block, gelöscht, werden dabei ebenfalls die zugehörigen Spare Pages gelöscht. In der Praxis bedeutet dies, dass als defekt markierte Blöcke keinesfalls gelöscht (formatiert) werden dürfen, da dadurch die Fehlerinformation über Bad Blocks verloren geht.[9]
Bei NAND-Flashs können auch während des Betriebs Bitfehler auftreten, die durch geeignete Fehlerkorrekturverfahren erkannt und behandelt werden müssen[10]. Blöcke mit derartigen Laufzeitfehlern müssen gegebenenfalls vom NAND-Flashcontroller oder dem Software-Treibersystem zu der Liste der Bad Blocks hinzugefügt werden. Der Teil, der zur Verwaltung der Bad Blocks verantwortlich ist, wird als Bad Block Management System bezeichnet[9].
Arten von NAND-Speicher
In einer NAND-Flashzelle kann im Rahmen des Floating Gate die Datenspeicherung mit einer unterschiedlichen Anzahl von Spannungsniveaus erfolgen. Mit zwei verschiedenen Spannungsniveaus pro Zelle kann ein Bit pro Zelle gespeichert werden, diese NAND-Zellen werden auch als SLC-Speicherzelle bezeichnet. Werden vier verschiedene Spannungsniveaus verwendet, können damit zwei Bit pro Zelle gespeichert werden, wie es bei den MLC-Speicherzellen der Fall ist. Mit acht Spannungsniveaus lassen sich drei Bit pro NAND-Zelle speichern, TLC-Speicherzellen genannt; Speicherzellen mit 16 Niveaus, passend für vier Bit, heißen QLC-Speicherzellen.
Der Vorteil der SLC-Speicherzellen ist eine höhere Anzahl von Schreib-/Lesezyklen und größere Robustheit, da beim Auslesevorgang nur zwei Spannungswerte unterschieden werden müssen.
Der Vorteil der MLC- und erst recht der TLC- und QLC-Speicherzellen ist eine effizientere Ausnutzung der Chipfläche und höhere Speicherdichte. Nachteilig sind an diesen Speicherzellentypen die längeren Zugriffszeiten und die reduzierte Anzahl von möglichen Schreib-/Lesezyklen bis zum Ausfall. Diese Reduktion folgt aus dem Umstand, dass durch den Einsatz von vier oder mehr Spannungsebenen die Unterscheidung zwischen den einzelnen Spannungen schwieriger und mit größeren Fehlerwahrscheinlichkeiten behaftet ist.
Wegen zunehmender Probleme mit der Strukturverkleinerung kommen seit 2013 zunehmend 3D-V-NAND-Zellen zum Einsatz. Im Gegensatz zur konventionellen Planartechnik stehen nun die Transistoren vertikal zur Chipfläche und sind zudem in mehreren Ebenen angeordnet (siehe auch Charge-Trapping-Speicher). In Konkurrenz dazu haben Intel und Micron zusätzlich die Speichertechnologie 3D XPoint entwickelt.
Schnittstelle
Der Zugriff auf NAND-Speicher findet üblicherweise über einen gemultiplexten Adress-/Datenbus mit einer Breite von 8 Bit statt. Das verwendete Protokoll ist kommandobasiert. Aufgrund der verwendeten Bus-Schnittstelle ist ein verhältnismäßig großer Softwareaufwand zur Ansteuerung erforderlich bzw. in Hardware als IP-Core sind entsprechende NAND-Flash-Controller für die Zugriffssteuerung notwendig.[11]
Das Booten eines Systems mit Code aus einem NAND-Speicher ist nur mit zusätzlicher Hardware in Form eines NAND-Flash-Controllers möglich. Ein herkömmlicher Prozessor mit Adress-/Datenbus kann diese Speicher nicht direkt adressieren. Bei NOR-Flashes ist dies hingegen möglich, Firmware wird daher üblicherweise in NOR-Speichern abgelegt.
Einsatzbereiche
NAND-Flashes sind überwiegend für große Speichermengen geeignet; neben den eingangs erwähnten Solid-State-Drives (SSD) und SD-Karten finden sie Verwendung in USB-Sticks, anderen Flash-Speicherkarten (z. B. CF-Karten, eMMCs), manchen eingebetteten Systemen sowie in praktisch allen MP3-Playern und Smartphoneen.
Vorteile
- Geringer Preis pro Megabyte
- Hohe Schreib- und Lesegeschwindigkeiten bei großen Datenmengen
- Niedrigere Leistungsaufnahme beim Schreiben
- NAND-Flashes sind mit hohen Speicherkapazitäten erhältlich
- Die geringe Anzahl von erforderlichen Signalleitungen ermöglicht eine (hardwareseitig) kostengünstige Ankoppelung an Controllersysteme
- Die kommandobasierte Bus-Schnittstelle ermöglicht, Chips mit größerer Speicherkapazität einzusetzen, ohne das Schaltungsdesign zu ändern
Nachteile
- Verglichen mit NOR-Speichern ist ein gewisser Softwareaufwand erforderlich, um NAND-Speicher korrekt anzusteuern
- Aufgrund der verwendeten Zugriffsart können NAND-Speicher nicht direkt als Programmspeicher für Mikrocontroller eingesetzt werden (diese benötigen einen linear adressierbaren Speicher mit wahlfreiem Zugriff)
- Zur Anbindung an herkömmliche Controllersysteme ist eine Glue Logic erforderlich.
- 100.000 bis 1.000.000 Schreib-Lösch-Zyklen pro Zelle bei SLC, danach ist die Speicherzelle nicht mehr nutzbar.
- 3.000 bis 10.000 Schreib-Lösch-Zyklen pro Zelle bei MLC, danach ist die Speicherzelle nicht mehr nutzbar.
- ca. 1000 Schreib-Lösch-Zyklen pro Zelle bei TLC, danach ist die Speicherzelle nicht mehr nutzbar.
Hersteller
Es gibt vier Produzenten entsprechender Chips: Samsung (Sparte „Samsung Semiconductor“), Toshiba, IM Flash Technologies (ein Joint Venture von Micron Technology und Intel) sowie Hynix in Kooperation mit Numonyx. Marktführender Hersteller ist die koreanische Firma Samsung, gefolgt von Toshiba, welche zusammen den Großteil aller Chips produzieren.[12]
Hersteller | Marktanteil Q1 2016 | Marktanteil Q2 2016 | Marktanteil Q3 2016 | Marktanteil Q4 2016 |
---|---|---|---|---|
Samsung | 34,2 % | 36,3 % | 36,6 % | 37,1 % |
Toshiba | 23,6 % | 20,1 % | 19,8 % | 18,3 % |
Western Digital (SanDisk) | 14,8 % | 16,1 % | 17,1 % | 17,7 % |
Micron Technology | 13,0 % | 10,6 % | 9,8 % | 10,6 % |
SK Hynix | 7,7 % | 10,3 % | 10,4 % | 9,6 % |
Intel | 6,7 % | 6,5 % | 6,3 % | 6,8 % |
Einzelnachweise
- ↑ Flash Memory Lifespan and Reliability. (PDF) Curtiss-Wright, 2020, abgerufen am 29. Juni 2022 (englisch).
- ↑ TN-29-07: Small-Block vs. Large-Block NAND Flash Devices Introduction. (PDF) Micron, 2005, abgerufen am 29. Juni 2022 (englisch).
- ↑ Ted Pekny et al.: A 1-Tb Density 4b/Cell 3D-NAND Flash on 176-Tier Technology with 4-Independent Planes for Read using CMOS-Under-the-Array. In: IEEE International Solid-State Circuits Conference (ISSCC). 2022, S. 1–3, doi:10.1109/ISSCC42614.2022.9731691.
- ↑ AN2104en FTL types: block based vs. page based mapping. (PDF) Swissbit, 2022, abgerufen am 28. Juni 2022 (englisch).
- ↑ Peter Desnoyers: Empirical evaluation of NAND flash memory performance. In: ACM SIGOPS Operating Systems Review. Band 44, Nr. 1, 2010, S. 50–54, doi:10.1145/1740390.1740402 (englisch).
- ↑ Kelly Hirsch: Programming NAND devices. (PDF) Data I/O Corporation, abgerufen am 29. Juni 2022 (englisch).
- ↑ STMicroelectronics (Hrsg.): Bad block management in Single Level Cell NAND Flash memories. Application Note AN1819, 2007 (PDF – Firmenschrift, englisch).
- ↑ S. Narkish Hashma, S. Saranya Devi: An Efficient Decoding Architecture with Improved Error Correcting Technique for NAND Flash Memory. In: International Journal of Scientific Engineering and Technology Research. Band 4, Nr. 1, Januar 2015, S. 130–134 (englisch, ijsetr.com [PDF]).
- ↑ a b TN-29-59: Bad Block Management in NAND Flash Memory Introduction. (PDF) Micron, abgerufen am 29. Juni 2022 (englisch).
- ↑ What Types of ECC Should Be Used on Flash Memory? (PDF) (Nicht mehr online verfügbar.) Spansion, 2011, archiviert vom Original am 4. März 2016; abgerufen am 29. August 2022 (englisch).
- ↑ Micron: NAND Flash Controller via Xilinx Spartan-3 FPGA, Application Note TN-29-06. 2005 (PDF – Firmenschrift, englisch).
- ↑ heise online: Kräftige Umsatzzuwächse bei DRAM- und NAND-Flash-Speicherchips. In: heise online. 3. Februar 2010, abgerufen am 15. Juni 2014.