Los primeros dispositivos ROM tenían que tener información colocada en ellos a través de medios mecánicos, fotolitográficos u otros (antes de los circuitos integrados, era común usar una rejilla en la que se podían instalar u omitir selectivamente diodos). La primera mejora importante fue una "fuse-PROM" -un chip que contenía una rejilla de diodos fundidos, y transistores de fila que eran lo suficientemente fuertes como para seleccionar una fila y forzar el estado de la salida, lo que permitía quemar los fusibles en los diodos no deseados. Aunque dichos chips eran eléctricamente escribibles, la mayoría de los dispositivos en los que se usarían no tenían la potente tecnología de circuitos necesaria para escribir en ellos. En su lugar, se escribirían utilizando un dispositivo llamado "programador", y luego se instalarían en el equipo que necesitaba ser capaz de leerlos.
La siguiente mejora fue un dispositivo de memoria de carga implantada, que permitía que las cargas fueran implantadas eléctricamente pero no eliminadas. Si estos dispositivos se empaquetaban en envases transparentes a la luz ultravioleta (EPROM), podían borrarse con unos 5-30 minutos de exposición a la luz ultravioleta. Esto permitió reutilizar dispositivos cuyos contenidos no se consideraban valiosos (por ejemplo, versiones con errores o incompletas de software). Poner los mismos chips en un envase opaco permitía venderlos más económicamente para aplicaciones de usuarios finales en las que era poco probable que alguien quisiera borrarlos y reutilizarlos (OTPROM). Una mejora posterior permitió borrar los dispositivos eléctricamente sin la luz UV (EEPROM temprana).
Los dispositivos EEPROM tempranos solo podían borrarse en masa, y la programación requería condiciones muy diferentes a las asociadas con la operación normal; por lo tanto, al igual que los dispositivos PROM/EPROM, generalmente se utilizaban en circuitos que podían leer pero no escribir en ellos. Las mejoras posteriores a EEPROM hicieron posible borrar regiones más pequeñas, si no bytes individuales, y también permitieron que fueran escritos por la misma tecnología que los utilizaba. Sin embargo, el nombre no cambió.
Cuando una tecnología llamada "Flash ROM" apareció, era bastante normal para los dispositivos EEPROM permitir que los bytes individuales fueran borrados y reescritos dentro de un circuito de aplicación. El Flash ROM era en cierto sentido un retroceso funcional ya que el borrado solo podía tener lugar en grandes bloques. Sin embargo, restringir el borrado a grandes bloques permitió almacenar información de manera mucho más compacta de lo que era posible con EEPROM. Además, muchos dispositivos Flash tienen ciclos de escritura más rápidos pero ciclos de borrado más lentos que los típicos dispositivos EEPROM (muchos dispositivos EEPROM tardarían de 1 a 10 ms en escribir un byte, y de 5 a 50 ms en borrar; los dispositivos flash generalmente requerirían menos de 100 µs para escribir, pero algunos requerían cientos de milisegundos para borrar).
No sé si hay una línea clara que divida el flash y el EEPROM, ya que algunos dispositivos que se llamaban "flash" podían ser borrados por byte. Sin embargo, la tendencia actual parece ser utilizar el término "EEPROM" para dispositivos con capacidades de borrado por byte y "flash" para dispositivos que solo admiten borrado en bloques grandes.
8 votos
Vea también esta pregunta: ¿Por qué alguien seguiría usando una EEPROM normal en lugar de flash?.