Was ist der Unterschied zwischen Flash-Speicher und EEPROM?

Flash-Speicher und EEPROM verwenden beide Floating-Gate-Transistoren zum Speichern von Daten. Was unterscheidet die beiden und warum ist Flash so viel schneller?

Antworten (5)

In die ersten ROM-Geräte mussten Informationen über mechanische, fotolithografische oder andere Mittel eingefügt werden (vor integrierten Schaltkreisen war es üblich, ein Gitter zu verwenden, in dem Dioden selektiv installiert oder weggelassen werden konnten). Die erste große Verbesserung war ein "Sicherungs-PROM" - ein Chip, der ein Gitter aus verschmolzenen Dioden und Zeilentreibertransistoren enthielt, die stark genug waren, um durch Auswählen einer Zeile und Erzwingen des Zustands des Ausgangs die Sicherungen an allen Dioden durchbrennen zu lassen man wollte nicht. Obwohl solche Chips elektrisch beschreibbar waren, verfügten die meisten Geräte, in denen sie verwendet werden sollten, nicht über die leistungsstarke Treiberschaltung, die zum Beschreiben erforderlich ist. Stattdessen wurden sie mit einem Gerät geschrieben, das als "Programmierer" bezeichnet wird, und dann in die Ausrüstung installiert, die sie lesen musste.

Die nächste Verbesserung war eine Speichervorrichtung mit implantierter Ladung, die es ermöglichte, Ladungen elektrisch zu implantieren, aber nicht zu entfernen. Wenn solche Vorrichtungen in UV-transparenten Gehäusen (EPROM) verpackt wären, könnten sie gelöscht werden, indem sie etwa 5 bis 30 Minuten UV-Licht ausgesetzt werden. Dadurch wurde es möglich, Geräte wiederzuverwenden, deren Inhalt sich als nicht wertvoll herausstellte (z. B. fehlerhafte oder unfertige Softwareversionen). Indem dieselben Chips in ein undurchsichtiges Gehäuse gesteckt wurden, konnten sie für Endbenutzeranwendungen kostengünstiger verkauft werden, bei denen es unwahrscheinlich war, dass jemand sie löschen und wiederverwenden wollte (OTPROM). Eine nachfolgende Verbesserung ermöglichte es, die Geräte elektrisch ohne UV-Licht (frühes EEPROM) zu löschen.

Frühe EEPROM-Vorrichtungen konnten nur massenhaft gelöscht werden, und die Programmierung erforderte Bedingungen, die sich stark von denen unterschieden, die mit dem normalen Betrieb verbunden sind; Folglich wurden sie wie PROM / EPROM-Geräte im Allgemeinen in Schaltkreisen verwendet, die sie lesen, aber nicht schreiben konnten. Spätere Verbesserungen des EEPROM ermöglichten das Löschen kleinerer Bereiche, wenn nicht einzelner Bytes, und ermöglichten es ihnen auch, von denselben Schaltkreisen geschrieben zu werden, die sie verwendeten. Trotzdem änderte sich der Name nicht.

Als eine Technologie namens „Flash ROM“ auf den Markt kam, war es für EEPROM-Geräte ziemlich normal, dass einzelne Bytes innerhalb einer Anwendungsschaltung gelöscht und neu geschrieben werden konnten. Flash-ROM war in gewisser Weise funktional ein Rückschritt, da das Löschen nur in großen Teilen stattfinden konnte. Dennoch ermöglichte die Beschränkung des Löschens auf große Brocken, Informationen viel kompakter zu speichern, als dies mit EEPROM möglich war. Darüber hinaus haben viele Flash-Geräte schnellere Schreibzyklen, aber langsamere Löschzyklen, als es für EEPROM-Geräte typisch wäre (viele EEPROM-Geräte würden 1–10 ms benötigen, um ein Byte zu schreiben, und 5–50 ms, um es zu löschen; Flash-Geräte würden im Allgemeinen weniger als 100 us benötigen schreiben, aber einige benötigten Hunderte von Millisekunden zum Löschen).

Ich weiß nicht, ob es eine klare Trennlinie zwischen Flash und EEPROM gibt, da einige Geräte, die sich selbst "Flash" nannten, byteweise gelöscht werden konnten. Nichtsdestotrotz scheint der heutige Trend dahin zu gehen, den Begriff "EEPROM" für Geräte mit Per-Byte-Löschfähigkeiten und "Flash" für Geräte zu verwenden, die nur das Löschen großer Blöcke unterstützen.

