¿Por qué uno seguiría usando EEPROM normal en lugar de flash?

34

¿Hay alguna razón por la cual la gente todavía usa (e implementa en nuevos sistemas) EEPROM normales en lugar de memoria flash, hoy en día?

Desde la wikipedia de memoria Flash :

La memoria flash se desarrolló a partir de EEPROM (memoria de solo lectura programable y borrable eléctricamente).

¿Habría alguna desventaja (consumo de energía, espacio, velocidad, etc.) al usar flash en lugar de la EEPROM normal?


fuente
Creo que puede confundirse entre EPROM (solo borrable bajo UV, en su mayoría obsoleto) y EEPROM (borrable eléctricamente).
pjc50
@ pjc50 no lo estoy - Cité la parte incorrecta de la wiki, lo arreglé ahora - gracias :)
2
Flash se borra en fragmentos grandes, mientras que EEPROM se puede borrar por byte.
jippie
2
Nunca sabrías que son iguales al leer las hojas de datos de PIC ... incluso tienen diferentes duraciones. Pero supongo que puede ser marketing. Después de todo, también tienen "Flash mejorado". Por cierto, la EEPROM desapareció en el PIC 32, y la escritura mínima de la página flash es de 4k bytes.
gbarry
2
@gbarry: No son lo mismo. El flash es EEPROM, pero no todos los EEPROM son flash. Recuerde lo que significa EEPROM, que es memoria de solo lectura programable y borrable eléctricamente .
Olin Lathrop

Respuestas:

26

Para ser pedante, la memoria FLASH es simplemente una forma de EEPROM: aquí hay un aspecto de marketing / branding. Por lo general, la distinción que se usa hoy en día es que los EEPROMS son borrables / regrabables de un solo byte (o palabra de almacenamiento ), mientras que FLASH está basado en bloques para operaciones de borrado / escritura.

Relevante para la pregunta:

  • Las EEPROM continúan siendo populares debido a que las clasificaciones máximas de ciclo de borrado / escritura son un orden de magnitud o dos mejores que FLASH
  • Debido a que las inversiones en diseño generalmente se han amortizado con el tiempo, como con cualquier tecnología madura, el costo de producción y prueba se reduce en comparación con una tecnología más nueva.
Anindo Ghosh
fuente
2
Todo el mundo habla de borrar un solo byte o basado en bloques, pero ¿cuál es la teoría detrás de eso? ¡Puedo borrar cualquier número de bytes para la memoria flash también!
The Beast
1
@Frankenstein, ¿cómo se hace eso?
Abdullah Kahraman
19

El número de ciclos de escritura que la mayoría de las EEPROM pueden manejar generalmente supera con creces el número de ciclos de escritura que la mayoría de la memoria flash puede manejar.

EEPROMS generalmente puede manejar ~ 100,000-1,000,000 escrituras por celda.
Flash generalmente tiene una calificación de ~ 1,000-100,000 escrituras (varía mucho dependiendo del tipo de flash).

Otra ventaja que EEPROM tiene sobre el flash es que el flash generalmente debe borrarse en bloques, por lo que si sus patrones de escritura involucran escrituras secuenciales de un solo byte, usará muchos más ciclos de escritura en la memoria flash que con el EEPROM equivalente, como EEPROM la memoria generalmente se puede borrar por byte, en lugar de usar el flash de ciclo de borrado por bloque.

Básicamente, el flash generalmente se borra en bloques de ~ 64-512 kilobytes. Por lo tanto, por cada escritura en cualquier lugar dentro de ese bloque, el controlador tiene que borrar todo el bloque, utilizando un ciclo de escritura para todo el bloque. Puede ver que si realizaba escrituras secuenciales de un solo byte en cada dirección en un bloque, terminaría realizando entre 64K y 512K escrituras en todo el bloque, lo que podría usar fácilmente toda la resistencia de escritura del flash.

Como tal, las EEPROM generalmente se usan en situaciones en las que el procesador local es pequeño y no tiene la capacidad de escribir en el búfer en cada página flash.


Mucho de esto se está volviendo menos cierto a medida que avanza la tecnología flash. Hay circuitos integrados de memoria flash que incluyen las facilidades para el almacenamiento en búfer de escritura local, así como la resistencia de escritura en la memoria flash que aumenta drásticamente.

Connor Wolf
fuente
El tamaño de un bloque de borrado y un bloque de escritura no suele ser el mismo. También para el flash antiguo de un solo bit por celda, uno podría sobrescribir de manera confiable los bloques al menos una vez, siempre y cuando la escritura no requiera cambiar un valor de bit al estado borrado. Por ejemplo, si 1 es el estado borrado, con bloques de 16 bits se podría escribir 0bxxxxxxxx11111111 y luego escribir 0bxxxxxxxxyyyyyyyy (o incluso 0b1010101011111111 y más tarde 0b00000000xxxxxxxx).
Paul A. Clayton
@ PaulA.Clayton - Buen punto.
Connor Wolf el
@ PaulA.Clayton: Una cosa que desearía que los proveedores de flash documentaran es si uno puede legítimamente poner a cero una gran parte de un bloque flash ya escrito sin tener que borrarlo primero. Sería muy útil poder invalidar expresamente una página directamente sin tener que hacer un seguimiento en otra parte del hecho de que la página fue invalidada.
supercat