Perché si dovrebbe ancora usare la normale EEPROM invece del flash?


34

C'è qualche motivo per cui le persone utilizzano ancora (e implementano in nuovi sistemi) le normali EEPROM al posto della memoria flash, al giorno d'oggi?

Dalla memoria Flash wikipedia :

La memoria flash è stata sviluppata dalla EEPROM (memoria di sola lettura programmabile e cancellabile elettricamente).

Ci sarebbero degli svantaggi (consumo energetico, spazio, velocità, ecc.) Sull'uso del flash invece della normale EEPROM?


Penso che potresti essere confuso tra EPROM (cancellabile solo ai raggi UV, per lo più obsoleto) e EEPROM (cancellabile elettricamente).
pjc50,

@ pjc50 Non lo sono - ho citato la parte sbagliata del wiki, risolto ora - grazie :)

2
Il flash viene cancellato in grossi blocchi, mentre EEPROM può essere cancellato per byte.
jippie,

2
Non sapresti mai che sono gli stessi dalla lettura dei fogli dati PIC ... hanno persino resistenze diverse. Ma suppongo che potrebbe essere marketing. Dopo tutto, hanno anche "Enhanced Flash". A proposito, la EEPROM è sparita sul PIC 32 e la scrittura minima della pagina flash è di 4k byte.
Gbarry

2
@gbarry: non sono gli stessi. Il flash è EEPROM, ma non tutte le EEPROM sono flash. Ricorda cosa significa EEPROM, ovvero memoria di sola lettura programmabile e cancellabile elettricamente .
Olin Lathrop,

Risposte:


26

Per essere pedanti, la memoria FLASH è semplicemente una forma di EEPROM: qui c'è un aspetto marketing / branding. In genere, la distinzione usata oggi è che le EEPROM sono cancellabili / riscrivibili a byte singolo (o parola di memoria ), mentre FLASH è basato su blocchi per operazioni di cancellazione / scrittura.

Rilevante per la domanda:

  • Le EEPROM continuano ad essere popolari a causa del fatto che le classificazioni del ciclo di cancellazione / scrittura massime sono di un ordine di grandezza o due migliori di FLASH
  • A causa degli investimenti nella progettazione che in genere sono stati ammortizzati nel tempo, come con qualsiasi tecnologia matura, i costi di produzione e test si riducono rispetto a una tecnologia più recente.

2
Tutti parlano di cancellare un singolo byte o basato su blocchi, ma qual è la teoria alla base di ciò ?? posso cancellare qualsiasi numero di byte anche per la memoria flash !!!
The Beast

1
@Frankenstein come viene fatto?
Abdullah Kahraman,

19

Il numero di cicli di scrittura che la maggior parte delle EEPROM può gestire generalmente supera di gran lunga il numero di cicli di scrittura che la maggior parte della memoria flash è in grado di gestire.

Le EEPROM possono generalmente gestire ~ 100.000-1.000.000 di scritture per cella.
Il flash è generalmente valutato a ~ 1.000-100.000 di scritture (varia notevolmente a seconda del tipo di flash).

Un altro vantaggio della EEPROM rispetto al flash è che il flash generalmente deve essere cancellato in blocchi, quindi se i tuoi schemi di scrittura comportano scritture sequenziali a byte singolo, utilizzerai molti più cicli di scrittura sulla memoria flash di quanto faresti con la EEPROM equivalente, come EEPROM la memoria può generalmente essere cancellata su una base per byte, piuttosto che il ciclo di cancellazione per blocco utilizzato da Flash.

Fondamentalmente, il flash viene generalmente cancellato in blocchi di ~ 64-512 kilobyte. Pertanto, per ogni scrittura in qualsiasi punto all'interno di quel blocco, il controller deve cancellare l'intero blocco, usando un ciclo di scrittura per l'intero blocco. Si può vedere, se si eseguono in sequenza scritture a byte singolo su ciascun indirizzo in un blocco, si finirebbe per eseguire ovunque tra 64K e 512K scritture sull'intero blocco, che potrebbe facilmente utilizzare l'intera resistenza di scrittura del flash.

Pertanto, le EEPROM sono generalmente utilizzate in situazioni in cui il processore locale è piccolo e non ha la capacità di bufferizzare le scritture su ciascuna pagina flash.


Molto di questo sta diventando meno vero man mano che la tecnologia flash avanza. Ci sono CI di memoria flash che includono le funzionalità per il buffering di scrittura locale, così come la resistenza di scrittura sulla memoria flash che aumenta in modo drammatico.


Le dimensioni di un blocco di cancellazione e di un blocco di scrittura non sono generalmente le stesse. Anche per i vecchi flash a singolo bit per cella, è possibile sovrascrivere i blocchi in modo affidabile almeno una volta, purché la scrittura non richieda il ripristino di un valore di bit allo stato cancellato. Ad esempio, se 1 è lo stato cancellato, con blocchi a 16 bit si potrebbe scrivere 0bxxxxxxxx11111111 e successivamente scrivere 0bxxxxxxxxyyyyyyyy (o anche 0b1010101011111111 e successivi 0b00000000xxxxxxxx).
Paul A. Clayton,

@ PaulA.Clayton - Buon punto.
Connor Wolf,

@ PaulA.Clayton: Una cosa che vorrei che i venditori di flash documentassero è se uno potrebbe legittimamente azzerare una grande porzione di un blocco flash già scritto senza doverlo prima cancellare. Essere in grado di invalidare espressamente una pagina direttamente senza dover tenere traccia altrove del fatto che la pagina è stata invalidata sarebbe molto utile.
supercat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.