Remove ads
digitale, nicht-flüchtige Speicherbausteine für Computer Aus Wikipedia, der freien Enzyklopädie
Flash-Speicher sind digitale Speicherbausteine für eine nichtflüchtige Speicherung ohne Erhaltungs-Energieverbrauch. Die genaue Bezeichnung dieses Speichertyps lautet Flash-EEPROM. Im Gegensatz zu gewöhnlichem EEPROM-Speicher lassen sich hier Bytes (die üblicherweise kleinsten adressierbaren Speichereinheiten) nicht einzeln löschen oder überschreiben. Flash-Speicher sind langsamer als Festwertspeicher (ROM).
Die Bezeichnung Flash entstand gemäß einer Anekdote aus dem Entwicklungslabor von Toshiba 1984 so: Shoji Ariizumi, ein Mitarbeiter des Projektleiters Fujio Masuoka, fühlte sich durch den blockweise arbeitenden Löschvorgang des Speichers an einen Blitz (englisch flash) einer Fotokamera erinnert, weshalb er Flash als Namen vorschlug.[1]
Der EPROM wurde von Dov Frohman bei Intel entwickelt. Intel brachte den 2-Kibit-EPROM „1702“ im Jahr 1971 auf den Markt. Der erste kommerzielle Mikroprozessor Intel 4004 von Intel (1971) hätte ohne den EPROM als Programmspeicher wohl weniger Erfolg gehabt.
Allerdings musste der 1702-EPROM zum Löschen ausgebaut und mit UV-Licht bestrahlt werden. Im Jahr 1978 entwickelte Perlegos den 2816-Chip: den ersten EEPROM-Speicher, der ohne Quarzfenster beschrieben und gelöscht werden konnte.[2]
NAND-Flash-Speicher wurde ab 1980 von Toshiba entwickelt (veröffentlicht 1984), NOR-Flash ab 1984 von Intel (veröffentlicht 1988).[3] 1985 wurde die erste Solid State Disk (kurz SSD) in einen IBM Personal Computer eingebaut.[4] Diese Technik war damals so teuer, dass nur das Militär sich für sie interessierte.
Die Geschichte der Flash-Speicher ist eng verbunden mit der Geschichte der Digitalkamera. Das erste CompactFlash-Medium mit vier Megabyte Kapazität wurde 1994 von SanDisk vorgestellt. Als auch M-Systems 1996 eine Solid State Disk auf den Markt brachte, wurden die Flash-Speicher für private Anwender interessant. 1998 stellte Sony den ersten Memory Stick vor; diese wurden auch in älteren Versionen der PlayStation verwendet.
Flash-Speicher finden überall dort Anwendung, wo Informationen nichtflüchtig (persistent) auf kleinstem Raum – ohne permanente Versorgungsspannung – gespeichert werden müssen. Dazu zählen auch weiterhin Speicherkarten für Digitalkameras und andere mobile Geräte wie Mobiltelefone, Smartphones und Handhelds. Andere Bauformen beziehungsweise Geräte, in denen diese Speichertechnik genutzt wird, sind USB-Sticks und MP3-Player sowie die bereits historische DiskOnChip. Letztere dienten beispielsweise für die dauerhafte Speicherung der Firmware in vielen Geräten mit Mikrocontrollern (Eingebettete Systeme, BIOS); zum selben Zweck zunehmend auch auf dem Mikrocontroller selbst integriert: embedded flash.
Bei einem Flash-EEPROM-Speicher werden Informationen (Bits) in einer Speichereinheit (Speicherzelle) in Form von elektrischen Ladungen auf einem Floating-Gate oder in einem Charge-Trapping-Speicherelement eines Metall-Isolator-Halbleiter-Feldeffekttransistors (englisch Metal Isolator Solid State Field Effect Transistor, MISFET) gespeichert. In beiden Fällen beeinflussen die Ladungen auf dem Gate (ortsfeste Raumladungen), wie bei normalen MISFETs, die Ladungsträger im darunter liegenden Gebiet zwischen Source- und Drain-Kontakt (dem sogenannten Kanal), wodurch die elektrische Leitfähigkeit des Feldeffekttransistors beeinflusst und dadurch eine dauerhafte Informationsspeicherung möglich wird.
Anders als das Gate bei normalen MISFETs ist das Floating-Gate von allen anderen Teilen (Kanalgebiet und von Steuer-Gate) durch ein Dielektrikum (derzeit meist Siliziumdioxid) elektrisch isoliert; das Potential auf dem Floating-Gate ist daher im Grunde undefiniert (dies wird auch als schwimmend, englisch floating, bezeichnet). Bei einem Charge-Trapping-Speicher übernimmt das eine elektrisch nichtleitende Schicht aus Siliciumnitrid; die Elektronen und Defektelektronen werden an Haftstellen (englisch trapping center) ortsfest gehalten. Wenngleich im Strukturaufbau beide Varianten deutliche Unterschiede aufweisen, ist das Funktionsprinzip mit ortsfest gehaltenen elektrischen Ladungen, welche einen MISFET in seinen Eigenschaften beeinflussen, in beiden Fällen dasselbe.
Damit Information gezielt gespeichert werden kann, müssen jedoch Ladungen auf das Floating-Gate bzw. auf die Charge-Trapping-Struktur gebracht und wieder entfernt werden können. Diese Änderung des Ladungszustands ist nur durch den quantenphysikalischen Tunneleffekt möglich, der es Elektronen erlaubt, den eigentlichen Nichtleiter zu passieren. Da dies jedoch nur durch große Unterschiede im elektrischen Potential über den Isolator (der eine Potentialbarriere für Ladungsträger darstellt) erfolgen kann, bewirkt die elektrische Isolation des Floating-Gates, dass eingebrachte Ladungen vom Floating Gate nicht abfließen können und der Speichertransistor seine Information lange Zeit behält.
In der Anfangsphase dieser Technik wurden nur zwei Ladungszustände unterschieden, daher konnte nur ein Bit je Zelle gespeichert werden. Inzwischen können Flash-EEPROM-Speicher hingegen mehrere Bits pro Speichertransistor speichern (z. B. MLC-Speicherzelle, TLC-Speicherzelle); man nutzt hierzu bei Floating-Gates die unterschiedliche elektrische Leitfähigkeit bei verschiedenen Ladungszuständen des Transistors und bei Charge-Trapping die Möglichkeit, je ein Bit an Information in der Drain- und in der Source-Region getrennt zu speichern. Das Auslesen der beiden Bits pro MISFET erfolgt durch Richtungsänderung des Auslesestromes im Kanal.
Die Speicherung eines Bits – im Folgenden ist nur der Speichervorgang bei einem Floating-Gate dargestellt – erfolgt über das Floating-Gate, das eigentliche Speicherelement des Flash-Feldeffekttransistors. Es liegt zwischen dem Steuer-Gate und der Source-Drain-Strecke und ist von dieser wie auch vom Steuer-Gate jeweils mittels einer Oxid-Schicht isoliert. Im ungeladenen Zustand des Floating-Gates kann, wenn das Steuer-Gate den Transistor auf „offen“ steuert, in der Source-Drain-Strecke (Kanal) ein Strom fließen. Werden über das Steuer-Gate durch Anlegen einer hohen positiven Spannung (10–18 V) Elektronen auf das Floating-Gate gebracht, so kann in der Source-Drain-Strecke auch bei eigentlich „offen“ geschaltetem Transistor kein Strom mehr fließen, da das negative Potential der Elektronen auf dem Floating-Gate der Spannung am Steuer-Gate entgegenwirkt und somit den Flash-Transistor geschlossen hält.
Der ungeladene Zustand wird wieder erreicht, indem die Elektronen durch Anlegen einer hohen negativen Spannung über die Steuergate-Kanal-Strecke wieder aus dem Floating-Gate ausgetrieben werden. Dabei ist es sogar möglich, dass der Flashtransistor in den selbstleitenden Zustand gerät, d. h., er leitet sogar dann Strom, wenn am Steuer-Gate keine Spannung anliegt (over erase): statt mit Elektronen ist das Floating-Gate nun quasi mit positiven Ladungsträgern (Defektelektronen, „Löchern“) besetzt. Das ist besonders in NOR-Architekturen (s. u.) problematisch.
Anmerkung: Ob der geladene oder ungeladene Floating-Gate-Zustand als jeweils 0- oder 1-Zustand der Speicherzelle angesehen wird, ist implementierungsabhängig. Per Konvention wird aber meist derjenige Zustand des Floating-Gates, der durch blockweises Löschen hergestellt wird, als 0 („gelöscht“) bezeichnet. Entsprechend bezeichnet man den bitweise einstellbaren Zustand als 1 („programmiert“).[5]
Der Mechanismus, der die Elektronen durch die isolierende Oxidschicht passieren lässt, wird Fowler-Nordheim-Tunneleffekt genannt (nach ihren ersten Erforschern), d. h., bei einem Flash-Speicher handelt es sich um die Anwendung eines nur quantenmechanisch deutbaren Effekts. Um die Wahrscheinlichkeit, dass Elektronen zum Floating-Gate tunneln, zu erhöhen, wird oft das Verfahren CHE (englisch channel hot electron) verwendet: Die Elektronen werden durch Anlegen einer Spannung über dem Kanal, also zwischen Drain und Source, beschleunigt und dadurch auf ein höheres Energieniveau (daher engl. hot) gehoben, wodurch sie schon bei geringeren Spannungen (typischerweise 10 V) zwischen Gate und Kanal zum Floating-Gate tunneln. (In obiger Abbildung zum Programmieren ist dieses Verfahren – allerdings für eine ältere Technik – angedeutet.)
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:
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.
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.
Die Speicherzellen sind in größeren Gruppen (z. B. 1024) hintereinander geschaltet (Reihenschaltung). Das entspricht dem n-Kanal-Zweig eines NAND-Gatters in der CMOS-Technik. Eine Gruppe teilt sich jeweils eine Datenleitung. Lesen und Schreiben ist dadurch nicht wahlfrei möglich, sondern muss immer in ganzen Gruppen sequentiell erfolgen. Durch die geringere Zahl an Datenleitungen benötigt NAND-Flash weniger Platz. Da Daten auch auf Festplatten blockweise gelesen werden, eignet sich NAND-Flash trotz dieser Einschränkung als Ersatz für Plattenspeicher.
Die NAND-Architektur zielt auf Märkte, in denen es auf viel Speicher auf wenig Raum ankommt, weniger jedoch auf geringe Zugriffszeit.
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.
Flash-Speicher haben eine begrenzte Lebensdauer, die in einer maximalen Anzahl an Löschzyklen angegeben wird (10.000 bis 100.000 Zyklen für NOR-Flash und bis zu zwei Millionen für NAND-Flash). Dies entspricht gleichzeitig der maximalen Anzahl Schreibzyklen, da der Speicher jeweils blockweise gelöscht werden muss, bevor er wieder beschrieben werden kann. Diese Zyklenzahl wird Endurance (Beständigkeit) genannt. Verantwortlich für diese begrenzte Lebensdauer ist das Auftreten von Schäden in der Oxidschicht im Bereich des Floating-Gates, was das Abfließen der Ladung bewirkt.[6]
Eine andere wichtige Kenngröße ist die Zeit der fehlerfreien Datenhaltung, die Retention.
Ein weiterer Nachteil ist, dass der Schreibzugriff bei Flash-Speicher erheblich langsamer erfolgt als der Lesezugriff. Zusätzliche Verzögerungen können dadurch entstehen, dass immer nur ganze Blöcke gelöscht werden können.
Das wichtigste Kriterium zur Unterscheidung von Flashtechniken ist die Geometrie der Speicherzelle, des Flashtransistors, unter anderem werden folgende Zelltypen unterschieden (dabei können mehrere der nachfolgenden Merkmale zugleich zutreffen):
Anfang 2009 lieferten mehrere Hersteller (Samsung, Toshiba und andere) NAND-Flash-Speicher mit 16 Gigabyte in SLC-Technik (Single Level Cell) und 32 Gigabyte in MLC-Technik (Multi Level Cell), NOR-Flash-Speicher erreichte zur gleichen Zeit 1 Gigabyte Speicherkapazität.
Der Unterschied in der Speicherkapazität führt vor allem dazu, dass bei NAND-Flash-Speicher die Daten- und Adress-Leitungen auf denselben Anschlüssen (Pins) ausgeführt werden, d. h., derselbe Anschluss abwechselnd für Daten- und Adressübermittlung genutzt wird („Multiplex“), während bei den NOR-Flash-Speichern diese getrennt sind. Dadurch können die NOR-Typen wesentlich schneller bei den Datenzugriffen sein, haben aber bedeutend mehr Pins und benötigen damit prinzipiell größere Gehäuse. De facto sind jedoch bei hohen Kapazitäten die Gehäuse der NAND-Typen nahezu genauso groß wie jene der NOR-Typen, was aber an dem sehr großen Speicherchip im Innern, nicht am Platzbedarf der Anschlüsse liegt. Dennoch sind die wenigsten Gehäusepins bei NAND-Typen tatsächlich angeschlossen, der Vorteil der simpleren „Verdrahtung“ des Bausteins im Gerät bleibt deshalb erhalten.
Mit Stand 02/2024 sind SSDs mit bis zu 100 TB Speichergröße erhältlich.[9]
Die maximale Anzahl der Löschzyklen von Flash-Speichern variiert je nach Hersteller, Technik (MLC- oder SLC-NAND, NOR) und Strukturgröße (50 nm, 34 nm, 25 nm). Die Herstellerangaben bewegen sich im Bereich von 3.000 bis zu mehreren 100.000. Micron Technology und Sun Microsystems gaben 2008 die Entwicklung eines SLC-NAND-Flash-Speichers bekannt, dessen Lebenserwartung 1.000.000 Zyklen beträgt.[10]
Der Flash-Speicher speichert seine Informationen auf dem Floating-Gate. Bei einem Löschzyklus durchtunneln die Elektronen die Oxidschicht. Dafür sind hohe Spannungen erforderlich. Dadurch wird bei jedem Löschvorgang die Oxidschicht, die das Floating-Gate umgibt, ein klein wenig beschädigt (Degeneration). Irgendwann ist die Isolation durch die Oxidschicht nicht mehr gegeben, die Elektronen bleiben nicht mehr auf dem Floating-Gate gefangen, und die auf der Speicherzelle gespeicherte Information geht verloren. Der Defekt einer einzelnen Zelle macht einen Flash-Speicher jedoch noch lange nicht unbrauchbar.
Ausfälle einzelner Zellen werden durch eine Fehlererkennung erkannt und in einem geschützten Bereich protokolliert. Für die Fehlererkennung und Fehlerkorrektur werden zu jedem Block (512 Byte) zusätzliche Bits gespeichert. Mit diesen Schutzbits sind einzelne fehlerhafte Bits korrigierbar, Fehler über mehrere Bits werden nicht sicher erkannt. Die Ansteuerlogik zeigt Fehler dieses Blocks an, die Treibersoftware kann dann diese Blocks als defekt markieren. Diese Defekttabelle befindet sich im sogenannten Spare-(Reserve-)Bereich des Flash, der im normalen Betrieb nicht beschrieben wird. Die Berechnung und Steuerung der Schutzbits wird in der Ansteuerlogik, nicht im Flash selbst realisiert. Neben einfachen Hamming-Codes kommen vor allem BCH-Codes und Reed-Solomon-Codes zur Anwendung.
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).
Als nichtflüchtiges Speichermedium steht der Flash-Speicher in Konkurrenz vor allem zu Festplatten[11] und optischen Speichern wie DVDs und Blu-ray-Discs.
Ein wesentlicher Vorteil liegt in der mechanischen Robustheit von Flash-Speicher, da keine beweglichen Teile enthalten sind. Demgegenüber sind Festplatten sehr stoßempfindlich (Head-Crash).[12]
Da ein Flash-Speicher ohne mechanisch bewegliche Teile auskommt, bietet er gleich eine Reihe von Vorteilen gegenüber anderen Festspeichern: Sowohl der Energieverbrauch als auch die Wärmeentwicklung sind geringer. Außerdem arbeitet der Speicher geräuschlos und ist weitestgehend unempfindlich gegen Erschütterungen. Durch die Implementierung als Halbleiterspeicher ergibt sich ein geringes Gewicht sowie eine kleine Bauform. So erreicht eine 256-GB-microSD-Karte inklusive Plastikgehäuse eine Datendichte von ≈4,43 GB/mm³. Die Zugriffszeiten sind im Vergleich zu anderen Festspeichern sehr kurz. Dadurch wird nicht nur die Leistungsfähigkeit verbessert, es erschließen sich auch neue Anwendungsfelder. So wird ein Flash-Speicher zum Beispiel als schneller Zwischenspeicher benutzt, beispielsweise als ReadyBoost-Cache. Die minimalen Kosten pro Speichersystem können gegenüber Festplatten geringer sein, zum Beispiel bei günstigen Netbooks.
Mit einem flüchtigen Speicher wie RAM (Random-Access Memory) kann die Flash-Technik nicht konkurrieren, da die erreichbaren Datenraten bei Flash deutlich geringer sind. Außerdem ist die Zugriffszeit bei NAND-Flash für Lese- und Schreibzugriffe deutlich größer. Bei NOR-Flash trifft dies nur auf die Schreibzugriffe zu. Die Kosten pro Gigabyte sind für Flash-Speicher noch deutlich größer als für Festplatten und optische Disks. Ein Hauptproblem der Flash-Speicher ist die Fehleranfälligkeit. Sektoren werden vor allem durch Löschzugriffe beschädigt, mit der Zeit unbeschreibbar und somit defekt (siehe Anzahl der Löschzyklen). Unabhängig davon können permanente Bitfehler auftreten. All diese Fehler können durch geeignete Fehlerkorrekturmaßnahmen versteckt werden, dies ist jedoch aufwendig und erhöht die Komplexität der Flash-Controller. Dennoch lässt es sich nicht verhindern, dass ein Flash-Speicher mit der Zeit kleiner wird, da die Anzahl der benutzbaren Sektoren abnimmt. Im Vergleich mit der Lebensdauer einer Festplatte ist dieser Effekt jedoch vernachlässigbar.[13]
Bei übermäßiger Nichtbenutzung und bei qualitativ minderwertigen Flash-Datenträgern könnte der Verlust elektrischer Ladung in den Transistoren Daten in Sektoren beschädigen. Die Firmware verhindert dies normalerweise durch das Auffrischen von Daten im Leerlauf. Derartige Fehler sind lediglich logische, keine physischen, und betroffene Sektoren sind wiederverwendbar.[14]
Im Falle eines physischen Hardware-Defektes ist eine Datenrettung aufwändiger und tendenziell weniger erfolgreich als mit anderen Datenträgertypen.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.