Was meinen Sie mit "Flash speichert Informationen viel kompakter als es mit EEPROM möglich war" und warum können die Löschzyklen im Flash-Speicher größer sein als die Schreibzyklen?
@Frankenstein: EEPROM-Schaltungsdesigns erforderten im Allgemeinen Platz zum Löschen von Schaltungen in denselben Schichten des Chips wie Programmier- und Leseschaltungen. Obwohl es eine Vielzahl von Flash-Schaltungsdesigns gibt, vermeiden sie im Allgemeinen eine solche Anforderung.
danke +1, aber warum sollte das wichtig sein! ist es aus diesem einzigen Grund, warum FLASH-Speicher schneller als EEPROM sind?
@Frankenstein: EEPROM-Programmier- und Löschzyklen finden auf ähnliche Weise statt. Die meisten Flash-Geräte verwenden völlig unterschiedliche Mechanismen zum Programmieren und Löschen. Mindestens ein Gerät, mit dem ich auf sehr niedrigem Niveau gearbeitet habe, war der Mikrocontroller TI 320F206, der die Benutzersoftware für die Steuerung des Timings von Programmier- und Löschzyklen verantwortlich macht. Auf diesem Chip könnte man sich vorstellen, dass der Speicher aus einem Haufen Eimer mit Ventilen besteht, die sie selektiv entleeren können, die unter einem Haufen Sprinkler sitzen, die sie füllen können. Seltsame Dinge können passieren, wenn die Eimer...
... zu voll werden, also muss man, um das Array zu löschen, alle Eimer entleeren, die Sprinkler für eine Weile einschalten, prüfen, ob alle Eimer schon voll sind, die Sprinkler ein wenig mehr einschalten, wenn sie sind es nicht, dann überprüfen Sie es erneut usw. Wenn die Sprinkler zu lange eingeschaltet sind, ist es notwendig, eine spezielle Operation durchzuführen, um die Dinge zu reparieren [ich erinnere mich nicht genau, wie das funktioniert hat]. Alles erheblich komplizierter als EEPROM, das direkt gelöscht werden könnte.
Können Sie etwas über die Anzahl der Lese-Schreib-Zyklen sagen - wie groß ist der Bereich der Anzahl der Lese-Schreib-Zyklen im Flash-Speicher, bevor er beeinträchtigt / unbrauchbar wird, und wie manifestiert sich die Annäherung an die Grenze - Fehlerrate? fehlgeschlagene Schreibvorgänge?
@Nitin: Ich denke an Flash-Geräte, die normalerweise zwischen 1.000 und 100.000 Programmier- / Löschzyklen zulassen, und an EEPROM-Geräte, die normalerweise zwischen 10.000 und 10.000.000 zulassen. Ich habe nicht genug Erfahrung, um zu wissen, ob das Altern eher dazu führen würde, dass Schreibvorgänge länger dauern oder ganz fehlschlagen, oder ob es eher dazu führen würde, dass Bits irgendwann nach dem Schreiben ihren Zustand ändern. Ich weiß, dass einige Flash-Chips angeben, dass Löschvorgänge in einer Zeile die Ladungen in benachbarten Zeilen leicht verringern, so dass, wenn die Nachbarn einer Zeile ...
... mehr als ein Dutzend Mal umprogrammiert werden, ohne dass die Reihe selbst neu programmiert wird, können Bits innerhalb dieser Reihe spontan kippen.
@supercat vielen Dank für diese Erklärung - die jetzt eine weitere Frage aufwirft :-). Ich verwende ein Adafruit-Board mit Sensoren, um Umweltwerte und Biometrie zu protokollieren. Das Schreibvolumen kann angepasst werden, muss aber mehrere 100 Mal pro Sekunde betragen, damit die Schreibfrequenz hoch ist – der Flash-Speicher hat beispielsweise 256 MB und kann beispielsweise in einer Woche gefüllt werden. Wenn jetzt alles auf einmal gelöscht wird, wenn es voll ist, und ich dann neu beginne zu schreiben, ist das ein Zyklus? Es gibt Hunderttausende zusammenhängender Schreibvorgänge, aber nur einen Lesevorgang, wenn sie alle auf einen Hub hochgeladen werden. Schätzen Sie Ihre Hilfe sehr.
@Nitin: Das gemeinsame Schreiben und Löschen eines Blocks stellt einen Zyklus in diesem Block dar. Im Allgemeinen ist die primäre Betrachtung der Lebensdauer die maximale Anzahl von Malen, die ein bestimmter Block geschrieben und gelöscht wird.

