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

34

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

Aus dem Flash-Speicher Wikipedia :

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

Gibt es Nachteile (Stromverbrauch, Speicherplatz, Geschwindigkeit usw.) bei der Verwendung von Flash anstelle eines normalen EEPROM?


quelle
Ich denke, Sie könnten zwischen EPROM (nur unter UV löschbar, meist veraltet) und EEPROM (elektrisch löschbar) verwechselt werden.
PJC50
@ pjc50 Ich bin nicht - ich habe den falschen Teil des Wikis zitiert, jetzt behoben - danke :)
2
Flash wird in großen Blöcken gelöscht, während EEPROM pro Byte gelöscht werden kann.
Jippie
2
Sie würden nie wissen, dass sie gleich sind, wenn Sie PIC-Datenblätter lesen. Sie haben sogar unterschiedliche Belastungen. Aber ich denke, es kann Marketing sein. Immerhin haben sie auch "Enhanced Flash". Übrigens ist das EEPROM auf dem PIC 32 verschwunden, und das minimale Schreiben der Flash-Seite beträgt 4 KB.
Gbarry
2
@gbarry: Sie sind nicht gleich. Flash ist ein EEPROM, aber nicht jedes EEPROM ist ein Flash. Denken Sie daran, was EEPROM bedeutet, dh elektrisch löschbarer, programmierbarer Nur-Lese-Speicher .
Olin Lathrop

Antworten:

26

Um pedantisch zu sein, ist FLASH-Speicher lediglich eine Form von EEPROM: Hier gibt es einen Marketing- / Branding-Aspekt. Typischerweise wird die Unterscheidung verwendet heute , dass EEPROMS Einbyte- (oder Lagerung sind Wort ) löschbaren / wiederbeschreibbaren, während FLASH blockbasierten Operationen für Lösch- / Schreib ist.

Relevant für die Frage:

  • EEPROMs sind weiterhin beliebt, da die maximalen Lösch- / Schreibzyklusbewertungen eine Größenordnung oder zwei besser sind als FLASH
  • Da sich die Investitionen in das Design wie bei jeder ausgereiften Technologie im Laufe der Zeit amortisiert haben, sinken die Produktions- und Testkosten im Vergleich zu einer neueren Technologie.
Anindo Ghosh
quelle
2
Alle reden davon, ein einzelnes Byte oder blockbasiert zu löschen, aber was ist die Theorie dahinter? Ich kann eine beliebige Anzahl von Bytes für den Flash-Speicher auch löschen!
Das Biest
1
@Frankenstein wie geht das
Abdullah Kahraman
19

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

EEPROMs können im Allgemeinen ~ 100.000-1.000.000 Schreibvorgänge pro Zelle verarbeiten.
Flash wird im Allgemeinen mit ~ 1.000-100.000 Schreibvorgängen bewertet (dies hängt stark von der Art des Flashs ab).

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, werden Sie viel mehr Schreibzyklen auf dem Flash-Speicher verwenden als mit dem entsprechenden EEPROM als EEPROM Der Speicher kann im Allgemeinen auf Byte-Basis gelöscht werden, anstatt dass der Löschzyklus-Flash 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 jedes Schreiben irgendwo in diesem Block den gesamten Block löschen, wobei ein Schreibzyklus für den gesamten Block verwendet wird. Wenn Sie nacheinander Einzelbyte-Schreibvorgänge für jede Adresse in einem Block ausführen, können Sie feststellen, dass Sie zwischen 64 KB und 512 KB Schreibvorgänge für den gesamten Block ausführen müssen, wodurch die gesamte Schreibdauer des Flash-Speichers problemlos ausgenutzt werden kann.

Daher werden EEPROMs im Allgemeinen in Situationen verwendet, in denen der lokale Prozessor nicht über die Fähigkeit verfügt, Schreibvorgänge auf jeder Flash-Seite zwischenzuspeichern.


Vieles davon wird mit dem Fortschritt der Flash-Technologie immer weniger wahr. Es gibt Flash-Speicher-ICs, die Einrichtungen für lokales Schreibpuffern sowie eine dramatisch zunehmende Schreibdauer für Flash-Speicher enthalten.

Connor Wolf
quelle
Die Größe eines Löschblocks und eines Schreibblocks ist normalerweise nicht gleich. Auch für ältere Einzelbit-pro-Zelle-Flashs könnte man Blöcke mindestens einmal zuverlässig überschreiben, solange das Schreiben keine Änderung eines Bitwerts zurück in den gelöschten Zustand erfordert. Wenn zum Beispiel 1 der gelöschte Zustand ist, könnte man mit 16-Bit-Blöcken 0bxxxxxxxx11111111 und später 0bxxxxxxxxyyyyyyyy (oder sogar 0b1010101011111111 und später 0b00000000xxxxxxxx) schreiben.
Paul A. Clayton
@ PaulA.Clayton - Guter Punkt.
Connor Wolf
@ PaulA.Clayton: Ich wünschte, Flash-Anbieter würden dokumentieren, ob man einen großen Teil eines bereits geschriebenen Flash-Blocks legitimerweise auf Null setzen kann, ohne ihn zuerst löschen zu müssen. Es wäre sehr nützlich, eine Seite direkt ausdrücklich für ungültig erklären zu können, ohne an anderer Stelle nachverfolgen zu müssen, dass die Seite für ungültig erklärt wurde.
Supercat