Solución:
Los primeros dispositivos ROM debían tener información colocada en ellos a través de algún medio mecánico, fotolitográfico u otro (antes de los circuitos integrados, era común usar una cuadrícula donde los diodos podían instalarse u omitirse selectivamente). La primera mejora importante fue un “fusible-PROM”: un chip que contiene una cuadrícula de diodos fusionados y transistores de impulsión de fila que eran lo suficientemente fuertes como para que al seleccionar una fila y forzar el estado de la salida se pudieran fundir los fusibles de cualquier diodo. uno no quería. Aunque dichos chips se podían escribir eléctricamente, la mayoría de los dispositivos en los que se utilizarían no tenían los potentes circuitos de excitación necesarios 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 poder leerlos.
La siguiente mejora fue un dispositivo de memoria de carga implantada, que permitía que las cargas se implantaran eléctricamente pero no se eliminaran. Si tales dispositivos estuvieran empaquetados en paquetes transparentes a los rayos UV (EPROM), podrían borrarse con una exposición de aproximadamente 5 a 30 minutos a la luz ultravioleta. Esto hizo posible la reutilización de dispositivos cuyo contenido no se consideró valioso (por ejemplo, versiones de software con errores o sin terminar). Poner los mismos chips en un paquete opaco permitió que se vendieran de manera más económica para aplicaciones de usuario final donde era poco probable que alguien quisiera borrarlos y reutilizarlos (OTPROM). Una mejora exitosa hizo posible borrar los dispositivos eléctricamente sin la luz ultravioleta (EEPROM temprana).
Los primeros dispositivos EEPROM solo podían borrarse en masa, y la programación requería condiciones muy diferentes de las asociadas con el funcionamiento normal; en consecuencia, al igual que con los dispositivos PROM / EPROM, generalmente se usaban en circuitos que podían leerlos pero no escribirlos. Las mejoras posteriores a EEPROM hicieron posible borrar regiones más pequeñas, si no bytes individuales, y también permitieron que se escribieran con los mismos circuitos que los usaban. Sin embargo, el nombre no cambió.
Cuando apareció una tecnología llamada “Flash ROM”, era bastante normal que los dispositivos EEPROM permitieran borrar y reescribir bytes individuales dentro de un circuito de aplicación. Flash ROM fue, en cierto sentido, un paso atrás funcionalmente, ya que el borrado solo podía tener lugar en grandes porciones. No obstante, restringir el borrado a grandes porciones hizo posible almacenar información de forma mucho más compacta de lo que había sido 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 de los 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 requieren menos de 100 us para escribir, pero algunos requirieron cientos de milisegundos para borrar).
No sé si hay una línea divisoria clara entre flash y EEPROM, ya que algunos dispositivos que se llaman a sí mismos “flash” pueden borrarse por byte. No obstante, 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 el borrado de bloques grandes.
Spoiler: EEPROM es de hecho Flash.
Como la respuesta de supercat señaló brillantemente, EEPROM es una evolución de las EPROM más antiguas que se pueden borrar por UV (“EE” de EEPROM significa “eléctricamente borrable”). Sin embargo, a pesar de ser una mejora con respecto a su antiguo amigo, la forma actual de EEPROM de almacenar información es la exacto lo mismo de la memoria flash.
La ÚNICA diferencia principal entre los dos es la lógica de lectura / escritura / borrado.
-
Flash NAND (flash normal):
Solo se puede borrar en las páginas aka. bloques de bytes. Puede leer y escribir (sobre no escritos) bytes individuales, pero borrar requiere borrar muchos otros bytes.
En los microcontroladores, generalmente se usa para el almacenamiento de firmware. Algunas implementaciones admiten el manejo de flash desde dentro del firmware, en cuyo caso puede usar ese flash para retener información siempre que no se meta con las páginas usadas (de lo contrario, borrará su firmware).
-
NOR Flash (también conocido como EEPROM):
Puede leer, escribir y borrar bytes individuales. Su lógica de control está diseñada de tal manera que todos los bytes sean accesibles individualmente. Aunque es más lento que el flash normal, esta función beneficia a los dispositivos electrónicos más pequeños / antiguos. Por ejemplo, los televisores y monitores CRT más antiguos usaban EEPROM para contener configuraciones de usuario como brillo, contraste, etc.
En los microcontroladores, eso es lo que generalmente se usa para almacenar configuraciones, estados o datos de calibración. Es mejor que flash para eso, ya que para borrar un solo byte no es necesario recordar (RAM) el contenido de la página para reescribirlo.
Hecho de la diversión
Existe una idea errónea común de que NOR Flash usos Puertas NOR tiempo Flash NAND usos Puertas NAND (y de hecho parece obvio). Sin embargo, eso no es cierto. La razón del nombre es la semejanza de la lógica de control de cada tipo de memoria con los símbolos esquemáticos de las puertas NAND y NOR.
Flash es un tipo de EEPROM (memoria de solo lectura programable y borrable eléctricamente). “Flash” es más un término de marketing que una tecnología específica. Sin embargo, estos términos han convergido para significar un tipo de EEPROM que está optimizado para un gran tamaño y densidad, generalmente a expensas de grandes bloques de borrado y escritura y menor resistencia.