Spoiler: EEPROM ist tatsächlich Flash.

Wie die Antwort von Supercat brillant hervorhob, ist EEPROM eine Weiterentwicklung der älteren UV-löschbaren EPROMs (EEPROMs "EE" steht für "Electrically Eraseable"). Obwohl es sich um eine Verbesserung gegenüber seinem alten Kumpel handelt, ist die Art und Weise, wie Informationen gespeichert werden, beim heutigen EEPROM genau die gleiche wie beim Flash-Speicher.



Der EINZIGE große Unterschied zwischen den beiden ist die Lese-/Schreib-/Löschlogik.
  • NAND-Flash (normaler Flash):

    Kann nur in Seiten gelöscht werden, auch bekannt als. Blöcke von Bytes. Sie können einzelne Bytes lesen und schreiben (über ungeschriebene), aber beim Löschen müssen viele andere Bytes gelöscht werden.

    In Mikrocontrollern wird es im Allgemeinen zum Speichern von Firmware verwendet. Einige Implementierungen unterstützen die Flash-Handhabung innerhalb der Firmware. In diesem Fall können Sie diesen Flash verwenden, um Informationen zu speichern, solange Sie nicht mit verwendeten Seiten herumspielen (andernfalls löschen Sie Ihre Firmware).

  • NOR-Flash (auch bekannt als EEPROM):

    Kann einzelne Bytes lesen, schreiben und löschen. Seine Steuerlogik ist so ausgelegt, dass alle Bytes einzeln zugänglich sind. Obwohl es langsamer als normaler Blitz ist, kommt diese Funktion kleineren/älteren elektronischen Geräten zugute. Beispielsweise verwendeten ältere CRT-Fernseher und -Monitore EEPROMs, um Benutzerkonfigurationen wie Helligkeit, Kontrast usw. zu speichern.

    In Mikrocontrollern verwenden Sie das im Allgemeinen zum Speichern von Konfigurationen, Zuständen oder Kalibrierungsdaten. Es ist dafür besser als Flash, da Sie sich zum Löschen eines einzelnen Bytes nicht (im RAM) an den Inhalt der Seite erinnern müssen, um ihn neu zu schreiben.



**Fun Fact**
Es gibt ein weit verbreitetes Missverständnis, dass *NOR Flash* *NOR-Gatter* verwendet, während *NAND Flash* *NAND-Gatter* verwendet (und tatsächlich scheint es offensichtlich). **Das ist jedoch nicht wahr.** Der Grund für die Benennung ist die Ähnlichkeit der Steuerlogik jedes Speichertyps mit den schematischen Symbolen der NAND- und NOR-Gatter.
toller Kommentar. Ich verstehe jetzt besser, warum ein MCU-SDK einen Treiber bereitstellen würde, um ein EEPROM auf ihrem Flash zu emulieren.
Wie ich es in anderen Online-Quellen gelesen habe: "Flash-Speicher schreibt in 'Seiten' und löscht in 'Blöcken'." Ich denke jedoch, dass die Seiten- und Blockgrößen gleich sein können, dh indem in jedem Block nur 1 Seite vorhanden ist.

Flash ist eine Art EEPROM (Electrically Erasable Programmable Read-Only Memory). „Flash“ ist eher ein Marketingbegriff als eine bestimmte Technologie. Diese Begriffe haben sich jedoch sozusagen angenähert, um einen EEPROM-Typ zu bezeichnen, der für große Größe und Dichte optimiert ist, normalerweise auf Kosten großer Lösch- und Schreibblöcke und geringerer Lebensdauer.

