NAND-Flash bezeichnet einen Typ von Flash-Speicher, welcher in NAND-Technologie gefertigt ist.
Inhaltsverzeichnis |
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 512 Bytes bei kleineren Speichergrössen oder 2048 Bytes bei grösseren NAND-Flashbausteinen. Mehrere Pages sind zu einem Block gruppiert. Die Größe von Blöcken liegt bei kleineren Speichergrössen üblicherweise bei 16KB[1], bei grösseren Bausteinen beträgt die Blockgrösse 128KB.
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 Blockes möglich, in welchem 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 Speicherbaustein 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 andere Daten in ihren jeweiligen Adresspositionen variabel gehalten werden müssen [2].
Bei NAND-Flashspeichern besitzt jede Page fix zugeordnet eine Spare Page. Diese ist bei kleineren Bausteinen üblicherweise 16 Byte lang, bei grösseren 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üfen, 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 Extremremperaturen 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, welche 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, welcher zur Verwaltung der Bad Blocks verantwortlich ist, wird als Bad Block Management System bezeichnet.
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 [3].
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.
NAND-Flashes sind überwiegend für große Speichermengen ausgelegt; sie finden Verwendung in USB-Sticks, Flash-Speicherkarten (z. B. CF- und SD-Karten) sowie in praktisch allen auf Halbleiterspeicher basierenden MP3-Playern.