NAND-Flash

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

NAND-Flash bezeichnet einen Typ von Flash-Speicher, der in der sogenannten NAND-Technik gefertigt ist. Der Ausdruck „NAND-Technik“ bezieht sich dabei auf die serielle Anordnung der einzelnen Speicherzellen: Diese bestehen aus speziellen MOS-FETs, die wie bei einem NAND-Gatter verschaltet sind.

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.[1]

Aufbau[Bearbeiten]

Aufbau und Struktur einer NAND-Zelle. Die einzelnen MOSFETs einer Zelle liegen in unterschiedlichen Pages innerhalb eines Blockes.

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.

NAND-Flashes arbeiten grundsätzlich page- und blockorientiert. Eine Page besteht aus einer Zusammenfassung von mindestens 512 Bytes, diese wurde aber im Zuge der Miniaturisierung der Transistoren und damit einhergehenden Erhöhung der Speicherdichte auf 4096 Bytes bis 8192 Bytes vergrößert. 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 128 Pages (512 kB bei 4 kB Pagegröße) bis 256 Pages (2048 kB bei 8 kB Pagegröße) angewachsen.[2]

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.

Bei NAND-Flashes ist es üblich, dass einige Defektblöcke, die so genannten Bad Blocks, bereits zum Zeitpunkt der Auslieferung 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. Dies ermöglicht die Speicherung wichtiger Initialdaten wie eine „Bad-Block-Tabelle“ an fixer Adresse, während alle anderen Daten in ihren jeweiligen Adresspositionen variabel gehalten werden müssen.[3]

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 im regulären Betrieb bei fehlerfreien Blöcken Korrekturdaten für eine Vorwärtsfehlerkorrektur (FEC), um mögliche Lesefehler korrigieren zu können. Die Spare Pages sind mit den Nutzdaten-Pages fest gekoppelt: Wird eine Page (d. h. ein 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. Aus diesem Umstand heraus können NAND-Flash-Bausteine auch nicht mittels eines Kommandos komplett gelöscht werden, sondern müssen blockweise in Einzelschritten, unter Ausnahme der als defekt markierten Blöcke, gelöscht werden.

Die initialen Bad Blocks werden durch den Hersteller im Rahmen von Extremtests, wie Extremtemperaturen und variable Zugriffsgeschwindigkeiten im Grenzbereich, ermittelt. Unter normalen Einsatzbedingungen wie bei Zimmertemperatur, müssen diese Bad Blocks nicht grundsätzlich fehlerhaft arbeiten.

Bei NAND-Flashes können auch während des Betriebs Bitfehler auftreten, die durch geeignete Fehlerkorrekturverfahren erkannt und behandelt werden müssen. Blöcke mit derartigen Laufzeitfehlern müssen ebenfalls 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.

Arten[Bearbeiten]

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 dies bei den MLC-Speicherzellen der Fall ist. Mit acht verschiedenen Spannungsniveaus lassen sich drei Bit pro NAND-Zelle speichern.

Der Vorteil der SLC-Speicherzellen ist eine höhere Anzahl von Schreib-/Lesezyklen und größere Robustheit, da bei dem Auslesevorgang nur zwei Spannungswerte unterschieden werden müssen.

Der Vorteil der MLC-Speicherzellen ist eine effizientere Ausnutzung der Chipfläche und höhere Speicherdichte. Nachteilig sind an den MLC-Speicherzellen die längeren Zugriffszeiten und die reduzierte Anzahl von Schreib-/Lesezyklen. 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.

Schnittstelle[Bearbeiten]

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.[4]

Zudem ist insbesondere das Booten eines Systems 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 kein Problem, die Firmware eines Computers wird daher üblicherweise in NOR-Speichern abgelegt. In NAND-Speichern werden die Daten über ein Dateisystem mit Bad Block Management System abgelegt.

Einsatzbereiche[Bearbeiten]

NAND-Flashes sind überwiegend für große Speichermengen ausgelegt; sie finden Verwendung in USB-Sticks, Flash-Speicherkarten (z. B. CF- und SD-Karten), SSDs sowie in praktisch allen auf Halbleiterspeicher basierenden MP3-Playern.

Vorteile[Bearbeiten]

  • Sehr geringer Preis pro Megabyte
  • Hohe Schreib- und Lesegeschwindigkeiten bei großen Datenmengen
  • Niedrigere Leistungsaufnahme während der Programmierung
  • 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[Bearbeiten]

  • Verglichen mit NOR-Speichern ist ein nicht unerheblicher 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 bei SLC, danach ist der Speicher nicht mehr nutzbar.
  • 3.000 bis 10.000 Schreib-Lösch-Zyklen bei MLC, danach ist der Speicher nicht mehr nutzbar.

Einzelnachweise[Bearbeiten]

  1. heise online: Kräftige Umsatzzuwächse bei DRAM- und NAND-Flash-Speicherchips. In: heise online. 3. Februar 2010, abgerufen am 15. Juni 2014.
  2. Anand Lal Shimpi: Intel & Micron Announce 25 nm NAND Flash Production, SSDs to get Bigger/Cheaper in Q4. 30. Januar 2010, abgerufen am 15. Juni 2014.
  3.  STMicroelectronics (Hrsg.): Bad block management in Single Level Cell NAND Flash memories. Application Note AN1819, 2007 (Firmenschrift, englisch, http://www.kompak.ru/knowledge/file/flash/usb/10119.pdf PDF).
  4.  Micron: NAND Flash Controller via Xilinx Spartan-3 FPGA, Application Note TN-29-06. 2005 (Firmenschrift, englisch, PDF).