Warum nennen sie es immer noch Nur-Lese-Speicher, ist das nicht dumm, wenn es gelesen und geschrieben wird?
@skyler: Es ist teilweise historisch und teilweise macht es Sinn. Das ursprüngliche ROM (Nur-Lese-Speicher) wurde maskenprogrammiert, was bedeutet, dass es als Schritt in der Chipkonstruktion durchgeführt wurde. Dann gab es schmelzbare Verbindungen, die das P in PROM setzten. Das heutige EEPROM ist immer noch ein Lesespeicher. Der Vorgang des Schreibens ist viel komplizierter und langsamer als das Lesen und verschleißt in diesem Fall den Chip. Diese Art von Floating-Gate-Speicherzellen kann nur so oft gelöscht und beschrieben werden, bevor sie physikalisch versagen.
Können Sie eine magnetische Festplatte oder einen Floating-Gate-Transistor öfter beschreiben?
@skyler: Wenn man einen Bereich einer Festplatte so schnell wie möglich beschreiben würde, könnte man ihn wahrscheinlich über eine Milliarde Mal pro Jahr schreiben, über Jahre hinweg, ohne dass er sich abnutzt. Floating-Gate-Transistoren kommen ohne Wear-Leveling nicht in die Nähe. Mit Wear Leveling wäre die Datenmenge, die mit maximaler Geschwindigkeit auf ein Flash-Gerät geschrieben werden könnte, bevor es verschleißt, vergleichbar mit der einer Festplatte (einige Flash-Geräte wären wahrscheinlich besser, andere schlechter).
@skyler: Viele frühe EEPROM-Chips könnten für den Nur-Lese-Zugriff direkt an einen Mikroprozessorbus angeschlossen werden, aber das Schreiben auf sie würde Bedingungen erfordern, die ein normaler Mikroprozessorbus nicht erzeugen könnte. Als solche wurden sie oft mit einem Gerät namens "Programmierer" geschrieben und dann an ein Gerät angeschlossen, das Daten von ihnen las.
Das Atmwga16-Datenblatt besagt, dass es a) 16 KByte selbstprogrammierbaren Flash-Programmspeicher im System und b) 512 Byte EEPROM hat. Kannst du bitte Erklären...

Flash-Speicher ist eine Variante von EE-PROM, die immer beliebter wird. Der Hauptunterschied zwischen Flash-Speicher und EE-PROM besteht im Löschverfahren. EE-PROM kann auf Registerebene gelöscht werden, aber auch der Flash-Speicher muss gelöscht werden in ihrer Gesamtheit oder auf Sektorebene.

Wie hat sich Ihre Antwort gegenüber der bereits akzeptierten verbessert? Es scheint mir nicht, dass Sie dem, was bereits gesagt wurde, irgendwelche Informationen oder Perspektiven hinzugefügt haben.

"Flash"-Speicher ist ein Sammelbegriff für die Speicherung in Speicherchips (nichtflüchtiger Speicher) und nicht in sich drehenden Festplatten wie Disketten, CDs, DVDs, Festplatten usw.

NOR und NAND sind die ursprünglichen Flash-Speicherchips und wurden von Fujio Masuoka erfunden, als er um das Jahr 1980 für Toshiba arbeitete. „NOR“ und „NAND“ werden in den meisten USB-Sticks verwendet.

Flash-Speicher umfasst auch sowohl EEP-ROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) als auch NV-RAM (Non-Volatile Random-Access Memory). EEP-ROM ist billiger und wird für die Speicherung in den meisten System-on-Chips und Android-Geräten verwendet. NV-RAM ist teurer und wird für Solid-State-Laufwerke und Speicher in Apple-Geräten verwendet.

Die neuen NV-RAM-Chips sind viel schneller als EEP-ROM und andere Flash-Technologien.

Weitere Informationen finden Sie unter: http://www.crifan.com/___flash_memory_nand_eeprom_nvram_and_others_zt/

Fallen MRAM , FeRAM und PCRAM auch unter den Sammelbegriff?
DIMMs sind DIMMs, unabhängig von dynamischem RAM oder nichtflüchtigem RAM. MRAM, FeRAM und PCRAM, die als Speicherlaufwerke verwendet werden, fallen unter den Sammelbegriff „Flash-Speicher“.
Danke! Seit ich herausgefunden habe, dass Triple Level Cell NAND FLASH acht Ebenen hat und nicht drei , bin ich mir der Terminologie bewusster geworden (vorsichtig?).