NAND- vs. NOR-Flash: Unterschiede und Einsatzgebiete
Beide sind nichtflüchtige Flash-Speicher, aber sie sind unterschiedlich verschaltet. NOR-Flash schaltet seine Zellen parallel, bietet daher schnelle wahlfreie Lesezugriffe und kann Code direkt ausführen, ist aber pro Bit teuer. NAND-Flash schaltet seine Zellen in Reihe, packt dadurch weit mehr Bits auf dieselbe Fläche und ist günstig, liest und schreibt aber seitenweise und braucht eine Fehlerkorrektur. Deshalb speichert NAND Ihre Daten und NOR die Firmware.
| Aspekt | NAND-Flash | NOR-Flash |
|---|---|---|
| Zellverschaltung | Die Zellen sind in Strings in Reihe geschaltet, mit Select-Transistoren an beiden Enden | Die Zellen sind parallel an die Bitleitung angeschlossen, sodass jede Zelle direkt angesprochen werden kann |
| Lesezugriff | Lesen seitenweise (mehrere KB auf einmal). Der erste Zugriff dauert einige zehn Mikrosekunden, wahlfreies Lesen ist daher langsam | Schneller wahlfreier Zugriff auf Byte- oder Wortebene, im Bereich von einigen zehn Nanosekunden |
| Schreiben (Programmieren) | Programmierung seitenweise; hoher Durchsatz bei sequenziellem Schreiben | Programmierung in kleinen Einheiten; bei großen Datenmengen langsamer |
| Löscheinheit | Block (einige MB oder mehr) | Sektor (typischerweise 64 bis 128 KB) |
| Programmiermechanismus | Fowler-Nordheim-Tunneln sowohl zum Programmieren als auch zum Löschen | Channel-Hot-Electron-Injektion zum Programmieren, Tunneln zum Löschen |
| Dichte und Kosten pro Bit | Hohe Dichte und niedrige Kosten; 3D-NAND stapelt Hunderte von Schichten, und TLC/QLC speichern 3 bis 4 Bit pro Zelle | Geringere Dichte (meist bis zu einigen Gigabit pro Chip) und höhere Kosten pro Bit |
| Direkte Codeausführung (XIP) | Nein. Code muss zuerst in den RAM kopiert werden | Ja. Ein Prozessor kann Code direkt vom Chip ausführen |
| Zuverlässigkeit | Defekte Blöcke und Bitfehler sind normal, daher sind starke ECC, Bad-Block-Management und Wear Leveling nötig | Wenige Bitfehler, daher genügt eine leichte Fehlerkorrektur |
| Lebensdauer (Endurance) | Von etwa 100.000 Programmier-/Löschzyklen (SLC) bis hinunter zu rund 1.000 oder weniger (QLC) | Typischerweise etwa 100.000 Programmier-/Löschzyklen |
| Typische Einsatzgebiete | SSDs, USB-Sticks, Speicherkarten, Smartphone-Speicher (eMMC, UFS) | Boot-Code und Firmware: BIOS/UEFI-Chips, Mikrocontroller-Code, Automotive- und Industriegeräte |
Die Zahlenangaben sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.