Warum sollte man immer noch normales EEPROM anstelle von Flash verwenden?

Gibt es einen Grund, warum Menschen heutzutage immer noch normale EEPROMs anstelle von Flash-Speichern verwenden (und in neuen Systemen implementieren)?

Aus dem Flash-Speicher Wikipedia :

Flash-Speicher wurde aus EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) entwickelt.

Gibt es Nachteile (Stromverbrauch, Platz, Geschwindigkeit usw.) bei der Verwendung von Flash anstelle von normalem EEPROM?

Ich denke, Sie könnten zwischen EPROM (nur unter UV löschbar, meistens veraltet) und EEPROM (elektrisch löschbar) verwechselt werden.
@ pjc50 bin ich nicht - ich habe den falschen Teil des Wikis zitiert, jetzt behoben - danke :)
Flash wird in großen Blöcken gelöscht, während EEPROM pro Byte gelöscht werden kann.
Flash darf auch nur in großen Brocken geschrieben werden. Können Sie ein einzelnes Byte auf eine SD-Karte schreiben?
Diese Frage macht keinen Sinn, da Flash EEPROM ist .
@OlinLathrop Soweit ich weiß, ist Flash eine bestimmte Art von EEPROM. Ich ändere den Titel für Sie.
Sie würden nie wissen, dass sie gleich sind, wenn Sie PIC-Datenblätter lesen ... sie haben sogar unterschiedliche Ausdauer. Aber ich vermute, dass es am Marketing liegt. Schließlich haben sie auch "Enhanced Flash". Übrigens ist das EEPROM auf dem PIC 32 weg, und das minimale Flash-Seitenschreiben beträgt 4k Bytes.
@gbarry: Sie sind nicht gleich. Flash ist EEPROM, aber nicht alles EEPROM ist Flash. Denken Sie daran, was EEPROM bedeutet, was ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher ist .

Antworten (2)

Um pedantisch zu sein, FLASH-Speicher ist lediglich eine Form von EEPROM: Hier gibt es einen Marketing- / Branding-Aspekt. Typischerweise besteht die heute verwendete Unterscheidung darin, dass EEPROMS Einzelbyte (oder Speicherwort ) löschbar/wiederbeschreibbar sind, während FLASH für Lösch-/Schreiboperationen blockbasiert ist.

Passend zur Frage:

  • EEPROMs erfreuen sich weiterhin großer Beliebtheit, da die maximalen Lösch-/Schreibzyklenwerte um ein oder zwei Größenordnungen besser sind als bei FLASH
  • Da sich die Investitionen in das Design normalerweise im Laufe der Zeit amortisiert haben, wie bei jeder ausgereiften Technologie, reduzieren sich die Produktions- und Testkosten im Vergleich zu einer neueren Technologie.
Alle reden davon, ein einzelnes Byte oder blockbasiert zu löschen, aber was ist die Theorie dahinter? Ich kann auch eine beliebige Anzahl von Bytes für den Flash-Speicher löschen !!!
@Frankenstein wie geht das?
Obwohl "Flash" sowohl ein Marketingbegriff als auch ein technischer Begriff ist, sind Halbleiterspeicher, die sich EEPROM nennen, oft so ausgelegt, dass Speicherzellen ohne zwischengeschalteten Programmierschritt gelöscht werden können. Wenn beim Löschen einer leeren Speicherzelle die Stromversorgung unterbrochen wird, bleibt sie leer. Geräte, die sich Flash nennen, verwenden oft ein Design, das einen Block nur löschen kann, wenn alle Zellen ähnliche Ladungen haben, was bedeutet, dass alle Zellen vor dem Löschen programmiert werden müssen. Eine unterbrochene Löschoperation kann somit dazu führen, dass Zellen programmiert werden, die zuvor leere Zellen waren.

Die Anzahl der Schreibzyklen, die die meisten EEPROMs verarbeiten können, übersteigt im Allgemeinen die Anzahl der Schreibzyklen, die die meisten Flash-Speicher verarbeiten können, bei weitem.

EEPROMS können im Allgemeinen ~100.000–1.000.000 Schreibvorgänge pro Zelle verarbeiten.
Flash ist im Allgemeinen auf ~1.000–100.000 Schreibvorgänge ausgelegt (es variiert stark je nach Flash-Typ).

Ein weiterer Vorteil von EEPROM gegenüber Flash besteht darin, dass Flash im Allgemeinen in Blöcken gelöscht werden muss. Wenn Ihre Schreibmuster also sequentielle Einzelbyte-Schreibvorgänge beinhalten, benötigen Sie viel mehr Schreibzyklen auf dem Flash-Speicher als mit dem entsprechenden EEPROM als EEPROM Speicher kann im Allgemeinen pro Byte gelöscht werden, anstatt dass der Flash-Löschzyklus pro Block verwendet wird.

Grundsätzlich wird Flash im Allgemeinen in Blöcken von ~64-512 Kilobyte gelöscht. Daher muss die Steuerung für jeden Schreibvorgang irgendwo innerhalb dieses Blocks den gesamten Block löschen, wobei ein Schreibzyklus für den gesamten Block verwendet wird. Sie können sehen, dass Sie, wenn Sie nacheinander Einzelbyte-Schreibvorgänge an jeder Adresse in einem Block ausführen würden, am Ende irgendwo zwischen 64 KB und 512 KB Schreibvorgänge für den gesamten Block ausführen würden, was leicht die gesamte Schreiblebensdauer des Flashs ausnutzen könnte.

Daher werden EEPROMs im Allgemeinen in Situationen verwendet, in denen der lokale Prozessor klein ist und nicht in der Lage ist, Schreibvorgänge auf jede Flash-Seite zu puffern.


Vieles davon wird mit fortschreitender Flash-Technologie immer weniger wahr. Es gibt Flash-Speicher-ICs, die Einrichtungen für lokales Write-Puffering sowie eine dramatisch ansteigende Write-Dauer auf Flash-Speicher beinhalten.

Die Größe eines Löschblocks und eines Schreibblocks sind normalerweise nicht gleich. Auch bei älterem Single-Bit-per-Cell-Flash konnte man Blöcke zuverlässig mindestens einmal überschreiben, solange beim Schreiben kein Bitwert zurück in den gelöschten Zustand geändert werden musste. Wenn beispielsweise 1 der gelöschte Zustand ist, könnte man mit 16-Bit-Blöcken 0bxxxxxxxx11111111 und später 0bxxxxxxxxyyyyyyyy schreiben (oder sogar 0b1010101011111111 und später 0b00000000xxxxxxxx).
@PaulA.Clayton - Guter Punkt.
@PaulA.Clayton: Eine Sache, von der ich mir wünsche, dass Flash-Anbieter dokumentieren würden, ist, ob man einen großen Teil eines bereits geschriebenen Flash-Blocks rechtmäßig auf Null setzen kann, ohne ihn zuerst löschen zu müssen. Es wäre sehr nützlich, eine Seite ausdrücklich direkt ungültig machen zu können, ohne an anderer Stelle nachverfolgen zu müssen, dass die Seite ungültig gemacht wurde.