Wikipedia · einfach zusammengefasst · Stand
Flash-Speicher
Flash-Speicher sind digitale Speicherbausteine für eine nichtflüchtige Speicherung ohne Erhaltungs-Energieverbrauch. Die genaue Bezeichnung dieses …
Inhalt6 Abschnitte
Grundidee und Einsatz
Flash-Speicher, genauer Flash-EEPROM, sind digitale Halbleiterspeicher, die Daten nichtflüchtig speichern: Die Informationen bleiben ohne dauerhafte Versorgungsspannung erhalten. Anders als bei gewöhnlichem EEPROM sind die Daten in Blöcken organisiert. Flash-Speicher sind langsamer als Festwertspeicher (ROM), benötigen aber keine beweglichen Teile und lassen sich elektrisch löschen und neu programmieren.
Sie werden eingesetzt, wenn viele Daten dauerhaft auf kleinem Raum gespeichert werden sollen, etwa in SSDs, USB-Sticks, Speicherkarten, Digitalkameras, Mobiltelefonen, Smartphones und MP3-Playern. NOR-Flash dient außerdem häufig als Programmspeicher für Mikrocontroller oder zur Speicherung von Firmware und BIOS.
Wichtige Entwicklungsschritte waren:
- Intel brachte 1971 den von Dov Frohman entwickelten 2-Kibit-EPROM „1702“ auf den Markt. Zum Löschen musste er ausgebaut und mit UV-Licht bestrahlt werden.
- 1978 entwickelte Perlegos mit dem 2816-Chip den ersten EEPROM-Speicher, der ohne Quarzfenster elektrisch beschrieben und gelöscht werden konnte.
- Toshiba entwickelte NAND-Flash ab 1980 und veröffentlichte ihn 1984. Intel entwickelte NOR-Flash ab 1984 und veröffentlichte ihn 1988.
- 1985 wurde die erste Solid State Disk in einen IBM Personal Computer eingebaut; die Technik war damals so teuer, dass sich vor allem das Militär dafür interessierte.
- SanDisk stellte 1994 ein CompactFlash-Medium mit vier Megabyte vor. 1996 brachte M-Systems eine Solid State Disk auf den Markt, 1998 folgte Sonys erster Memory Stick.
Die Angaben zur Entwicklungsgeschichte sind im Ausgangsartikel teilweise als nicht ausreichend belegt gekennzeichnet.
Speicherung in einer Flash-Zelle
Eine Speicherzelle hält Informationen als elektrische Ladung in einem Metall-Isolator-Halbleiter-Feldeffekttransistor, kurz MISFET. Die Ladung befindet sich entweder auf einem Floating-Gate oder in einem Charge-Trapping-Speicherelement.
Das Floating-Gate ist ein elektrisch isoliertes Gate zwischen Steuer-Gate und Source-Drain-Kanal. Es ist durch ein Dielektrikum, meist Siliziumdioxid, von seiner Umgebung getrennt. „Floating“ bedeutet, dass sein elektrisches Potential nicht direkt festgelegt ist. Beim Charge-Trapping werden Elektronen und Defektelektronen dagegen an Haftstellen in einer nichtleitenden Siliciumnitridschicht festgehalten. In beiden Bauformen verändert die gespeicherte Ladung die Leitfähigkeit des darunterliegenden Kanals. Dieser messbare Unterschied stellt die Information dar.
Beim Programmieren eines Floating-Gates werden durch eine hohe positive Spannung von 10–18 V Elektronen auf das Gate gebracht. Ihre negative Ladung wirkt der Spannung des Steuer-Gates entgegen, sodass im Source-Drain-Kanal kein Strom mehr fließt, obwohl der Transistor eigentlich geöffnet sein sollte. Zum Löschen werden die Elektronen durch eine hohe negative Spannung wieder entfernt. Bei zu starkem Löschen kann ein „over erase“ entstehen: Der Transistor leitet dann selbst ohne Spannung am Steuer-Gate. Das ist besonders bei NOR-Flash problematisch.
Ob der geladene oder der ungeladene Zustand logisch 0 beziehungsweise 1 bedeutet, hängt von der Implementierung ab. Üblicherweise wird der durch blockweises Löschen erzeugte Zustand als 0 („gelöscht“) und der bitweise eingestellte Zustand als 1 („programmiert“) bezeichnet.
Das Durchqueren der isolierenden Oxidschicht wird durch den quantenmechanischen Fowler-Nordheim-Tunneleffekt ermöglicht. Häufig unterstützt das CHE-Verfahren („channel hot electron“) den Vorgang: Eine Spannung zwischen Drain und Source beschleunigt Elektronen im Kanal und hebt sie auf ein höheres Energieniveau. Dadurch können sie bereits bei typischerweise 10 V zwischen Gate und Kanal zum Floating-Gate tunneln.
Frühe Zellen unterschieden zwei Ladungszustände und speicherten daher ein Bit. Neuere Zellen können mehrere Bits speichern. Bei Floating-Gates werden dazu mehrere Leitfähigkeitsniveaus unterschieden. Bei Charge-Trapping kann jeweils ein Bit nahe der Source- und eines nahe der Drain-Region abgelegt werden; beide werden durch Umkehr der Richtung des Lesestroms getrennt ausgelesen.
Adressieren, Schreiben und Löschen
Ein Flash-Speicher besteht aus zahlreichen einzeln adressierbaren Speicherelementen. Bytes oder Wörter von typischerweise bis zu 64 Bit lassen sich adressieren. Je nach Architektur können sie einzeln geschrieben werden, oder es müssen größere Datenmengen gemeinsam programmiert werden. Das Löschen erfolgt normalerweise nur in größeren Einheiten, den Sektoren. Ein Sektor umfasst häufig ein Viertel, Achtel oder Sechzehntel der gesamten Speicherkapazität.
Programmieren und Löschen ändern Bits jeweils nur in einer Richtung, also entweder von 0 nach 1 oder von 1 nach 0. Welche Richtung gilt, hängt von der Implementierung ab. Oft kann lediglich das Programmieren einzelne Bits auswählen. Vor dem Wiederbeschreiben ist deshalb zunächst eine Löschoperation erforderlich; anschließend erzeugen Programmieroperationen das gewünschte Bitmuster. Bei manchen EEPROM-Architekturen kann ein Byte gelöscht werden, bei Flash-Speichern dagegen ein ganzer Sektor.
Zum Schreiben und Löschen sind häufig genau festgelegte Folgen von Daten- und Adresspaaren als Kommandos notwendig. Diese Maßnahme schützt vor unbeabsichtigten Änderungen. Für Benutzer und Anwendungen bleiben solche Abläufe gewöhnlich unsichtbar. Optimierte Dateisysteme oder der Mikrocontroller eines Datenträgers übernehmen die Steuerung. Bei USB-Sticks verteilt dieser Controller Schreib- und Löschvorgänge mithilfe von Wear-Leveling möglichst gleichmäßig, damit einzelne Speicherbereiche nicht vorzeitig verschleißen.
NAND, NOR und Zelltechniken
Bei NAND- und NOR-Flash sind die Speicherzellen als Matrix angeordnet. Adressleitungen wählen Zeilen oder Spalten, während Datenleitungen zu den Zellen führen. Der entscheidende Unterschied liegt in der Verschaltung dieser Datenleitungen.
Beim NAND-Flash sind große Gruppen von beispielsweise 1024 Zellen in Reihe geschaltet und teilen sich eine Datenleitung. Daten können daher nicht beliebig zellenweise angesprochen werden, sondern werden in ganzen Gruppen nacheinander gelesen oder geschrieben. Die geringe Zahl von Datenleitungen spart Fläche und ermöglicht eine hohe Speicherdichte. Da auch Festplatten Daten blockweise übertragen, eignet sich NAND-Flash als Ersatz für Plattenspeicher. Die Architektur ist vor allem auf viel Kapazität auf kleinem Raum ausgerichtet, weniger auf minimale Zugriffszeiten.
Beim NOR-Flash sind die Zellen parallel mit Datenleitungen verbunden. Dadurch ist ein direkter, wahlfreier Zugriff möglich. NOR-Flash eignet sich deshalb besonders als Programmspeicher für Mikrocontroller und als Ersatz für UV-löschbare EPROMs. Die Parallelschaltung verringert den Widerstand zwischen Stromquelle und Auswerteschaltung und ermöglicht kürzere Zugriffszeiten.
Flash-Zellen lassen sich außerdem nach ihrer Geometrie unterscheiden. Dazu gehören Split-Gate-, ETOX-, UCP-, NROM- und Zwei-Transistor-Zellen. NROM verwendet Charge-Trapping in Siliciumnitrid und kann mit getrennten Ladungszonen nahe Source und Drain zwei Bits speichern. Bei großen NAND-Speichern wird diese Technik in vertikalen NAND-Strukturen, V-NAND, eingesetzt, die seit 2002 verfügbar sind. Eine Zwei-Transistor-Zelle kombiniert einen normalen n-Kanal-Transistor mit einem Flashtransistor. Sie benötigt mehr Fläche, kann aber einfacher anzusteuern sein.
Eine Multi-Level-Zelle speichert mehrere Bits durch mehrere Leitfähigkeitsniveaus. Zwei Bit erfordern vier, vier Bit bereits 16 unterscheidbare Niveaus statt der zwei Niveaus einer binären Zelle. Die höhere Kapazität geht mit längerer Zugriffszeit und größerer Fehlerwahrscheinlichkeit einher: Bei 16 Niveaus kann schon eine Leitfähigkeitsänderung um ein Sechzehntel des maximalen Unterschieds den gespeicherten Wert verändern.
Kapazität, Verschleiß und Fehlerkorrektur
Anfang 2009 lieferten mehrere Hersteller NAND-Flash mit 16 Gigabyte in SLC-Technik („Single Level Cell“) und 32 Gigabyte in MLC-Technik („Multi Level Cell“); NOR-Flash erreichte gleichzeitig 1 Gigabyte. Bei NAND werden Adress- und Datensignale über dieselben Pins übertragen, also gemultiplext. NOR besitzt getrennte Anschlüsse und kann schneller zugreifen, benötigt aber mehr Pins und grundsätzlich größere Gehäuse. Im Februar 2024 waren SSDs mit bis zu 100 TB erhältlich.
Flash-Speicher verschleißen beim Löschen. Die dafür benötigten hohen Spannungen lassen Elektronen durch die Oxidschicht tunneln und beschädigen diese bei jedem Vorgang geringfügig. Wenn sie nicht mehr ausreichend isoliert, bleiben Elektronen nicht mehr auf dem Floating-Gate, und die gespeicherte Information geht verloren. Die garantierte Zahl von Lösch- beziehungsweise Schreibzyklen heißt Endurance. Genannt werden 10.000 bis 100.000 Zyklen für NOR-Flash und bis zu zwei Millionen für NAND-Flash. Abhängig von Hersteller, Technik und Strukturgröße liegen Herstellerangaben auch zwischen 3.000 und mehreren 100.000 Zyklen. Micron Technology und Sun Microsystems meldeten 2008 einen SLC-NAND-Speicher mit einer erwarteten Lebensdauer von 1.000.000 Zyklen. Eine weitere Kenngröße ist die Retention, also die Zeit, während der Daten fehlerfrei erhalten bleiben.
Der Ausfall einer einzelnen Zelle macht den gesamten Speicher nicht sofort unbrauchbar. Zu jedem Block von 512 Byte werden zusätzliche Schutzbits gespeichert. Damit lassen sich einzelne fehlerhafte Bits korrigieren; Fehler über mehrere Bits werden nicht sicher erkannt. Die Ansteuerlogik meldet betroffene Blöcke, und die Treibersoftware kann sie als defekt markieren. Eine Defekttabelle liegt im normalerweise nicht beschriebenen Spare- oder Reservebereich. Für Fehlererkennung und -korrektur werden unter anderem Hamming-, BCH- und Reed-Solomon-Codes verwendet.
Wear-Leveling verteilt Schreib- und Löschaktionen möglichst gleichmäßig über den Speicher, statt stets an derselben Adresse zu beginnen. Dadurch werden örtlich konzentrierter Verschleiß und frühe Defekte vermieden.
Vor- und Nachteile
Flash-Speicher konkurrieren vor allem mit Festplatten sowie optischen Speichern wie DVDs und Blu-ray-Discs. Da sie keine beweglichen Teile besitzen, sind sie mechanisch robust, geräuschlos und weitgehend unempfindlich gegen Erschütterungen. Sie verbrauchen wenig Energie, entwickeln wenig Wärme und ermöglichen kleine, leichte Geräte. Eine 256-GB-microSD-Karte erreicht einschließlich Plastikgehäuse eine Datendichte von ungefähr 4,43 GB/mm³. Kurze Zugriffszeiten steigern die Leistung und erlauben den Einsatz als schneller Zwischenspeicher, beispielsweise als ReadyBoost-Cache. Bei kleinen Speichersystemen, etwa günstigen Netbooks, können auch die Mindestkosten unter denen einer Festplatte liegen.
Gegenüber flüchtigem RAM sind die Datenraten jedoch deutlich niedriger. Bei NAND-Flash sind sowohl Lese- als auch Schreibzugriffe langsamer; bei NOR-Flash betrifft dies vor allem das Schreiben. Schreiben dauert außerdem erheblich länger als Lesen, und das notwendige Löschen ganzer Blöcke verursacht zusätzliche Verzögerungen. Die Kosten pro Gigabyte sind höher als bei Festplatten und optischen Datenträgern.
Ein Hauptproblem ist die Fehleranfälligkeit: Löschvorgänge beschädigen Sektoren, bis diese nicht mehr beschreibbar sind. Zusätzlich können dauerhafte Bitfehler auftreten. Fehlerkorrektur kann solche Schäden verbergen, erhöht aber Aufwand und Komplexität des Controllers. Weil defekte Sektoren ausgemustert werden, nimmt die nutzbare Kapazität mit der Zeit ab; laut Artikel ist dieser Effekt gegenüber der Lebensdauer einer Festplatte vernachlässigbar.
Bei sehr langer Nichtbenutzung oder minderwertigen Datenträgern kann Ladungsverlust Daten beschädigen. Die Firmware verhindert dies normalerweise, indem sie Daten im Leerlauf auffrischt. Solche Fehler sind logisch, nicht physisch, sodass die betroffenen Sektoren erneut verwendet werden können. Bei einem physischen Hardwaredefekt ist die Datenrettung dagegen aufwendiger und tendenziell weniger erfolgreich als bei anderen Datenträgertypen. Die Aussagen dieses Abschnitts sind im Ausgangsartikel teilweise als nicht ausreichend belegt gekennzeichnet.