Flash-Speicher
Computerspeicher und Datenspeicherarten ⓘ |
---|
Flüchtig |
Nichtflüchtiger Speicher |
Flash-Speicher ist ein elektronisches, nicht flüchtiges Speichermedium für Computer, das elektrisch gelöscht und neu programmiert werden kann. Die beiden Haupttypen von Flash-Speichern, NOR-Flash und NAND-Flash, sind nach den NOR- und NAND-Logikgattern benannt. Beide verwenden das gleiche Zellendesign, das aus MOSFETs mit schwebendem Gate besteht. Sie unterscheiden sich auf Schaltungsebene darin, ob der Zustand der Bitleitung oder der Wortleitungen hoch- oder niedriggezogen wird: Bei NAND-Flash ähnelt die Beziehung zwischen der Bitleitung und den Wortleitungen einem NAND-Gatter; bei NOR-Flash ähnelt sie einem NOR-Gatter. ⓘ
Flash-Speicher, eine Art von Floating-Gate-Speicher, wurde 1980 bei Toshiba erfunden und basiert auf der EEPROM-Technologie. Toshiba begann 1987 mit der Vermarktung von Flash-Speicher. EPROMs mussten vollständig gelöscht werden, bevor sie wieder beschrieben werden konnten. NAND-Flash-Speicher hingegen können in Blöcken (oder Seiten) gelöscht, beschrieben und gelesen werden, die im Allgemeinen viel kleiner sind als das gesamte Gerät. Bei NOR-Flash-Speichern kann ein einzelnes Maschinenwort unabhängig geschrieben - an eine gelöschte Stelle - oder gelesen werden. Ein Flash-Speicherbaustein besteht in der Regel aus einem oder mehreren Flash-Speicherchips (die jeweils viele Flash-Speicherzellen enthalten) und einem separaten Flash-Speicher-Controller-Chip. ⓘ
Der NAND-Typ wird hauptsächlich in Speicherkarten, USB-Flash-Laufwerken, Solid-State-Laufwerken (die seit 2009 hergestellt werden), Mobiltelefonen, Smartphones und ähnlichen Produkten für die allgemeine Speicherung und Übertragung von Daten verwendet. NAND- oder NOR-Flash-Speicher werden auch häufig für die Speicherung von Konfigurationsdaten in zahlreichen digitalen Produkten verwendet, eine Aufgabe, die früher durch EEPROM oder batteriebetriebenen statischen RAM ermöglicht wurde. Ein wesentlicher Nachteil des Flash-Speichers ist, dass er nur eine relativ geringe Anzahl von Schreibzyklen in einem bestimmten Block aushalten kann. ⓘ
Flash-Speicher werden in Computern, PDAs, digitalen Audio-Playern, Digitalkameras, Mobiltelefonen, Synthesizern, Videospielen, wissenschaftlichen Instrumenten, Industrierobotern und in der medizinischen Elektronik eingesetzt. Flash-Speicher hat eine schnelle Lesezugriffszeit, ist aber nicht so schnell wie statischer RAM oder ROM. In tragbaren Geräten wird er wegen seiner mechanischen Stoßfestigkeit den Festplatten vorgezogen. ⓘ
Da die Löschzyklen langsam sind, bieten die großen Blöcke, die beim Löschen von Flash-Speicher verwendet werden, einen erheblichen Geschwindigkeitsvorteil gegenüber EEPROM ohne Flash-Speicher beim Schreiben großer Datenmengen. Ab 2019 kostet Flash-Speicher viel weniger als byteprogrammierbarer EEPROM und wurde zum vorherrschenden Speichertyp, wenn ein System eine erhebliche Menge an nichtflüchtigem Festkörperspeicher benötigt. EEPROMs werden jedoch immer noch in Anwendungen verwendet, die nur geringe Mengen an Speicherplatz benötigen, wie z. B. bei der seriellen Anwesenheitserkennung. ⓘ
Bei Flash-Speichergehäusen können durch Stapeln von Chips mit Durchkontaktierungen durch das Silizium und mehreren Dutzend Schichten von 3D-TLC-NAND-Zellen (pro Chip) gleichzeitig Kapazitäten von bis zu 1 Tebibyte pro Gehäuse erreicht werden, wobei 16 gestapelte Chips und ein integrierter Flash-Controller als separater Chip im Gehäuse verwendet werden. ⓘ
Geschichte
Hintergrund
Die Ursprünge des Flash-Speichers lassen sich bis zur Entwicklung des Floating-Gate-MOSFET (FGMOS), auch bekannt als Floating-Gate-Transistor, zurückverfolgen. Der ursprüngliche MOSFET (Metall-Oxid-Halbleiter-Feldeffekttransistor), auch bekannt als MOS-Transistor, wurde 1959 von dem ägyptischen Ingenieur Mohamed M. Atalla und dem koreanischen Ingenieur Dawon Kahng in den Bell Labs erfunden. Kahng entwickelte 1967 zusammen mit dem chinesischen Ingenieur Simon Min Sze in den Bell Labs eine Variante, den Floating-Gate-MOSFET. Sie schlugen vor, ihn als Floating-Gate-Speicherzellen für die Speicherung einer Art von programmierbarem Festwertspeicher (PROM) zu verwenden, der sowohl nichtflüchtig als auch reprogrammierbar ist. ⓘ
Zu den frühen Typen von Floating-Gate-Speichern gehörten in den 1970er Jahren EPROM (löschbares PROM) und EEPROM (elektrisch löschbares PROM). Die frühen Floating-Gate-Speicher erforderten jedoch, dass die Ingenieure für jedes Datenbit eine eigene Speicherzelle bauen mussten, was sich als umständlich, langsam und teuer erwies und dazu führte, dass Floating-Gate-Speicher in den 1970er Jahren nur in Nischenanwendungen zum Einsatz kamen, z. B. in militärischen Geräten und den ersten experimentellen Mobiltelefonen. ⓘ
Erfindung und Kommerzialisierung
Als Fujio Masuoka für Toshiba arbeitete, schlug er einen neuen Typ von Floating-Gate-Speicher vor, mit dem ganze Speicherabschnitte schnell und einfach gelöscht werden konnten, indem eine Spannung an einen einzigen Draht angelegt wurde, der mit einer Gruppe von Zellen verbunden war. Dies führte zur Erfindung des Flash-Speichers durch Masuoka bei Toshiba im Jahr 1980. Nach Angaben von Toshiba wurde der Name "Flash" von Masuokas Kollegen Shōji Ariizumi vorgeschlagen, weil ihn der Löschvorgang des Speicherinhalts an den Blitz einer Kamera erinnerte. Masuoka und seine Kollegen präsentierten 1984 die Erfindung des NOR-Flash-Speichers und später des NAND-Flash-Speichers auf dem IEEE 1987 International Electron Devices Meeting (IEDM) in San Francisco. ⓘ
Toshiba brachte 1987 NAND-Flash-Speicher auf den Markt. Die Intel Corporation stellte 1988 den ersten kommerziellen Flash-Chip vom Typ NOR vor. NOR-basierter Flash-Speicher hat lange Lösch- und Schreibzeiten, bietet aber vollständige Adress- und Datenbusse, die einen wahlfreien Zugriff auf jeden Speicherplatz ermöglichen. Dies macht ihn zu einem geeigneten Ersatz für ältere Nur-Lese-Speicherchips (ROM), die zum Speichern von Programmcode verwendet werden, der nur selten aktualisiert werden muss, wie z. B. das BIOS eines Computers oder die Firmware von Set-Top-Boxen. Die Lebensdauer kann von nur 100 Löschzyklen für einen On-Chip-Flash-Speicher bis zu 10.000 oder 100.000 Löschzyklen und bis zu 1.000.000 Löschzyklen betragen. NOR-basierter Flash-Speicher war die Grundlage früher Flash-basierter Wechseldatenträger; CompactFlash basierte ursprünglich darauf, obwohl spätere Karten auf preiswerteren NAND-Flash-Speicher umgestellt wurden. ⓘ
NAND-Flash hat kürzere Lösch- und Schreibzeiten und benötigt weniger Chipfläche pro Zelle, was eine höhere Speicherdichte und niedrigere Kosten pro Bit als NOR-Flash ermöglicht. Die E/A-Schnittstelle von NAND-Flash verfügt jedoch nicht über einen externen Adressbus mit wahlfreiem Zugriff. Stattdessen müssen die Daten blockweise gelesen werden, wobei die typischen Blockgrößen Hunderte bis Tausende von Bits betragen. Dies macht NAND-Flash als Ersatz für Programm-ROM ungeeignet, da die meisten Mikroprozessoren und Mikrocontroller einen zufälligen Zugriff auf Byte-Ebene benötigen. In dieser Hinsicht ähnelt NAND-Flash anderen sekundären Datenspeichern wie Festplatten und optischen Medien und eignet sich daher hervorragend für den Einsatz in Massenspeichergeräten wie Speicherkarten und Solid-State-Laufwerken (SSD). Flash-Speicherkarten und SSDs speichern Daten mit mehreren NAND-Flash-Speicherchips. ⓘ
Das erste NAND-basierte Wechselspeicherkartenformat war SmartMedia, das 1995 auf den Markt kam. Viele andere folgten, darunter MultiMediaCard, Secure Digital, Memory Stick und xD-Picture Card. ⓘ
Spätere Entwicklungen
Eine neue Generation von Speicherkartenformaten, darunter RS-MMC, miniSD und microSD, weisen extrem kleine Formfaktoren auf. Die microSD-Karte hat beispielsweise eine Fläche von etwas mehr als 1,5 cm2 bei einer Dicke von weniger als 1 mm. ⓘ
NAND-Flash hat dank mehrerer wichtiger Technologien, die in den späten 2000er bis frühen 2010er Jahren auf den Markt kamen, eine beachtliche Speicherdichte erreicht. ⓘ
Die Multi-Level-Cell-Technologie (MLC) speichert mehr als ein Bit in jeder Speicherzelle. NEC demonstrierte die MLC-Technologie 1998 mit einem 80-MB-Flash-Speicherchip, der 2 Bits pro Zelle speichert. STMicroelectronics demonstrierte MLC ebenfalls im Jahr 2000 mit einem 64-MB-NOR-Flash-Speicherchip. Im Jahr 2009 führten Toshiba und SanDisk NAND-Flash-Chips mit QLC-Technologie ein, die 4 Bit pro Zelle speichern und eine Kapazität von 64 Gbit haben. Samsung Electronics führte die Triple-Level-Cell-Technologie (TLC) ein, die 3 Bits pro Zelle speichert, und begann 2010 mit der Massenproduktion von NAND-Chips mit TLC-Technologie. ⓘ
Charge-Trap-Flash
Bei der Charge Trap Flash (CTF)-Technologie wird das schwebende Polysilizium-Gate, das zwischen einem sperrenden Gate-Oxid oberhalb und einem Tunnel-Oxid unterhalb liegt, durch eine elektrisch isolierende Siliziumnitridschicht ersetzt; die Siliziumnitridschicht fängt Elektronen ein. Theoretisch ist CTF weniger anfällig für Elektronenverluste, was zu einer verbesserten Datenspeicherung führt. ⓘ
Da CTF das Polysilizium durch ein elektrisch isolierendes Nitrid ersetzt, ermöglicht es kleinere Zellen und eine höhere Lebensdauer (geringere Degradation oder Abnutzung). Allerdings können Elektronen im Nitrid eingeschlossen werden und sich dort ansammeln, was zu Degradation führt. Die Leckage wird bei hohen Temperaturen noch verstärkt, da die Elektronen mit steigender Temperatur stärker angeregt werden. Die CTF-Technologie verwendet jedoch immer noch ein Tunneloxid und eine Sperrschicht, die die Schwachpunkte der Technologie darstellen, da sie auf die übliche Weise beschädigt werden können (das Tunneloxid kann durch extrem hohe elektrische Felder und die Sperrschicht durch Anode Hot Hole Injection (AHHI) beschädigt werden). ⓘ
Die Degradation oder Abnutzung der Oxide ist der Grund dafür, dass Flash-Speicher nur eine begrenzte Lebensdauer haben, und die Datenerhaltung nimmt mit zunehmender Degradation ab (das Potenzial für Datenverluste steigt), da die Oxide mit zunehmender Degradation ihre elektrisch isolierenden Eigenschaften verlieren. Die Oxide müssen gegen Elektronen isolieren, damit diese nicht austreten können, was zu Datenverlusten führen würde. ⓘ
1991 beschrieben NEC-Forscher, darunter N. Kodama, K. Oyama und Hiroki Shirai, eine Art von Flash-Speicher mit einer Ladungsfalle. 1998 patentierte Boaz Eitan von Saifun Semiconductors (später von Spansion übernommen) eine Flash-Speichertechnologie namens NROM, die eine Ladungsfalle als Ersatz für das in konventionellen Flash-Speichern verwendete Floating Gate nutzte. Im Jahr 2000 demonstrierte ein Forschungsteam von Advanced Micro Devices (AMD) unter der Leitung von Richard M. Fastow, dem ägyptischen Ingenieur Khaled Z. Ahmed und dem jordanischen Ingenieur Sameer Haddad (der später zu Spansion wechselte) einen Ladungsabfangmechanismus für NOR-Flash-Speicherzellen. CTF wurde später von AMD und Fujitsu im Jahr 2002 kommerzialisiert. Bei der 3D-V-NAND-Technologie (Vertical NAND) werden NAND-Flash-Speicherzellen mithilfe der 3D-Charge-Trap-Flash-Technologie (CTP) vertikal in einem Chip gestapelt. Die 3D-V-NAND-Technologie wurde erstmals von Toshiba im Jahr 2007 angekündigt, und das erste Gerät mit 24 Schichten wurde 2013 von Samsung Electronics auf den Markt gebracht. ⓘ
Integrierte 3D-Schaltungstechnologie
Bei der 3D-IC-Technologie werden integrierte Schaltkreischips (IC) vertikal in einem einzigen 3D-IC-Chipgehäuse gestapelt. Toshiba führte die 3D-IC-Technologie im April 2007 in den NAND-Flash-Speicher ein, als sie einen 16 GB eMMC-kompatiblen (Produktnummer THGAM0G7D8DBAI6, auf Verbraucher-Websites oft mit THGAM abgekürzt) eingebetteten NAND-Flash-Speicherchip vorstellten, der aus acht gestapelten 2 GB NAND-Flash-Chips bestand. Im September 2007 führte Hynix Semiconductor (jetzt SK Hynix) die 24-Layer-3D-IC-Technologie mit einem 16-GB-Flash-Speicherchip ein, der mit 24 gestapelten NAND-Flash-Chips in einem Wafer-Bonding-Verfahren hergestellt wurde. Auch Toshiba verwendete 2008 einen achtlagigen 3D-IC für seinen 32 GB THGBM-Flash-Chip. Im Jahr 2010 verwendete Toshiba einen 16-Layer-3D-IC für seinen 128-GB-THGBM2-Flash-Chip, der aus 16 gestapelten 8-GB-Chips hergestellt wurde. In den 2010er Jahren kamen 3D-ICs in großem Umfang für NAND-Flash-Speicher in mobilen Geräten zum Einsatz. ⓘ
Seit August 2017 sind microSD-Karten mit einer Kapazität von bis zu 400 GB (400 Milliarden Byte) erhältlich. Im selben Jahr kombinierte Samsung das Stapeln von 3D-IC-Chips mit seinen 3D-V-NAND- und TLC-Technologien, um seinen 512-GB-Flash-Speicherchip KLUFG8R1EM mit acht gestapelten 64-Layer-V-NAND-Chips herzustellen. Im Jahr 2019 produzierte Samsung einen 1024-GB-Flash-Chip mit acht gestapelten 96-Layer-V-NAND-Chips und mit QLC-Technologie. ⓘ
Funktionsprinzipien
Flash-Speicher speichern Informationen in einem Array von Speicherzellen, die aus Floating-Gate-Transistoren bestehen. Bei Single-Level-Cell (SLC)-Geräten speichert jede Zelle nur ein Bit an Informationen. MLC-Bausteine (Multi-Level Cell), einschließlich TLC-Bausteine (Triple-Level Cell), können mehr als ein Bit pro Zelle speichern. ⓘ
Das Floating-Gate kann leitend sein (typischerweise Polysilizium in den meisten Arten von Flash-Speichern) oder nicht leitend (wie in SONOS-Flash-Speichern). ⓘ
MOSFET mit schwebendem Gate
Bei Flash-Speichern ähnelt jede Speicherzelle einem Standard-Metalloxid-Halbleiter-Feldeffekttransistor (MOSFET), mit dem Unterschied, dass der Transistor zwei Gates statt einem hat. Die Zellen können als elektrischer Schalter betrachtet werden, bei dem der Strom zwischen zwei Anschlüssen (Source und Drain) fließt und durch ein Floating Gate (FG) und ein Control Gate (CG) gesteuert wird. Das CG ist ähnlich wie das Gate in anderen MOS-Transistoren, aber darunter befindet sich das FG, das rundherum durch eine Oxidschicht isoliert ist. Das FG ist zwischen dem CG und dem MOSFET-Kanal eingefügt. Da der FG durch seine Isolierschicht elektrisch isoliert ist, werden Elektronen, die sich auf ihm befinden, eingefangen. Wenn das FG mit Elektronen geladen ist, schirmt diese Ladung das elektrische Feld des CG ab und erhöht so die Schwellenspannung (VT1) der Zelle. Dies bedeutet, dass nun eine höhere Spannung (VT2) an den CG angelegt werden muss, um den Kanal leitend zu machen. Um einen Wert aus dem Transistor auszulesen, wird eine Zwischenspannung zwischen den Schwellenspannungen (VT1 & VT2) an den CG angelegt. Wenn der Kanal bei dieser Zwischenspannung leitet, muss der FG ungeladen sein (wenn er geladen wäre, würde er nicht leiten, da die Zwischenspannung kleiner als VT2 ist), und daher ist im Gate eine logische "1" gespeichert. Wenn der Kanal bei der Zwischenspannung nicht leitet, bedeutet dies, dass der FG geladen ist, und daher wird eine logische "0" im Gatter gespeichert. Das Vorhandensein einer logischen "0" oder "1" wird ermittelt, indem festgestellt wird, ob ein Strom durch den Transistor fließt, wenn die Zwischenspannung an der CG anliegt. In einem Multi-Level-Cell-Baustein, der mehr als ein Bit pro Zelle speichert, wird die Menge des Stromflusses erfasst (und nicht nur sein Vorhandensein oder Fehlen), um den Ladungszustand des FG genauer zu bestimmen. ⓘ
Floating-Gate-MOSFETs heißen so, weil sich zwischen dem Floating-Gate und dem Silizium eine elektrisch isolierende Tunneloxidschicht befindet, so dass das Gate über dem Silizium "schwebt". Das Oxid hält die Elektronen auf dem schwebenden Gate fest. Degradation oder Verschleiß (und die begrenzte Lebensdauer von Floating-Gate-Flash-Speichern) entstehen durch das extrem hohe elektrische Feld (10 Millionen Volt pro Zentimeter), dem das Oxid ausgesetzt ist. Solch hohe Spannungsdichten können im Laufe der Zeit die atomaren Bindungen in dem relativ dünnen Oxid aufbrechen, wodurch sich seine elektrisch isolierenden Eigenschaften allmählich verschlechtern und Elektronen in das Oxid eindringen und ungehindert hindurchtreten können (Leckage), was die Wahrscheinlichkeit von Datenverlusten erhöht, da sich die Elektronen (deren Menge verwendet wird, um verschiedene Ladungsniveaus darzustellen, von denen jedes einer anderen Kombination von Bits in MLC-Flash zugeordnet ist) normalerweise im Floating Gate befinden. Aus diesem Grund nimmt die Datenerhaltung ab und das Risiko eines Datenverlusts steigt mit zunehmender Degradation. ⓘ
Fowler-Nordheim-Tunneling
Der Prozess der Elektronenverschiebung vom Steuer-Gate in das Floating-Gate wird als Fowler-Nordheim-Tunneln bezeichnet und verändert die Eigenschaften der Zelle grundlegend, indem er die Schwellenspannung des MOSFET erhöht. Dies wiederum verändert den Drain-Source-Strom, der bei einer bestimmten Gatespannung durch den Transistor fließt, was letztendlich zur Codierung eines Binärwerts verwendet wird. Der Fowler-Nordheim-Tunneleffekt ist reversibel, d. h. Elektronen können dem Floating Gate hinzugefügt oder entnommen werden, was traditionell als Schreiben und Löschen bezeichnet wird. ⓘ
Interne Ladungspumpen
Trotz des Bedarfs an relativ hohen Programmier- und Löschspannungen benötigen heute praktisch alle Flash-Chips nur eine einzige Versorgungsspannung und erzeugen die erforderlichen hohen Spannungen mit Hilfe von On-Chip-Ladungspumpen. ⓘ
Mehr als die Hälfte der von einem 1,8-V-NAND-Flash-Chip verbrauchten Energie geht in der Ladungspumpe selbst verloren. Da Aufwärtswandler von Natur aus effizienter sind als Ladungspumpen, haben Forscher, die stromsparende SSDs entwickeln, vorgeschlagen, zu den doppelten Vcc/Vpp-Versorgungsspannungen zurückzukehren, die bei allen früheren Flash-Chips verwendet wurden, und die hohe Vpp-Spannung für alle Flash-Chips in einem SSD mit einem einzigen gemeinsamen externen Aufwärtswandler zu erzeugen. ⓘ
In Raumfahrzeugen und anderen Umgebungen mit hoher Strahlung ist die On-Chip-Ladungspumpe der erste Teil des Flash-Chips, der ausfällt, obwohl Flash-Speicher auch bei viel höherer Strahlung - im Nur-Lese-Modus - weiter funktionieren werden. ⓘ
NOR-Flash
Bei NOR-Flash ist ein Ende jeder Zelle direkt mit Masse und das andere Ende direkt mit einer Bitleitung verbunden. Diese Anordnung wird als "NOR-Flash" bezeichnet, weil sie wie ein NOR-Gatter funktioniert: Wenn eine der Wortleitungen (die mit dem CG der Zelle verbunden ist) hochgefahren wird, zieht der entsprechende Speichertransistor die Ausgangsbitleitung herunter. NOR-Flash ist nach wie vor die bevorzugte Technologie für eingebettete Anwendungen, die ein diskretes nichtflüchtiges Speichergerät erfordern. Die für NOR-Bausteine charakteristischen niedrigen Leselatenzen ermöglichen sowohl die direkte Codeausführung als auch die Datenspeicherung in einem einzigen Speicherprodukt. ⓘ
Programmierung
Eine einstufige NOR-Flash-Zelle entspricht in ihrem Grundzustand logisch einem binären "1"-Wert, da beim Anlegen einer entsprechenden Spannung an das Steuergate Strom durch den Kanal fließt, so dass die Bitleitungsspannung nach unten gezogen wird. Eine NOR-Flash-Zelle kann nach folgendem Verfahren programmiert bzw. auf einen binären "0"-Wert gesetzt werden:
- eine erhöhte Einschaltspannung (typischerweise >5 V) wird an den CG angelegt
- der Kanal ist nun eingeschaltet, so dass Elektronen von der Source zum Drain fließen können (unter der Annahme eines NMOS-Transistors)
- der Source-Drain-Strom ist hoch genug, um einige energiereiche Elektronen durch die Isolierschicht auf den FG springen zu lassen, ein Prozess, der als Heiße-Elektronen-Injektion bezeichnet wird. ⓘ
Löschen
Um eine NOR-Flash-Zelle zu löschen (d. h. in den Zustand "1" zurückzusetzen), wird eine hohe Spannung mit entgegengesetzter Polarität zwischen dem CG- und dem Source-Anschluss angelegt, wodurch die Elektronen durch Quanten-Tunneling aus dem FG gezogen werden. Moderne NOR-Flash-Speicherchips sind in Löschsegmente (oft Blöcke oder Sektoren genannt) unterteilt. Der Löschvorgang kann nur blockweise durchgeführt werden; alle Zellen eines Löschsegments müssen gemeinsam gelöscht werden. Die Programmierung von NOR-Zellen kann jedoch im Allgemeinen byte- oder wortweise durchgeführt werden. ⓘ
NAND-Flash
NAND-Flash verwendet ebenfalls Floating-Gate-Transistoren, die jedoch ähnlich wie ein NAND-Gate geschaltet sind: Mehrere Transistoren sind in Reihe geschaltet, und die Bitleitung wird nur dann auf low gezogen, wenn alle Wortleitungen auf high gezogen werden (oberhalb der VT der Transistoren). Diese Gruppen werden dann über einige zusätzliche Transistoren zu einem NOR-artigen Bitleitungs-Array verbunden, so wie einzelne Transistoren in NOR-Flash verbunden sind. ⓘ
Im Vergleich zu NOR-Flash wird durch das Ersetzen einzelner Transistoren durch seriell verbundene Gruppen eine zusätzliche Adressierungsebene geschaffen. Während NOR-Flash den Speicher erst seitenweise und dann wortweise adressieren kann, kann NAND-Flash ihn seitenweise, wortweise und bitweise adressieren. Die Adressierung auf Bit-Ebene eignet sich für bit-serielle Anwendungen (z. B. Festplattenemulation), die jeweils nur auf ein Bit zugreifen. Bei Execute-in-Place-Anwendungen hingegen muss auf jedes Bit eines Wortes gleichzeitig zugegriffen werden. Dies erfordert eine Adressierung auf Wortebene. In jedem Fall sind sowohl Bit- als auch Wortadressierungsmodi mit NOR- oder NAND-Flash möglich. ⓘ
Um Daten zu lesen, wird zunächst die gewünschte Gruppe ausgewählt (so wie bei einem NOR-Array ein einzelner Transistor ausgewählt wird). Dann werden die meisten Wortleitungen über den VT eines programmierten Bits hochgezogen, während eine von ihnen bis knapp über den VT eines gelöschten Bits hochgezogen wird. Die Seriengruppe leitet (und zieht die Bitleitung nach unten), wenn das ausgewählte Bit nicht programmiert wurde. ⓘ
Trotz der zusätzlichen Transistoren ermöglicht die Reduzierung der Masse- und Bitleitungen ein dichteres Layout und eine größere Speicherkapazität pro Chip. (Die Massedrähte und Bitleitungen sind tatsächlich viel breiter als die Linien in den Diagrammen). Darüber hinaus darf NAND-Flash in der Regel eine bestimmte Anzahl von Fehlern enthalten (NOR-Flash, wie es für ein BIOS-ROM verwendet wird, ist voraussichtlich fehlerfrei). Die Hersteller versuchen, die Menge des nutzbaren Speichers zu maximieren, indem sie die Größe der Transistoren verringern. ⓘ
NAND-Flash-Zellen werden ausgelesen, indem ihre Reaktion auf verschiedene Spannungen analysiert wird. ⓘ
Schreiben und Löschen
NAND-Flash verwendet Tunnel-Injektion zum Schreiben und Tunnel-Freigabe zum Löschen. NAND-Flash-Speicher bilden das Herzstück der als USB-Flash-Laufwerke bekannten USB-Wechselspeichergeräte sowie der meisten Speicherkartenformate und Solid-State-Laufwerke, die heute erhältlich sind. ⓘ
Die hierarchische Struktur von NAND-Flash beginnt auf der Zellebene, die Strings, dann Seiten, Blöcke, Ebenen und schließlich einen Chip bildet. Ein String ist eine Reihe von miteinander verbundenen NAND-Zellen, bei denen die Source einer Zelle mit dem Drain der nächsten verbunden ist. Je nach NAND-Technologie besteht ein String normalerweise aus 32 bis 128 NAND-Zellen. Strings sind in Seiten (Pages) organisiert, die wiederum in Blöcke unterteilt sind, wobei jeder String mit einer separaten Leitung verbunden ist, die als Bitleitung (BL) bezeichnet wird. Alle Zellen mit derselben Position im String sind über die Steuergates durch eine Wortleitung (WL) verbunden. Ein Flash-Die besteht aus einer oder mehreren Ebenen und der Peripherieschaltung, die für die Durchführung aller Lese-, Schreib- und Löschvorgänge erforderlich ist. ⓘ
Die Architektur von NAND-Flash bedeutet, dass Daten seitenweise gelesen und programmiert werden können, typischerweise in einer Größe zwischen 4 KiB und 16 KiB, aber nur auf der Ebene ganzer Blöcke gelöscht werden können, die aus mehreren Seiten und MB Größe bestehen. Wenn ein Block gelöscht wird, werden alle Zellen logisch auf 1 gesetzt. Daten können nur in einem Durchgang auf eine Seite in einem gelöschten Block programmiert werden. Alle Zellen, die durch die Programmierung auf 0 gesetzt wurden, können nur durch Löschen des gesamten Blocks auf 1 zurückgesetzt werden. Das heißt, bevor neue Daten in eine Seite programmiert werden können, die bereits Daten enthält, muss der aktuelle Inhalt der Seite plus die neuen Daten auf eine neue, gelöschte Seite kopiert werden. Ist eine geeignete Seite verfügbar, können die Daten sofort auf diese geschrieben werden. Wenn keine gelöschte Seite verfügbar ist, muss ein Block gelöscht werden, bevor die Daten auf eine Seite in diesem Block kopiert werden. Die alte Seite wird dann als ungültig markiert und steht zum Löschen und zur Wiederverwendung zur Verfügung. ⓘ
Vertikaler NAND
Vertikaler NAND (V-NAND) oder 3D-NAND-Speicher stapelt Speicherzellen vertikal und verwendet eine Charge-Trap-Flash-Architektur. Die vertikalen Schichten ermöglichen eine größere flächige Bitdichte, ohne dass kleinere Einzelzellen erforderlich sind. Er wird auch unter der Marke BiCS Flash verkauft, die eine Marke der Kioxia Corporation (ehemals Toshiba Memory Corporation) ist. 3D-NAND wurde erstmals von Toshiba im Jahr 2007 angekündigt. V-NAND wurde erstmals 2013 von Samsung Electronics kommerziell hergestellt. ⓘ
Aufbau
V-NAND verwendet eine Charge-Trap-Flash-Geometrie (die 2002 von AMD und Fujitsu kommerziell eingeführt wurde), bei der die Ladung auf einer eingebetteten Siliziumnitridschicht gespeichert wird. Eine solche Schicht ist robuster gegen Punktdefekte und kann dicker gemacht werden, um eine größere Anzahl von Elektronen zu speichern. V-NAND wickelt eine planare Ladungsfalle in eine zylindrische Form ein. Ab 2020 verwenden 3D-NAND-Flash-Speicher von Micron und Intel stattdessen Floating-Gates. 3D-NAND-Speicher von Micron mit 128 Schichten und mehr verwenden jedoch eine herkömmliche Charge-Trap-Struktur, da die Partnerschaft zwischen Micron und Intel aufgelöst wurde. 3D-NAND-Flash-Speicher mit Ladungsfalle sind dünner als 3D-NAND-Speicher mit Floating-Gate. Bei Floating Gate 3D NAND sind die Speicherzellen vollständig voneinander getrennt, während sich bei Charge Trap 3D NAND vertikale Gruppen von Speicherzellen dasselbe Siliziumnitridmaterial teilen. ⓘ
Eine einzelne Speicherzelle besteht aus einer ebenen Polysiliziumschicht, die ein Loch enthält, das von mehreren konzentrischen vertikalen Zylindern ausgefüllt ist. Die Polysiliziumoberfläche des Lochs dient als Gate-Elektrode. Der äußerste Siliziumdioxid-Zylinder fungiert als Gate-Dielektrikum und umschließt einen Siliziumnitrid-Zylinder, der Ladung speichert und wiederum einen Siliziumdioxid-Zylinder als Tunneldielektrikum umschließt, der einen zentralen Stab aus leitendem Polysilizium umgibt, der als Leitkanal dient. ⓘ
Speicherzellen in verschiedenen vertikalen Schichten stören sich nicht gegenseitig, da sich die Ladungen nicht vertikal durch das Siliziumnitrid-Speichermedium bewegen können und die mit den Gates verbundenen elektrischen Felder innerhalb jeder Schicht eng begrenzt sind. Die vertikale Ansammlung ist elektrisch identisch mit den seriell verknüpften Gruppen, in denen herkömmliche NAND-Flash-Speicher aufgebaut sind. ⓘ
Aufbau
Das Wachstum einer Gruppe von V-NAND-Zellen beginnt mit einem alternierenden Stapel aus leitenden (dotierten) Polysiliziumschichten und isolierenden Siliziumdioxidschichten. ⓘ
Der nächste Schritt besteht darin, ein zylindrisches Loch durch diese Schichten zu formen. In der Praxis werden für einen 128-Gibit-V-NAND-Chip mit 24 Schichten von Speicherzellen etwa 2,9 Milliarden solcher Löcher benötigt. Als Nächstes wird die Innenfläche des Lochs mehrfach beschichtet, zunächst mit Siliziumdioxid, dann mit Siliziumnitrid und schließlich mit einer zweiten Schicht aus Siliziumdioxid. Schließlich wird das Loch mit leitendem (dotiertem) Polysilizium gefüllt. ⓘ
Leistung
Seit 2013 ermöglicht die V-NAND-Flash-Architektur Lese- und Schreibvorgänge, die doppelt so schnell sind wie bei herkömmlichem NAND und bis zu zehnmal so lange halten, während sie 50 % weniger Strom verbrauchen. Sie bieten eine vergleichbare physische Bitdichte bei 10-nm-Lithografie, können aber die Bitdichte um bis zu zwei Größenordnungen erhöhen, da V-NAND bis zu mehrere hundert Schichten verwendet. Ab 2020 werden V-NAND-Chips mit 160 Schichten von Samsung entwickelt. ⓘ
Kosten
Die Waferkosten eines 3D-NAND sind vergleichbar mit denen eines verkleinerten (32 nm oder weniger) planaren NAND-Flash. Da die Skalierung von planarem NAND jedoch bei 16 nm aufhört, können die Kosten pro Bit durch 3D-NAND ab 16 Schichten weiter gesenkt werden. Aufgrund der nicht-vertikalen Seitenwand des durch die Schichten geätzten Lochs führt jedoch schon eine geringe Abweichung zu minimalen Bitkosten, d. h. zu einer minimalen äquivalenten Designregel (oder maximalen Dichte) für eine bestimmte Anzahl von Schichten; diese minimale Bitkosten-Schichtanzahl nimmt für kleinere Lochdurchmesser ab. ⓘ
Beschränkungen
Block-Löschung
Eine Einschränkung des Flash-Speichers besteht darin, dass nur ein Block auf einmal gelöscht werden kann. Dadurch werden in der Regel alle Bits im Block auf 1 gesetzt. Ausgehend von einem frisch gelöschten Block kann jede beliebige Stelle innerhalb dieses Blocks programmiert werden. Sobald jedoch ein Bit auf 0 gesetzt wurde, kann es nur durch Löschen des gesamten Blocks wieder auf 1 zurückgesetzt werden. Mit anderen Worten: Flash-Speicher (insbesondere NOR-Flash) bietet Lese- und Programmiervorgänge mit wahlfreiem Zugriff, aber keine beliebige Wiederbeschreibungs- oder Löschvorgänge mit wahlfreiem Zugriff. Ein Speicherplatz kann jedoch umgeschrieben werden, solange die 0-Bits des neuen Wertes eine Obermenge der überschriebenen Werte sind. Zum Beispiel kann ein Nibble-Wert auf 1111 gelöscht und dann als 1110 geschrieben werden. Aufeinanderfolgende Schreibvorgänge auf dieses Nibble können es in 1010, dann in 0010 und schließlich in 0000 ändern. Im Wesentlichen werden beim Löschen alle Bits auf 1 gesetzt, und beim Programmieren können nur Bits auf 0 gesetzt werden. Einige Dateisysteme, die für Flash-Geräte entwickelt wurden, nutzen diese Fähigkeit zum Wiederbeschreiben, z. B. Yaffs1, um Sektor-Metadaten darzustellen. Andere Flash-Dateisysteme, wie z. B. YAFFS2, nutzen diese "Rewrite"-Fähigkeit nicht - sie machen eine Menge zusätzlicher Arbeit, um die "Write-Only-Regel" zu erfüllen. ⓘ
Obwohl Datenstrukturen im Flash-Speicher nicht auf ganz allgemeine Weise aktualisiert werden können, können so Mitglieder "entfernt" werden, indem sie als ungültig markiert werden. Diese Technik muss möglicherweise für Geräte mit mehrstufigen Zellen geändert werden, bei denen eine Speicherzelle mehr als ein Bit enthält. ⓘ
Gängige Flash-Geräte wie USB-Flash-Laufwerke und Speicherkarten bieten nur eine Schnittstelle auf Blockebene oder eine Flash-Übersetzungsschicht (FTL), die jedes Mal in eine andere Zelle schreibt, um das Gerät zu verschleißen. Dadurch wird das inkrementelle Schreiben innerhalb eines Blocks verhindert, aber das Gerät wird durch intensive Schreibmuster nicht vorzeitig abgenutzt. ⓘ
Datenerhalt
Aufgrund von Elektronenverlusten gehen die in den Flash-Zellen gespeicherten Daten ständig verloren, wobei die Verlustrate mit zunehmender absoluter Temperatur exponentiell ansteigt. Bei einem 45-nm-NOR-Flash-Speicher ist der Verlust der Schwellenspannung (Vt) bei 25 Grad Celsius nach 1000 Stunden etwa halb so groß wie bei 90 Grad Celsius. ⓘ
Speicherverschleiß
Eine weitere Einschränkung besteht darin, dass Flash-Speicher eine endliche Anzahl von Programm-Lösch-Zyklen (in der Regel als P/E-Zyklen geschrieben) haben. Die meisten handelsüblichen Flash-Produkte halten garantiert etwa 100.000 P/E-Zyklen aus, bevor der Verschleiß die Integrität des Speichers beeinträchtigt. Micron Technology und Sun Microsystems kündigten am 17. Dezember 2008 einen SLC-NAND-Flash-Speicherchip an, der für 1.000.000 P/E-Zyklen ausgelegt ist. Längere P/E-Zyklen von industriellen SSDs sprechen für ihre Langlebigkeit und machen sie für den industriellen Einsatz zuverlässiger. ⓘ
Die garantierte Zykluszahl kann nur für den Block Null (wie bei TSOP-NAND-Bausteinen) oder für alle Blöcke (wie bei NOR) gelten. Dieser Effekt wird in einigen Chip-Firmware- oder Dateisystemtreibern durch das Zählen der Schreibvorgänge und die dynamische Neuzuordnung von Blöcken abgeschwächt, um die Schreibvorgänge auf die Sektoren zu verteilen; diese Technik wird als Wear Leveling bezeichnet. Ein anderer Ansatz ist die Überprüfung von Schreibvorgängen und die Neuzuordnung zu Ersatzsektoren im Falle eines Schreibfehlers, eine Technik, die als Bad Block Management (BBM) bezeichnet wird. Bei tragbaren Consumer-Geräten verlängern diese Abnutzungsmanagementtechniken in der Regel die Lebensdauer des Flash-Speichers über die Lebensdauer des Geräts selbst hinaus, und ein gewisser Datenverlust kann bei diesen Anwendungen akzeptabel sein. Für eine hochzuverlässige Datenspeicherung ist es jedoch nicht ratsam, Flash-Speicher zu verwenden, die eine große Anzahl von Programmierzyklen durchlaufen müssen. Diese Einschränkung ist für "Nur-Lese"-Anwendungen wie Thin-Clients und Router, die nur einmal oder höchstens ein paar Mal während ihrer Lebensdauer programmiert werden, bedeutungslos. ⓘ
Im Dezember 2012 gaben taiwanesische Ingenieure von Macronix auf dem IEEE International Electron Devices Meeting 2012 bekannt, dass sie herausgefunden haben, wie sie die Lese-/Schreibzyklen von NAND-Flash-Speichern von 10.000 auf 100 Millionen Zyklen verbessern können, indem sie ein "selbstheilendes" Verfahren verwenden, das einen Flash-Chip mit "eingebauten Heizungen, die kleine Gruppen von Speicherzellen ausglühen können", einsetzt. Das eingebaute thermische Ausglühen sollte den üblichen Löschzyklus durch einen lokalen Hochtemperaturprozess ersetzen, der nicht nur die gespeicherte Ladung löschte, sondern auch den durch Elektronen verursachten Stress im Chip reparierte, was Schreibzyklen von mindestens 100 Millionen ermöglichte. Das Ergebnis sollte ein Chip sein, der immer wieder gelöscht und neu beschrieben werden kann, selbst wenn er theoretisch kaputt gehen sollte. So vielversprechend der Durchbruch von Macronix für die Mobilfunkindustrie auch war, es gab keine Pläne, in naher Zukunft ein kommerzielles Produkt mit dieser Fähigkeit auf den Markt zu bringen. ⓘ
Lesen stört
Die zum Lesen von NAND-Flash-Speichern verwendete Methode kann dazu führen, dass sich benachbarte Zellen im selben Speicherblock im Laufe der Zeit verändern (programmiert werden). Dies wird als Lesestörung bezeichnet. Der Schwellenwert für die Anzahl der Lesevorgänge liegt in der Regel bei Hunderttausenden von Lesevorgängen zwischen den einzelnen Löschvorgängen. Wird kontinuierlich aus einer Zelle gelesen, fällt nicht diese Zelle aus, sondern eine der umliegenden Zellen bei einem nachfolgenden Lesevorgang. Um das Problem der Lesestörungen zu vermeiden, zählt der Flash-Controller normalerweise die Gesamtzahl der Lesevorgänge in einem Block seit dem letzten Löschvorgang. Überschreitet die Anzahl der Lesevorgänge einen bestimmten Grenzwert, wird der betroffene Block in einen neuen Block kopiert, gelöscht und dann für den Blockpool freigegeben. Der ursprüngliche Block ist nach dem Löschvorgang so gut wie neu. Wenn der Flash-Controller jedoch nicht rechtzeitig eingreift, kommt es zu einem Lesestörungsfehler mit möglichem Datenverlust, wenn die Fehler zu zahlreich sind, um sie mit einem fehlerkorrigierenden Code zu korrigieren. ⓘ
Röntgeneffekte
Die meisten Flash-ICs werden in Ball Grid Array (BGA)-Gehäusen geliefert, und selbst die, die nicht in BGA-Gehäusen untergebracht sind, werden oft auf einer Leiterplatte neben anderen BGA-Gehäusen montiert. Nach der Leiterplattenbestückung werden Platinen mit BGA-Gehäusen oft geröntgt, um zu sehen, ob die Kugeln richtig mit dem richtigen Pad verbunden sind oder ob das BGA nachgearbeitet werden muss. Diese Röntgenstrahlen können programmierte Bits in einem Flash-Chip löschen (programmierte "0"-Bits in gelöschte "1"-Bits umwandeln). Gelöschte Bits ("1"-Bits) werden von Röntgenstrahlen nicht beeinflusst. ⓘ
Einige Hersteller bieten inzwischen röntgensichere SD- und USB-Speichergeräte an. ⓘ
Low-Level-Zugriff
Die Low-Level-Schnittstelle zu Flash-Speicherchips unterscheidet sich von der anderer Speichertypen wie DRAM, ROM und EEPROM, die Bit-Änderbarkeit (sowohl Null zu Eins als auch Eins zu Null) und wahlfreien Zugriff über extern zugängliche Adressbusse unterstützen. ⓘ
NOR-Speicher haben einen externen Adressbus zum Lesen und Programmieren. Bei NOR-Speicher erfolgt der Lese- und Programmiervorgang nach dem Zufallsprinzip, das Entsperren und Löschen erfolgt blockweise. Bei NAND-Speicher erfolgt das Lesen und Programmieren seitenweise, das Entsperren und Löschen blockweise. ⓘ
NOR-Speicher
Das Lesen von NOR-Flash-Speichern ist ähnlich wie das Lesen von Direktzugriffsspeichern, vorausgesetzt, der Adress- und Datenbus sind korrekt abgebildet. Aus diesem Grund können die meisten Mikroprozessoren NOR-Flash-Speicher als XIP-Speicher (Execute in Place) verwenden, d. h. in NOR-Flash gespeicherte Programme können direkt aus dem NOR-Flash-Speicher ausgeführt werden, ohne dass sie zuvor in den Arbeitsspeicher kopiert werden müssen. NOR-Flash-Speicher kann ähnlich wie ein Lesegerät im Direktzugriff programmiert werden. Bei der Programmierung werden Bits von einer logischen Eins auf eine Null geändert. Bits, die bereits Null sind, bleiben unverändert. Das Löschen muss blockweise erfolgen und setzt alle Bits im gelöschten Block wieder auf Eins zurück. Typische Blockgrößen sind 64, 128 oder 256 KiB. ⓘ
Das Bad-Block-Management ist eine relativ neue Funktion in NOR-Chips. Bei älteren NOR-Bausteinen, die kein Bad-Block-Management unterstützen, muss die Software oder der Gerätetreiber, der den Speicherchip steuert, Blöcke, die sich abnutzen, korrigieren, sonst funktioniert das Gerät nicht mehr zuverlässig. ⓘ
Die spezifischen Befehle, die zum Sperren, Entsperren, Programmieren oder Löschen von NOR-Speichern verwendet werden, unterscheiden sich von Hersteller zu Hersteller. Um zu vermeiden, dass für jedes hergestellte Gerät eine eigene Treibersoftware benötigt wird, ermöglichen spezielle CFI-Befehle (Common Flash Memory Interface) dem Gerät, sich selbst und seine kritischen Betriebsparameter zu identifizieren. ⓘ
Neben seiner Verwendung als ROM mit wahlfreiem Zugriff kann NOR-Flash auch als Speichergerät verwendet werden, indem man die Vorteile der Programmierung mit wahlfreiem Zugriff nutzt. Einige Bausteine bieten eine Read-While-Write-Funktionalität, so dass der Code auch dann weiter ausgeführt werden kann, wenn im Hintergrund ein Programmierungs- oder Löschvorgang stattfindet. Bei sequentiellen Datenschreibvorgängen haben NOR-Flash-Chips im Vergleich zu NAND-Flash in der Regel langsame Schreibgeschwindigkeiten. ⓘ
Typischer NOR-Flash benötigt keinen Fehlerkorrekturcode. ⓘ
NAND-Speicher
Die NAND-Flash-Architektur wurde 1989 von Toshiba eingeführt. Der Zugriff auf diese Speicher erfolgt ähnlich wie bei Blockgeräten, z. B. Festplatten. Jeder Block besteht aus einer Anzahl von Seiten. Die Seiten sind in der Regel 512, 2.048 oder 4.096 Byte groß. Zu jeder Seite gehören einige Bytes (in der Regel 1/32 der Datengröße), die für die Speicherung einer ECC-Prüfsumme (Error Correcting Code) verwendet werden können. ⓘ
Typische Blockgrößen sind:
- 32 Seiten zu je 512+16 Byte für eine (effektive) Blockgröße von 16 KiB
- 64 Seiten zu je 2.048+64 Byte für eine Blockgröße von 128 KiB
- 64 Seiten zu je 4.096+128 Bytes für eine Blockgröße von 256 KiB
- 128 Seiten zu je 4.096+128 Bytes für eine Blockgröße von 512 KiB. ⓘ
Während das Lesen und Programmieren auf Seitenbasis erfolgt, kann das Löschen nur auf Blockbasis durchgeführt werden. ⓘ
NAND-Bausteine erfordern außerdem eine schlechte Blockverwaltung durch die Gerätetreibersoftware oder einen separaten Controller-Chip. SD-Karten beispielsweise verfügen über einen Controller-Schaltkreis, der die Verwaltung fehlerhafter Blöcke und den Verschleißausgleich übernimmt. Wenn die High-Level-Software auf einen logischen Block zugreift, wird er vom Gerätetreiber oder Controller auf einen physischen Block abgebildet. Eine Reihe von Blöcken auf dem Flash-Chip kann für die Speicherung von Mapping-Tabellen reserviert werden, um mit fehlerhaften Blöcken umzugehen, oder das System kann einfach jeden Block beim Einschalten überprüfen, um eine Bad-Block-Map im RAM zu erstellen. Die gesamte Speicherkapazität schrumpft allmählich, je mehr Blöcke als fehlerhaft markiert werden. ⓘ
NAND verlässt sich auf ECC, um Bits zu kompensieren, die während des normalen Gerätebetriebs spontan ausfallen können. Eine typische ECC korrigiert einen Ein-Bit-Fehler in 2048 Bits (256 Bytes) mit 22 ECC-Bits oder einen Ein-Bit-Fehler in 4096 Bits (512 Bytes) mit 24 ECC-Bits. Wenn die ECC den Fehler beim Lesen nicht korrigieren kann, wird der Fehler möglicherweise dennoch erkannt. Beim Löschen oder Programmieren kann das Gerät Blöcke erkennen, die nicht programmiert oder gelöscht werden können, und sie als fehlerhaft markieren. Die Daten werden dann in einen anderen, guten Block geschrieben, und die Bad-Block-Map wird aktualisiert. ⓘ
Hamming-Codes sind die am häufigsten verwendete ECC für SLC-NAND-Flash. Reed-Solomon-Codes und BCH-Codes (Bose-Chaudhuri-Hocquenghem-Codes) werden häufig als ECC für MLC-NAND-Flash verwendet. Einige MLC-NAND-Flash-Chips erzeugen intern die entsprechenden BCH-Fehlerkorrekturcodes. ⓘ
Die meisten NAND-Geräte werden ab Werk mit einigen fehlerhaften Blöcken ausgeliefert. Diese werden in der Regel nach einer bestimmten Bad-Block-Markierungsstrategie markiert. Indem sie einige schlechte Blöcke zulassen, erzielen die Hersteller weitaus höhere Erträge, als es möglich wäre, wenn alle Blöcke als gut verifiziert werden müssten. Dadurch werden die Kosten für NAND-Flash-Speicher erheblich gesenkt und die Speicherkapazität der Teile nur geringfügig verringert. ⓘ
Bei der Ausführung von Software aus NAND-Speichern werden häufig virtuelle Speicherstrategien verwendet: Der Speicherinhalt muss zunächst ausgelagert oder in den speicherabgebildeten RAM kopiert und dort ausgeführt werden (was zu der üblichen Kombination von NAND + RAM führt). Eine Speicherverwaltungseinheit (MMU) im System ist hilfreich, aber dies kann auch mit Overlays erreicht werden. Aus diesem Grund verwenden einige Systeme eine Kombination aus NOR- und NAND-Speicher, wobei ein kleinerer NOR-Speicher als Software-ROM verwendet wird und ein größerer NAND-Speicher mit einem Dateisystem zur Verwendung als nichtflüchtiger Datenspeicher partitioniert ist. ⓘ
NAND opfert die Vorteile von NOR in Bezug auf Direktzugriff und Execute-in-Place. NAND ist am besten für Systeme geeignet, die eine hohe Speicherkapazität benötigen. Er bietet eine höhere Speicherdichte, größere Kapazitäten und geringere Kosten. Er kann schneller gelöscht, sequentiell geschrieben und sequentiell gelesen werden. ⓘ
Standardisierung
Eine Gruppe namens Open NAND Flash Interface Working Group (ONFI) hat eine standardisierte Low-Level-Schnittstelle für NAND-Flash-Chips entwickelt. Dies ermöglicht die Interoperabilität zwischen konformen NAND-Geräten verschiedener Hersteller. Die ONFI-Spezifikation Version 1.0 wurde am 28. Dezember 2006 veröffentlicht. Sie spezifiziert:
- eine standardisierte physikalische Schnittstelle (Pinout) für NAND-Flash in TSOP-48-, WSOP-48-, LGA-52- und BGA-63-Gehäusen
- einen Standard-Befehlssatz zum Lesen, Schreiben und Löschen von NAND-Flash-Chips
- Ein Mechanismus zur Selbstidentifizierung (vergleichbar mit der seriellen Präsenzerkennung von SDRAM-Speichermodulen) ⓘ
Die ONFI-Gruppe wird von großen NAND-Flash-Herstellern wie Hynix, Intel, Micron Technology und Numonyx sowie von großen Herstellern von Geräten unterstützt, die NAND-Flash-Chips enthalten. ⓘ
Zwei große Flash-Gerätehersteller, Toshiba und Samsung, haben sich für die Verwendung einer eigenen Schnittstelle entschieden, die als Toggle Mode (und jetzt Toggle V2.0) bekannt ist. Diese Schnittstelle ist nicht Pin-zu-Pin-kompatibel mit der ONFI-Spezifikation. Dies führt dazu, dass ein Produkt, das für die Geräte eines Herstellers entwickelt wurde, möglicherweise nicht mit den Geräten eines anderen Herstellers verwendet werden kann. ⓘ
Eine Gruppe von Anbietern, darunter Intel, Dell und Microsoft, hat eine Arbeitsgruppe für die Schnittstelle für nichtflüchtige Speicher (Non-Volatile Memory Host Controller Interface, NVMHCI) gegründet. Ziel der Gruppe ist es, standardisierte Software- und Hardware-Programmierschnittstellen für nichtflüchtige Speichersubsysteme bereitzustellen, einschließlich des an den PCI-Express-Bus angeschlossenen "Flash-Cache"-Geräts. ⓘ
Unterscheidung zwischen NOR- und NAND-Flash
NOR- und NAND-Flash unterscheiden sich in zwei wichtigen Punkten:
- Die Anschlüsse der einzelnen Speicherzellen sind unterschiedlich.
- Die Schnittstelle zum Lesen und Schreiben des Speichers ist unterschiedlich; NOR erlaubt den wahlfreien Zugriff, während NAND nur den Seitenzugriff erlaubt. ⓘ
NOR- und NAND-Flash haben ihre Namen von der Struktur der Verbindungen zwischen den Speicherzellen. Bei NOR-Flash sind die Zellen parallel zu den Bitleitungen verbunden, so dass die Zellen einzeln gelesen und programmiert werden können. Die Parallelschaltung der Zellen ähnelt der Parallelschaltung von Transistoren in einem CMOS-NOR-Gate. Bei NAND-Flash werden die Zellen in Reihe geschaltet, ähnlich wie bei einem CMOS-NAND-Gatter. Die Reihenschaltung benötigt weniger Platz als die Parallelschaltung, was die Kosten des NAND-Flash reduziert. Sie verhindert jedoch nicht, dass NAND-Zellen einzeln gelesen und programmiert werden können. ⓘ
Jede NOR-Flash-Zelle ist größer als eine NAND-Flash-Zelle - 10 F2 gegenüber 4 F2 -, selbst wenn exakt dieselbe Halbleiterbauweise verwendet wird und somit jeder Transistor, Kontakt usw. exakt dieselbe Größe hat - denn NOR-Flash-Zellen erfordern einen separaten Metallkontakt für jede Zelle. ⓘ
Aufgrund der Reihenschaltung und des Wegfalls der Wortleitungskontakte nimmt ein großes Gitter von NAND-Flash-Speicherzellen vielleicht nur 60 % der Fläche entsprechender NOR-Zellen ein (unter der Annahme der gleichen CMOS-Prozessauflösung, z. B. 130 nm, 90 nm oder 65 nm). Die Entwickler von NAND-Flash erkannten, dass die Fläche eines NAND-Chips und damit auch die Kosten weiter reduziert werden könnten, wenn die externen Adress- und Datenbus-Schaltungen entfernt würden. Stattdessen konnten externe Geräte mit NAND-Flash über Befehls- und Datenregister mit sequentiellem Zugriff kommunizieren, die intern die erforderlichen Daten abrufen und ausgeben würden. Diese Designentscheidung machte den Zufallszugriff auf NAND-Flash-Speicher unmöglich, aber das Ziel von NAND-Flash war es, mechanische Festplatten zu ersetzen, nicht ROMs zu ersetzen. ⓘ
Attribut | NAND | NOR ⓘ |
---|---|---|
Hauptanwendung | Speicherung von Dateien | Code-Ausführung |
Speicherkapazität | Hoch | Niedrig |
Kosten pro Bit | Niedrig | |
Aktive Leistung | Niedrig | |
Standby-Leistung | Niedrig | |
Schreibgeschwindigkeit | Schnell | |
Lesegeschwindigkeit | Schnell | |
Ausführen am Ort (XIP) | Nein | Ja |
Verlässlichkeit | Hoch |
Schreibbeständigkeit
Die Schreibbeständigkeit von SLC Floating-Gate-NOR-Flash ist in der Regel gleich oder höher als die von NAND-Flash, während MLC-NOR- und NAND-Flash eine ähnliche Beständigkeit aufweisen. In den Datenblättern für NAND- und NOR-Flash-Speicher sowie in den Speichergeräten, die Flash-Speicher verwenden, sind Beispiele für die Dauerhaftigkeit von Zyklen aufgeführt. ⓘ
Typ des Flash-Speichers | Dauerhaftigkeit (Löschungen pro Block) | Beispiel(e) für Flash-Speicher oder Speichergerät ⓘ |
---|---|---|
SLC-NAND | 100,000 | Samsung OneNAND KFW4G16Q2M, Toshiba SLC NAND Flash-Chips, Transcend SD500, Fujitsu S26361-F3298 |
MLC-NAND | 5.000 bis 10.000 für Anwendungen mit mittlerer Speicherkapazität; 1.000 bis 3.000 für Anwendungen mit hoher Speicherkapazität |
Samsung K9G8G08U0M (Beispiel für Anwendungen mit mittlerer Kapazität), Memblaze PBlaze4, ADATA SU900, Mushkin Reactor |
TLC-NAND | 1,000 | Samsung SSD 840 |
QLC-NAND | ? | SanDisk X4 NAND-Flash-SD-Karten |
3D SLC NAND | 100,000 | Samsung Z-NAND |
3D-MLC-NAND | 6.000 bis 40.000 | Samsung SSD 850 PRO, Samsung SSD 845DC PRO, Samsung 860 PRO |
3D-TLC-NAND | 1.000 bis 3.000 | Samsung SSD 850 EVO, Samsung SSD 845DC EVO, Crucial MX300,Memblaze PBlaze5 900, Memblaze PBlaze5 700, Memblaze PBlaze5 910/916,Memblaze PBlaze5 510/516, ADATA SX 8200 PRO (wird auch unter dem Markennamen "XPG Gammix" verkauft, Modell S11 PRO) |
3D QLC NAND | 100 bis 1.000 | Samsung SSD 860 QVO SATA, Intel SSD 660p, Samsung SSD 980 QVO NVMe, Micron 5210 ION, Samsung SSD BM991 NVMe |
3D PLC NAND | Unbekannt | In Entwicklung bei SK Hynix (früher Intel) und Kioxia (früher Toshiba Memory). |
SLC (Floating-Gate) NOR | 100.000 bis 1.000.000 | Numonyx M58BW (Dauerhaftigkeit von 100.000 Löschungen pro Block); Spansion S29CD016J (Dauerhaftigkeit von 1.000.000 Löschungen pro Block) |
MLC (Floating-Gate) NOR | 100,000 | Numonyx J3-Flash |
Durch die Anwendung bestimmter Algorithmen und Design-Paradigmen wie Wear Leveling und Memory Over-Provisioning kann die Ausdauer eines Speichersystems jedoch auf spezifische Anforderungen abgestimmt werden. ⓘ
Um die Langlebigkeit von NAND-Flash zu berechnen, muss man die Größe des Speicherchips, den Speichertyp (z. B. SLC/MLC/TLC) und das Nutzungsmuster berücksichtigen. Industrielle NAND-Speicher sind aufgrund ihrer Kapazität, längeren Lebensdauer und Zuverlässigkeit in empfindlichen Umgebungen sehr gefragt. ⓘ
Die Leistung von 3D-NAND kann mit dem Hinzufügen von Schichten abnehmen. ⓘ
Flash-Dateisysteme
Aufgrund der besonderen Eigenschaften von Flash-Speicher wird dieser am besten entweder mit einem Controller verwendet, der Verschleißausgleich und Fehlerkorrektur durchführt, oder mit speziell entwickelten Flash-Dateisystemen, die Schreibvorgänge über das Medium verteilen und die langen Löschzeiten von NOR-Flash-Blöcken bewältigen. Das Grundkonzept von Flash-Dateisystemen ist das folgende: Wenn der Flash-Speicher aktualisiert werden soll, schreibt das Dateisystem eine neue Kopie der geänderten Daten in einen neuen Block, ordnet die Dateizeiger neu zu und löscht den alten Block später, wenn es Zeit dafür hat. ⓘ
In der Praxis werden Flash-Dateisysteme nur für Memory Technology Devices (MTDs) verwendet, d. h. für eingebettete Flash-Speicher, die über keinen Controller verfügen. Entnehmbare Flash-Speicherkarten, SSDs, eMMC/eUFS-Chips und USB-Flash-Laufwerke verfügen über eingebaute Controller, die Verschleißausgleich und Fehlerkorrektur durchführen, so dass die Verwendung eines speziellen Flash-Dateisystems keinen zusätzlichen Nutzen bringt. ⓘ
Kapazität
Mehrere Chips werden oft in einem Array oder Die-Stacking angeordnet, um höhere Kapazitäten für den Einsatz in elektronischen Geräten wie Multimedia-Playern oder GPS-Geräten zu erreichen. Die Skalierung (Steigerung) der Kapazität von Flash-Chips folgte früher dem Mooreschen Gesetz, da sie mit vielen der gleichen Techniken und Anlagen für integrierte Schaltkreise hergestellt werden. Seit der Einführung von 3D-NAND ist die Skalierung nicht mehr zwangsläufig mit dem Mooreschen Gesetz verbunden, da keine immer kleineren Transistoren (Zellen) mehr verwendet werden. ⓘ
Flash-Speichergeräte für Verbraucher werden in der Regel mit einer nutzbaren Größe in einer kleinen ganzzahligen Potenz von zwei (2, 4, 8 usw.) und einer Bezeichnung in Megabyte (MB) oder Gigabyte (GB) beworben, z. B. 512 MB, 8 GB. Dies schließt SSDs ein, die als Festplattenersatz vermarktet werden, in Übereinstimmung mit traditionellen Festplatten, die dezimale Präfixe verwenden. Eine als "64 GB" gekennzeichnete SSD hat also mindestens 64 × 10003 Byte (64 GB). Die meisten Nutzer werden etwas weniger Kapazität für ihre Dateien zur Verfügung haben, da der Platz von den Metadaten des Dateisystems belegt wird. ⓘ
Die Größe der Flash-Speicherchips im Inneren wird in strengen binären Vielfachen angegeben, aber die tatsächliche Gesamtkapazität der Chips ist an der Schnittstelle des Laufwerks nicht nutzbar. Die tatsächliche Gesamtkapazität der Chips ist jedoch an der Laufwerksschnittstelle nicht nutzbar. Sie ist wesentlich größer als die angegebene Kapazität, um die Verteilung der Schreibvorgänge (Abnutzungsausgleich), das Sparing, die Fehlerkorrekturcodes und andere von der internen Firmware des Geräts benötigte Metadaten zu ermöglichen. ⓘ
Im Jahr 2005 entwickelten Toshiba und SanDisk einen NAND-Flash-Chip, der 1 GB Daten speichern kann und die Multi-Level-Cell (MLC)-Technologie nutzt, bei der zwei Datenbits pro Zelle gespeichert werden können. Im September 2005 gab Samsung Electronics bekannt, dass das Unternehmen den weltweit ersten 2-GB-Chip entwickelt hat. ⓘ
Im März 2006 kündigte Samsung Flash-Festplatten mit einer Kapazität von 4 GB an, was im Wesentlichen der Größenordnung kleinerer Laptop-Festplatten entspricht, und im September 2006 kündigte Samsung einen 8-GB-Chip an, der in einem 40-nm-Fertigungsprozess hergestellt wird. Im Januar 2008 kündigte SanDisk die Verfügbarkeit seiner 16 GB MicroSDHC- und 32 GB SDHC Plus-Karten an. ⓘ
Neuere Flash-Laufwerke (ab 2012) haben mit 64, 128 und 256 GB wesentlich größere Kapazitäten. ⓘ
Eine gemeinsame Entwicklung von Intel und Micron ermöglicht die Produktion von NAND-Flash-Sticks mit 32 Schichten und einer Kapazität von 3,5 Terabyte (TB) sowie SSDs mit 10 TB in Standardgröße. Der Baustein umfasst 5 Pakete mit 16 × 48 GB TLC-Dies, die ein Floating-Gate-Zellendesign verwenden. ⓘ
Es werden weiterhin Flash-Chips mit Kapazitäten unter oder um 1 MB hergestellt (z. B. für BIOS-ROMs und eingebettete Anwendungen). ⓘ
Im Juli 2016 kündigte Samsung die 4-TB-Samsung 850 EVO an, die ihren 256-Gbit-48-Layer-TLC-3D-V-NAND verwendet. Im August 2016 kündigte Samsung eine 32-TB-2,5-Zoll-SAS-SSD an, die auf seinem 512-GBit-64-Layer-TLC-3D-V-NAND basiert. Außerdem rechnet Samsung damit, bis 2020 SSDs mit einer Speicherkapazität von bis zu 100 TB auf den Markt zu bringen. ⓘ
Übertragungsraten
Flash-Speichergeräte sind in der Regel beim Lesen viel schneller als beim Schreiben. Die Leistung hängt auch von der Qualität der Speichercontroller ab, die kritischer werden, wenn die Geräte teilweise gefüllt sind. Selbst wenn die einzige Änderung bei der Herstellung im Schrumpfen der Chips besteht, kann das Fehlen eines geeigneten Controllers zu Geschwindigkeitseinbußen führen. ⓘ
Anwendungen
Serieller Flash
Serieller Flash-Speicher ist ein kleiner, stromsparender Flash-Speicher, der nur seriellen Zugriff auf die Daten bietet - anstatt einzelne Bytes zu adressieren, liest oder schreibt der Benutzer große zusammenhängende Gruppen von Bytes im Adressraum seriell. Der Serial Peripheral Interface Bus (SPI) ist ein typisches Protokoll für den Zugriff auf das Gerät. Beim Einbau in ein eingebettetes System erfordert serielles Flash weniger Leitungen auf der Leiterplatte als parallele Flash-Speicher, da es Daten bitweise überträgt und empfängt. Dies kann zu einer Verringerung des Platzbedarfs auf der Leiterplatte, des Stromverbrauchs und der Gesamtkosten des Systems führen. ⓘ
Es gibt mehrere Gründe, warum ein serielles Gerät mit weniger externen Pins als ein paralleles Gerät die Gesamtkosten erheblich senken kann:
- Viele ASICs sind pad-limitiert, d. h. die Größe des Chips wird durch die Anzahl der Drahtbondpads und nicht durch die Komplexität und Anzahl der für die Gerätelogik verwendeten Gatter begrenzt. Die Eliminierung von Bondpads ermöglicht somit eine kompaktere integrierte Schaltung auf einem kleineren Chip; dies erhöht die Anzahl der Chips, die auf einem Wafer hergestellt werden können, und senkt somit die Kosten pro Chip.
- Durch die Verringerung der Anzahl der externen Stifte werden auch die Montage- und Verpackungskosten gesenkt. Ein serielles Gerät kann in einem kleineren und einfacheren Gehäuse untergebracht werden als ein paralleles Gerät.
- Kleinere Gehäuse mit einer geringeren Pinanzahl benötigen weniger Leiterplattenfläche.
- Geräte mit geringerer Pin-Anzahl vereinfachen das PCB-Routing. ⓘ
Es gibt zwei wichtige SPI-Flash-Typen. Der erste Typ zeichnet sich durch kleine Seiten und einen oder mehrere interne SRAM-Seitenpuffer aus, die es ermöglichen, eine komplette Seite in den Puffer zu lesen, teilweise zu ändern und dann zurückzuschreiben (z. B. der Atmel AT45 DataFlash oder der Micron Technology Page Erase NOR Flash). Der zweite Typ hat größere Sektoren, wobei die kleinsten Sektoren bei dieser Art von SPI-Flash typischerweise 4 kB betragen, aber auch bis zu 64 kB groß sein können. Da diesem SPI-Flash-Typ ein interner SRAM-Puffer fehlt, muss die komplette Seite ausgelesen und geändert werden, bevor sie zurückgeschrieben werden kann. Der zweite Typ ist jedoch billiger als der erste und daher eine gute Wahl, wenn die Anwendung Code-Shadowing betreibt. ⓘ
Die beiden Typen sind nicht ohne weiteres austauschbar, da sie nicht die gleiche Pinbelegung haben und die Befehlssätze nicht kompatibel sind. ⓘ
Die meisten FPGAs basieren auf SRAM-Konfigurationszellen und benötigen ein externes Konfigurationsgerät, oft einen seriellen Flash-Chip, um den Konfigurations-Bitstream bei jedem Stromzyklus neu zu laden. ⓘ
Speicherung von Firmware
Angesichts der zunehmenden Geschwindigkeit moderner CPUs sind parallele Flash-Bausteine oft viel langsamer als der Speicherbus des Computers, an den sie angeschlossen sind. Umgekehrt bietet modernes SRAM Zugriffszeiten von unter 10 ns, während DDR2-SDRAM Zugriffszeiten von unter 20 ns bietet. Aus diesem Grund ist es oft wünschenswert, im Flash gespeicherten Code in RAM zu schatten, d. h. der Code wird vor der Ausführung vom Flash in den RAM kopiert, so dass die CPU mit voller Geschwindigkeit darauf zugreifen kann. Geräte-Firmware kann in einem seriellen Flash-Chip gespeichert werden und dann in SDRAM oder SRAM kopiert werden, wenn das Gerät eingeschaltet wird. Durch die Verwendung eines externen seriellen Flash-Bausteins anstelle eines On-Chip-Flash-Bausteins werden erhebliche Prozesskompromisse vermieden (ein Fertigungsprozess, der für Hochgeschwindigkeitslogik geeignet ist, eignet sich im Allgemeinen nicht für Flash und umgekehrt). Wenn man sich entschieden hat, die Firmware in einem großen Block einzulesen, ist es üblich, eine Komprimierung vorzunehmen, um einen kleineren Flash-Chip verwenden zu können. Typische Anwendungen für seriellen Flash sind die Speicherung von Firmware für Festplatten, Ethernet-Netzwerkschnittstellenadapter, DSL-Modems usw. ⓘ
Flash-Speicher als Ersatz für Festplattenlaufwerke
Eine neuere Anwendung für Flash-Speicher ist die Verwendung als Ersatz für Festplatten. Flash-Speicher hat nicht die mechanischen Beschränkungen und Latenzen von Festplatten, so dass ein Solid-State-Laufwerk (SSD) attraktiv ist, wenn man Geschwindigkeit, Geräuschentwicklung, Stromverbrauch und Zuverlässigkeit berücksichtigt. Flash-Laufwerke gewinnen als sekundäre Speichergeräte für mobile Geräte an Bedeutung; sie werden auch als Ersatz für Festplatten in Hochleistungs-Desktop-Computern und einigen Servern mit RAID- und SAN-Architekturen verwendet. ⓘ
Es gibt noch einige Aspekte von Flash-basierten SSDs, die sie unattraktiv machen. Die Kosten pro Gigabyte Flash-Speicher sind nach wie vor deutlich höher als die von Festplatten. Auch Flash-Speicher hat eine endliche Anzahl von P/E-Zyklen (Programm/Löschen), aber dies scheint derzeit unter Kontrolle zu sein, da sich die Garantien für Flash-basierte SSDs denen aktueller Festplatten annähern. Außerdem können gelöschte Dateien auf SSDs für unbestimmte Zeit erhalten bleiben, bevor sie durch neue Daten überschrieben werden; Lösch- oder Schreddertechniken oder Software, die bei magnetischen Festplattenlaufwerken gut funktionieren, haben bei SSDs keine Wirkung, was die Sicherheit und die forensische Untersuchung beeinträchtigt. Aufgrund des so genannten TRIM-Befehls, der von den meisten Solid-State-Laufwerken verwendet wird und der die von der gelöschten Datei belegten logischen Blockadressen als unbenutzt markiert, um die Müllabfuhr zu ermöglichen, kann Datenwiederherstellungssoftware die von ihnen gelöschten Dateien nicht wiederherstellen. ⓘ
Für relationale Datenbanken oder andere Systeme, die ACID-Transaktionen erfordern, kann selbst eine bescheidene Menge an Flash-Speicher enorme Geschwindigkeitsvorteile gegenüber Festplattenarrays bieten. ⓘ
Im Mai 2006 kündigte Samsung Electronics zwei auf Flash-Speicher basierende PCs an, den Q1-SSD und den Q30-SSD, die im Juni 2006 erhältlich sein sollten. Beide verwendeten 32-GB-SSDs und waren zunächst nur in Südkorea erhältlich. Die Markteinführung des Q1-SSD und des Q30-SSD verzögerte sich und wurde schließlich Ende August 2006 ausgeliefert. ⓘ
Der erste verfügbare PC mit Flash-Speicher war der Sony Vaio UX90, der am 27. Juni 2006 zur Vorbestellung angekündigt wurde und in Japan ab dem 3. Juli 2006 mit einer 16-GB-Flash-Speicher-Festplatte ausgeliefert wurde. Ende September 2006 rüstete Sony den Flash-Speicher des Vaio UX90 auf 32 GB auf. ⓘ
Ein Solid-State-Laufwerk wurde als Option mit dem ersten MacBook Air angeboten, das 2008 eingeführt wurde, und ab 2010 wurden alle Modelle mit einer SSD ausgeliefert. Seit Ende 2011 werden im Rahmen der Ultrabook-Initiative von Intel immer mehr ultradünne Laptops standardmäßig mit SSDs ausgeliefert. ⓘ
Es gibt auch hybride Techniken wie das Hybrid-Laufwerk und ReadyBoost, die versuchen, die Vorteile beider Technologien zu kombinieren, indem sie den Flash-Speicher als nichtflüchtigen Hochgeschwindigkeits-Cache für Dateien auf der Festplatte nutzen, auf die häufig verwiesen wird, die aber selten geändert werden, wie z. B. die ausführbaren Dateien von Anwendungen und Betriebssystemen. ⓘ
Flash-Speicher als RAM
Seit 2012 gibt es Versuche, Flash-Speicher als Hauptcomputerspeicher (DRAM) zu verwenden. ⓘ
Archivierung oder Langzeitspeicherung
Floating-Gate-Transistoren im Flash-Speicher enthalten Ladungen, die Daten darstellen. Diese Ladung geht mit der Zeit verloren, was zu einer Anhäufung von logischen Fehlern führt, die auch als "Bitfäule" oder "Bitfading" bezeichnet werden. ⓘ
Datenspeicherung
Es ist unklar, wie lange Daten auf Flash-Speichern unter Archivierungsbedingungen (d. h. bei angenehmer Temperatur und Luftfeuchtigkeit und seltenem Zugriff mit oder ohne prophylaktisches Wiederbeschreiben) erhalten bleiben. In den Datenblättern der flashbasierten "ATmega"-Mikrocontroller von Atmel werden in der Regel Aufbewahrungszeiten von 20 Jahren bei 85 °C und 100 Jahren bei 25 °C versprochen. ⓘ
Die Haltbarkeitsdauer variiert je nach Typ und Modell des Flash-Speichers. Wenn sie mit Strom versorgt werden und sich im Leerlauf befinden, wird die Ladung der Transistoren, die die Daten enthalten, von der Firmware des Flash-Speichers routinemäßig aufgefrischt. Die Fähigkeit, Daten aufzubewahren, variiert je nach Flash-Speichergerät aufgrund von Unterschieden in der Firmware, der Datenredundanz und den Fehlerkorrekturalgorithmen. ⓘ
In einem Artikel der CMU aus dem Jahr 2015 heißt es: "Heutige Flash-Geräte, die keine Auffrischung des Flash-Speichers benötigen, haben bei Raumtemperatur ein typisches Speicheralter von einem Jahr." Und diese Verweildauer nimmt mit steigender Temperatur exponentiell ab. Das Phänomen kann durch die Arrhenius-Gleichung modelliert werden. ⓘ
FPGA-Konfiguration
Einige FPGAs basieren auf Flash-Konfigurationszellen, die direkt als (programmierbare) Schalter verwendet werden, um interne Elemente miteinander zu verbinden, wobei dieselbe Art von Floating-Gate-Transistoren verwendet wird wie die Flash-Datenspeicherzellen in Datenspeichergeräten. ⓘ
Industrie
Eine Quelle gibt an, dass die Flash-Speicherindustrie im Jahr 2008 etwa 9,1 Milliarden US-Dollar an Produktion und Umsatz umfasste. Andere Quellen beziffern den Markt für Flash-Speicher im Jahr 2006 auf mehr als 20 Milliarden US-Dollar, was mehr als acht Prozent des gesamten Halbleitermarktes und mehr als 34 Prozent des gesamten Halbleiterspeichermarktes ausmacht. Im Jahr 2012 wurde der Markt auf 26,8 Milliarden US-Dollar geschätzt. Die Herstellung eines Flash-Speicherchips kann bis zu 10 Wochen dauern. ⓘ
Hersteller
Die folgenden Unternehmen waren im ersten Quartal 2019 die größten Hersteller von NAND-Flash-Speichern. ⓘ
- Samsung Electronics - 34,9 %.
- Kioxia - 18,1 %.
- Western Digital Corporation - 14 %.
- Micron Technology - 13,5%
- SK Hynix - 10,3%
- Intel - 8,7% Hinweis: SK Hynix hat Ende 2021 das NAND-Geschäft von Intel übernommen. ⓘ
Samsung bleibt auch im ersten Quartal 2022 der größte Hersteller von NAND-Flash-Speichern. ⓘ
Auslieferungen
Jahr(e) | Diskrete Flash-Speicherchips | Flash-Speicher-Datenkapazität (Gigabyte) | Floating-Gate-MOSFET-Speicherzellen (Milliarden) ⓘ |
---|---|---|---|
1992 | 26,000,000 | 3 | 24 |
1993 | 73,000,000 | 17 | 139 |
1994 | 112,000,000 | 25 | 203 |
1995 | 235,000,000 | 38 | 300 |
1996 | 359,000,000 | 140 | 1,121 |
1997 | 477,200,000+ | 317+ | 2,533+ |
1998 | 762,195,122 | 455+ | 3,642+ |
1999 | 12,800,000,000 | 635+ | 5,082+ |
2000–2004 | 134.217.728.000 (NAND) | 1.073.741.824.000 (NAND) | |
2005–2007 | ? | ||
2008 | 1.226.215.645 (mobiler NAND) | ||
2009 | 1.226.215.645+ (mobiler NAND) | ||
2010 | 7,280,000,000+ | ||
2011 | 8,700,000,000 | ||
2012 | 5.151.515.152 (seriell) | ||
2013 | ? | ||
2014 | ? | 59,000,000,000 | 118,000,000,000+ |
2015 | 7.692.307.692 (NAND) | 85,000,000,000 | 170,000,000,000+ |
2016 | ? | 100,000,000,000 | 200,000,000,000+ |
2017 | ? | 148,200,000,000 | 296,400,000,000+ |
2018 | ? | 231,640,000,000 | 463,280,000,000+ |
2019 | ? | ? | ? |
2020 | ? | ? | ? |
1992–2020 | 45.358.454.134+ Speicherchips | 758.057.729.630+ Gigabyte | 2.321.421.837.044 Milliarden+ Zellen |
Neben einzelnen Flash-Speicherchips sind Flash-Speicher auch in Mikrocontroller-Chips (MCUs) und System-on-Chip-Bauteilen (SoCs) integriert. Flash-Speicher ist in ARM-Chips eingebettet, von denen bis 2019 weltweit 150 Milliarden Stück verkauft wurden, und in programmierbaren System-on-Chip-Bausteinen (PSoC), von denen bis 2012 1,1 Milliarden Stück verkauft wurden. Dies ergibt mindestens 151,1 Milliarden MCU- und SoC-Chips mit eingebettetem Flash-Speicher, zusätzlich zu den 45,4 Milliarden bekannten Einzelverkäufen von Flash-Chips (Stand 2015), insgesamt also mindestens 196,5 Milliarden Chips mit Flash-Speicher. ⓘ
Skalierbarkeit von Flash
Aufgrund seiner relativ einfachen Struktur und der hohen Nachfrage nach höherer Kapazität ist der NAND-Flash-Speicher die am stärksten skalierbare Technologie unter den elektronischen Geräten. Der harte Wettbewerb zwischen den wenigen führenden Herstellern verstärkt die Aggressivität bei der Verkleinerung des Floating-Gate-MOSFET-Designs bzw. des Prozesstechnologieknotens. Während nach der ursprünglichen Version des Mooreschen Gesetzes alle drei Jahre eine Schrumpfung um den Faktor zwei zu erwarten ist, wurde dies im Fall von NAND-Flash kürzlich auf einen Faktor zwei alle zwei Jahre beschleunigt. ⓘ
ITRS oder Unternehmen | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 ⓘ |
---|---|---|---|---|---|---|---|---|---|
ITRS Flash-Fahrplan 2011 | 32 nm | 22 nm | 20 nm | 18 nm | 16 nm | ||||
Aktualisierte ITRS-Flash-Roadmap | 17 nm | 15 nm | 14 nm | ||||||
Samsung (Samsung 3D NAND) |
35-20 nm | 27 nm | 21 nm (MLC, TLC) |
19-16 nm 19-10 nm (MLC, TLC) |
19-10 nm V-NAND (24L) |
16-10 nm V-NAND (32L) |
16-10 nm | 12-10 nm | 12-10 nm |
Micron, Intel | 34-25 nm | 25 nm | 20 nm (MLC + HKMG) |
20 nm (TLC) |
16 nm | 16 nm 3D-NAND |
16 nm 3D-NAND |
12 nm 3D-NAND |
12 nm 3D-NAND |
Toshiba, WD (SanDisk) | 43-32 nm 24 nm (Toshiba) |
24 nm | 19 nm (MLC, TLC) |
15 nm | 15 nm 3D-NAND |
15 nm 3D-NAND |
12 nm 3D-NAND |
12 nm 3D-NAND | |
SK Hynix | 46-35 nm | 26 nm | 20 nm (MLC) | 16 nm | 16 nm | 16 nm | 12 nm | 12 nm |
Da die MOSFET-Featuregröße von Flash-Speicherzellen die Mindestgrenze von 15-16 nm erreicht, wird die weitere Erhöhung der Flash-Dichte durch TLC (3 Bits/Zelle) in Kombination mit der vertikalen Stapelung von NAND-Speicherebenen vorangetrieben. Die Abnahme der Lebensdauer und die Zunahme der unkorrigierbaren Bitfehlerraten, die mit der Verkleinerung der Strukturgröße einhergehen, können durch verbesserte Fehlerkorrekturmechanismen kompensiert werden. Selbst mit diesen Fortschritten könnte es unmöglich sein, Flash-Speicher wirtschaftlich auf immer kleinere Abmessungen zu skalieren, da die Anzahl der Elektronenhaltekapazität abnimmt. Viele vielversprechende neue Technologien (wie FeRAM, MRAM, PMC, PCM, ReRAM und andere) werden derzeit als möglicher skalierbarer Ersatz für Flash untersucht und entwickelt. ⓘ
Zeitleiste
Datum der Einführung | Name des Chips | Speicherpaket Kapazität Megabits (Mb), Gigabits (Gb), Terabits (Tb) |
Flash-Typ | Zellentyp | Lagen oder Stapel von Schichten |
Hersteller (s) | Verfahren | Bereich | Betreff ⓘ |
---|---|---|---|---|---|---|---|---|---|
1984 | ? | ? | NOR | SLC | 1 | Toshiba | ? | ? | |
1985 | ? | 256 kb | NOR | SLC | 1 | Toshiba | 2.000 nm | ? | |
1987 | ? | ? | NAND | SLC | 1 | Toshiba | ? | ? | |
1989 | ? | 1 Mb | NOR | SLC | 1 | Seeq, Intel | ? | ? | |
4 Mb | NAND | SLC | 1 | Toshiba | 1.000 nm | ||||
1991 | ? | 16 Mb | NOR | SLC | 1 | Mitsubishi | 600 nm | ? | |
1993 | DD28F032SA | 32 Mb | NOR | SLC | 1 | Intel | ? | 280 mm² | |
1994 | ? | 64 Mb | NOR | SLC | 1 | NEC | 400 nm | ? | |
1995 | ? | 16 Mb | DINOR | SLC | 1 | Mitsubishi, Hitachi | ? | ? | |
NAND | SLC | 1 | Toshiba | ? | ? | ||||
32 Mb | NAND | SLC | 1 | Hitachi, Samsung, Toshiba | ? | ? | |||
34 Mb | Seriell | SLC | 1 | SanDisk | |||||
1996 | ? | 64 Mb | NAND | SLC | 1 | Hitachi, Mitsubishi | 400 nm | ? | |
QLC | 1 | NEC | |||||||
128 Mb | NAND | SLC | 1 | Samsung, Hitachi | ? | ||||
1997 | ? | 32 Mb | NOR | SLC | 1 | Intel, Sharp | 400 nm | ? | |
NAND | SLC | 1 | AMD, Fujitsu | 350 nm | |||||
1999 | ? | 256 Mb | NAND | SLC | 1 | Toshiba | 250 nm | ? | |
MLC | 1 | Hitachi | 1 | ||||||
2000 | ? | 32 Mb | NOR | SLC | 1 | Toshiba | 250 nm | ? | |
64 Mb | NOR | QLC | 1 | STMicroelectronics | 180 nm | ||||
512 Mb | NAND | SLC | 1 | Toshiba | ? | ? | |||
2001 | ? | 512 Mb | NAND | MLC | 1 | Hitachi | ? | ? | |
1 Gibit | NAND | MLC | 1 | Samsung | |||||
1 | Toshiba, SanDisk | 160 nm | ? | ||||||
2002 | ? | 512 Mb | NROM | MLC | 1 | Saifun | 170 nm | ? | |
2 Gb | NAND | SLC | 1 | Samsung, Toshiba | ? | ? | |||
2003 | ? | 128 Mb | NOR | MLC | 1 | Intel | 130 nm | ? | |
1 Gbit | NAND | MLC | 1 | Hitachi | |||||
2004 | ? | 8 Gbit | NAND | SLC | 1 | Samsung | 60 nm | ? | |
2005 | ? | 16 Gbit | NAND | SLC | 1 | Samsung | 50 nm | ? | |
2006 | ? | 32 Gbit | NAND | SLC | 1 | Samsung | 40 nm | ||
Apr-07 | THGAM | 128 Gb | Gestapeltes NAND | SLC | Toshiba | 56 nm | 252 mm² | ||
Sep-07 | ? | 128 Gb | Gestapeltes NAND | SLC | Hynix | ? | ? | ||
2008 | THGBM | 256 Gb | Gestapeltes NAND | SLC | Toshiba | 43 nm | 353 mm² | ||
2009 | ? | 32 Gbit | NAND | TLC | Toshiba | 32 nm | 113 mm² | ||
64 Gb | NAND | QLC | Toshiba, SanDisk | 43 nm | ? | ||||
2010 | ? | 64 Gb | NAND | SLC | Hynix | 20 nm | ? | ||
TLC | Samsung | 20 nm | ? | ||||||
THGBM2 | 1 Tb | Gestapeltes NAND | QLC | Toshiba | 32 nm | 374 mm² | |||
2011 | KLMCG8GE4A | 512 Gb | Gestapeltes NAND | MLC | Samsung | ? | 192 mm² | ||
2013 | ? | ? | NAND | SLC | SK Hynix | 16 nm | ? | ||
128 Gb | V-NAND | TLC | Samsung | 10 nm | ? | ||||
2015 | ? | 256 Gb | V-NAND | TLC | Samsung | ? | ? | ||
2017 | eUFS 2.1 | 512 Gb | V-NAND | TLC | 8 von 64 | Samsung | ? | ? | |
768 Gb | V-NAND | QLC | Toshiba | ? | ? | ||||
KLUFG8R1EM | 4 Tb | Gestapelter V-NAND | TLC | Samsung | ? | 150 mm² | |||
2018 | ? | 1 Tb | V-NAND | QLC | Samsung | ? | ? | ||
1,33 Tb | V-NAND | QLC | Toshiba | ? | 158 mm² | ||||
2019 | ? | 512 Gb | V-NAND | QLC | Samsung | ? | ? | ||
1 Tb | V-NAND | TLC | SK Hynix | ? | ? | ||||
eUFS 2.1 | 1 Tb | Gestapelter V-NAND | QLC | 16 von 64 | Samsung | ? | 150 mm² |
Ansteuerung
Ein Flash-Speicher besteht aus einer bestimmten, von der Speichergröße abhängigen Anzahl einzelner Speicherelemente. Die Bytes oder Worte (typisch durchaus bis 64 Bit) können einzeln adressiert werden. Dabei können sie in einigen Architekturen auch einzeln geschrieben werden, wogegen bei anderen nur größere Datenmengen auf einmal programmiert werden können. In der Regel ist die entgegengesetzte Operation, das Löschen, aber nur in größeren Einheiten, sogenannten Sektoren (meistens ein Viertel, Achtel, Sechzehntel usw. der Gesamtspeicherkapazität) möglich. Dabei ist die logische Polarität nicht immer gleich: Es existieren sowohl Implementierungen, die das Programmieren als Übergang von logisch 0 nach 1 realisieren, als auch umgekehrt. ⓘ
Gemeinsames Merkmal ist aber immer, dass die beiden Operationen:
- jeweils nur den Übergang in eine Richtung (0 nach 1 oder 1 nach 0) darstellen und
- (oft) nur eine von beiden bit-selektiv arbeiten kann: das Programmieren. ⓘ
Das bedeutet, dass zum Wiederbeschreiben immer erst eine Löschoperation (auf einem Byte bei manchen EEPROM-Architekturen, auf einem Sektor bei Flash) nötig ist und dann das gewünschte Bit-Pattern, also der gewünschte Speicherinhalt durch Programmieroperationen hergestellt wird. ⓘ
Oft müssen zum Schreiben auf den Flash-Speicher spezielle Kommandos (in Form einer Sequenz von anzulegenden genau spezifizierten Daten-/Adresspaaren) an den Flash-Speicher gegeben werden. Das ist eine Sicherheitsmaßnahme gegen unbeabsichtigtes Beschreiben oder Löschen des Speichers. ⓘ
All diese Detailoperationen geschehen in der Regel transparent für den Benutzer und das jeweilige Anwendungsprogramm. Meistens gibt es für Flash-Speicher optimierte Dateisysteme, die diese Verfahrensweisen implementieren. Manche Flash-Speicher wie beispielsweise USB-Sticks tragen auch zur Bedienung der Schnittstelle zum Rechner einen eigenen Mikrocontroller, auf welchem Wear-Leveling-Algorithmen implementiert sind, die dafür sorgen, dass auch ohne ein solches optimiertes Dateisystem der Datenträger möglichst gleichmäßig abgenutzt wird. ⓘ
Architekturen
Am Markt sind mit Stand 2005 zwei Flash-Architekturen gängig, die sich in der Art der internen Verschaltung der Speicherzellen und damit in der Speicherdichte und Zugriffsgeschwindigkeit unterscheiden. Grundsätzlich sind die Speicherzellen als Matrix angeordnet, wobei über eine Koordinate die Adressleitungen zur Auswahl einer Spalte oder Zeile von Speicherzellen dienen und in der anderen Koordinate Datenleitungen zu den Speicherzellen führen. Die Realisierung der Datenleitungen stellt den wesentlichen Unterschied zwischen den Architekturen NAND-Flash und NOR-Flash dar. ⓘ
NOR-Flash
Die Speicherzellen sind über Datenleitungen parallel geschaltet – diese können je nach genauer Architektur auf der Source- oder der Drain-Seite liegen. Das entspricht einer Verschaltung wie im n-Kanal-Zweig eines NOR-Gatters in CMOS. Der Zugriff kann hier wahlfrei und direkt erfolgen. Deshalb wird der Programmspeicher von Mikrocontrollern aus NOR-Flash aufgebaut. ⓘ
Die NOR-Architektur setzt auf den Ersatz von UV-löschbaren EPROMs (die zwischenzeitlich von Flash-Bausteinen nahezu ersetzt sind und kaum noch weiterentwickelt werden). Außerdem lassen sich hier erheblich kürzere Zugriffszeiten realisieren: Die Parallelschaltung hat den geringeren Widerstand zwischen Stromquelle und Auswerteschaltung. ⓘ
Anzahl der Löschzyklen
Defektmanagement durch Software
Um solche Defekte zu vermeiden, wird die Treibersoftware so ausgelegt, dass sie die Schreib- und Löschaktionen möglichst gleichmäßig über den gesamten Speicherbereich eines Bausteins verteilt und beispielsweise nicht einfach immer bei Adresse 0 anfängt zu schreiben. Man spricht dabei von Wear-Leveling-Algorithmen (deutsch: Algorithmen für gleichmäßige Abnutzung). ⓘ