# Memoria de solo lectura

La memoria de solo lectura, conocida también como ROM (acrónimo en inglés de Read Only Memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente para contener el firmware (programa que está estrechamente ligado a hardware específico, y es poco probable que requiera actualizaciones frecuentes) u otro contenido vital para el funcionamiento del dispositivo, como los programas que ponen en marcha el ordenador y realizan los diagnósticos.
En su sentido más estricto, se refiere solo a la ROM de máscara -en inglés, mask ROM o MROM- (el más antiguo tipo de ROM de estado sólido), que se fabrica con los datos almacenados de forma permanente, y por lo tanto, su contenido no puede ser modificado de ninguna forma. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aun siendo descritos como "memoria de solo lectura" (ROM). La razón de que se las continúe llamando así es que el proceso de reprogramación en general es poco frecuente, relativamente lento y, a menudo, no se permite la escritura en lugares aleatorios de la memoria. A pesar de la simplicidad de la ROM, los dispositivos reprogramables son más flexibles y económicos, por lo cual las antiguas ROM con máscara no se suelen encontrar en hardware producido a partir de 2007.

## Historia

El tipo más simple de ROM en estado sólido es de la misma antigüedad que la propia tecnología semiconductora. Las puertas lógicas combinacionales pueden usarse en conjunto para indexar una dirección de memoria de n bits en valores de m bits de tamaño (una tabla de consultas). Con la invención de los circuitos integrados se desarrolló la ROM de máscara. La ROM con máscara consistía en una cuadrícula de líneas formadas por una palabra y líneas formadas por un bit seleccionadas respectivamente a partir de cambios en el transistor. De esta manera podían representar una tabla de consultas arbitraria y un retardo de propagación deductible.
En las ROM con máscara los datos están físicamente codificados en el mismo circuito, así que solo se pueden programar durante la fabricación. Esto acarrea serias desventajas:
* Solo es económico comprarlas en grandes cantidades, ya que el usuario contrata fundiciones para producirlas según sus necesidades.
* El tiempo transcurrido entre completar el diseño de la máscara y recibir el resultado final es muy largo.
* No son prácticas para I+D por el hecho de que los desarrolladores necesitan cambiar el contenido de la memoria mientras refinan un diseño.
* Si un producto tiene un error en la máscara, la única manera de arreglarlo es reemplazando físicamente la ROM por otra.
Los desarrollos posteriores tomaron en cuenta estas deficiencias, así pues se creó la memoria de solo lectura programable (PROM). Inventada en 1956, permitía a los usuarios modificarla solo una vez, alterando físicamente su estructura con la aplicación de pulsos de alto voltaje. Esto eliminó los problemas 1 y 2 antes mencionados, ya que una compañía podía pedir un gran lote de PROMs vacías y programarlas con el contenido necesario elegido por los diseñadores. En 1971 se desarrolló la memoria de solo lectura programable y borrable (EPROM) que permitía reiniciar su contenido exponiendo el dispositivo a fuertes rayos ultravioleta. De esta manera erradicaba el punto 3 de la anterior lista. Más tarde, en 1983, se inventó la EEPROM, resolviendo el conflicto número 4 de la lista ya que se podía reprogramar el contenido mientras proveyese un mecanismo para recibir contenido externo (por ejemplo, a través de un cable serial). En medio de la década de 1980 Toshiba inventó la memoria flash, una forma de EEPROM que permitía eliminar y reprogramar contenido en una misma operación mediante pulsos eléctricos miles de veces sin sufrir ningún daño.
Todas estas tecnologías mejoraron la versatilidad y flexibilidad de la ROM, pero lo hicieron a expensas de un alto incremento del costo por chip. Por eso las ROM de máscara se mantuvieron como la solución económica durante bastante tiempo. Esto fue así aproximadamente hasta el año 2000, cuando el precio de las memorias reprogramables hubo descendido lo suficiente como para comenzar a desplazar a las ROM no reprogramables del mercado.
El producto más reciente es la memoria NAND, otra vez desarrollada por Toshiba. Los diseñadores rompieron explícitamente con las prácticas del pasado, afirmando que enfocaba "ser un reemplazo de los discos duros", más que tener el tradicional uso de la ROM como una forma de almacenamiento primario no volátil. En 2007, NAND ha avanzado bastante en su meta, ofreciendo un rendimiento comparable al de los discos duros, una mejor tolerancia a los shocks físicos, una miniaturización extrema (como por ejemplo memorias USB y tarjetas de memoria MicroSD), y un consumo de potencia mucho más bajo.

### Uso para almacenamiento de software

Los ordenadores domésticos a comienzos de los años 1980 venían con todo su sistema operativo en ROM. No había otra alternativa razonable ya que las unidades de disco eran generalmente opcionales. La actualización a una nueva versión significa usar un soldador o un grupo de interruptores DIP y reemplazar el viejo chip de ROM por uno nuevo. Actualmente los sistemas operativos en general ya no van en ROM. Todavía los ordenadores pueden dejar algunos de sus programas en memoria ROM, pero incluso en este caso, es más frecuente que vaya en memoria flash. Los teléfonos móviles y los asistentes personales digitales (PDA) suelen tener programas en memoria ROM (o por lo menos en memoria flash).
Algunas de las videoconsolas que usan programas basados en la memoria ROM son la Super Nintendo, la Nintendo 64, la Sega Mega Drive o la Game Boy. Estas memorias ROM, pegadas a cajas de plástico aptas para ser utilizadas e introducidas repetidas veces, son conocidas como cartuchos. Por extensión la palabra ROM puede referirse también a un archivo de datos que contenga una imagen del programa que se distribuye normalmente en memoria ROM, como una copia de un cartucho de videojuego.

### Uso para almacenamiento de datos

Como la ROM no puede ser modificada (al menos en la antigua versión con máscara), solo resulta apropiada para almacenar datos que no necesiten ser modificados durante la vida de este dispositivo. Con este fin, la ROM se ha utilizado en muchos ordenadores para guardar tablas de consulta, utilizadas para la evaluación de funciones matemáticas y lógicas. Esto era especialmente eficiente cuando la unidad central de procesamiento era lenta y la ROM era barata en comparación con la RAM. De hecho, una razón de que todavía se utilice la memoria ROM para almacenar datos es la velocidad, ya que los discos siguen siendo más lentos. Y lo que es aún más importante
, no se puede leer un programa que es necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el sistema de arranque oportuno del PC normalmente se encuentran en una memoria ROM.
No obstante, el uso de la ROM para almacenar grandes cantidades de datos ha ido desapareciendo casi completamente en los ordenadores de propósito general, mientras que la memoria Flash ha ido ocupando este puesto.

## Tipos
### Basado en semiconductores

Los chips de ROM programable por máscara clásicos son circuitos integrados que codifican físicamente los datos a almacenar, y por lo tanto es imposible cambiar su contenido después de la fabricación. Otros tipos de memoria de estado sólido no volátil permiten algún grado de modificación:
* La memoria de solo lectura programable (PROM), o la ROM programable una sola vez (OTP), pueden ser escritas o programadas a través de un dispositivo especial llamado un programador PROM. Normalmente, este dispositivo utiliza alto voltaje para destruir o crear permanentemente enlaces internos (fusibles o antifusibles) dentro del chip. En consecuencia, una PROM solo puede programarse una vez.
* La memoria de solo lectura programable y borrable (EPROM) puede ser borrada por la exposición a una fuerte luz ultravioleta (en general durante 10 minutos o más), a continuación, se reescribe otra vez con un proceso que necesita un voltaje más alto que el habitual aplicado. La exposición repetida a la luz UV desgastará eventualmente una EPROM, pero la resistencia de la mayoría de los chips EPROM excede 1000 ciclos de borrado y reprogramación. Después de la programación, la ventana se cubre normalmente con una etiqueta para evitar el borrado accidental. Algunos chips EPROM son borrados de fábrica antes de ser empaquetados, y no incluyen ninguna ventana; estos son efectivamente PROM.
* La memoria de solo lectura eléctricamente programable y borrable (EEPROM) se basa en una estructura de semiconductor similar a la EPROM, pero permite que todo su contenido (o bancos seleccionados) sea borrado eléctricamente, a continuación, reescrito eléctricamente, por lo que no deben ser retirados del ordenador (o una cámara, reproductor MP3, etc.). Escribir o flashear una EEPROM es mucho más lento (milisegundos por bit) que leer de una ROM o escribir a una RAM (nanosegundos en ambos casos). Existen diferentes tipos de EEPROM:
** La memoria de solo lectura eléctricamente alterable (EAROM) es un tipo de EEPROM que se puede modificar un bit cada vez. La escritura es un proceso muy lento y necesita de nuevo un voltaje más alto (generalmente alrededor de 12 V) del que se utiliza para el acceso de lectura. EAROMs están destinados para aplicaciones que requieren reescritura poco frecuente y solo parcial. EAROM puede ser utilizado como almacenamiento no volátil para obtener información de configuración del sistema crítico; en muchas aplicaciones, EAROM ha sido suplantada por la RAM CMOS suministrada por la red eléctrica y apoyada con una batería de litio.
** La memoria flash (o simplemente flash) es un tipo moderno de EEPROM inventado en 1984. La memoria flash se puede borrar y volver a escribir más rápidamente que la EEPROM ordinaria, y los nuevos diseños cuentan con muy alta resistencia (superior a 1.000.000 de ciclos). La Flash NAND moderna hace uso eficiente de área de chip de silicio, lo que resulta en circuitos integrados individuales con una capacidad de hasta 32 GB a partir de 2007; esta característica, junto con su resistencia y durabilidad física, ha permitido la flash NAND reemplazar magnético en algunas aplicaciones (como las unidades flash USB). La memoria flash es a veces llamado flash ROM o Flash EEPROM cuando se usa como un reemplazo para los tipos de ROM viejos, pero no en aplicaciones que aprovechan su capacidad de ser modificado rápidamente y con frecuencia.

## Velocidad
### Velocidad de lectura

Aunque la relación relativa entre las velocidades de las memorias RAM y ROM ha ido variando con el tiempo, desde el año 2007 la RAM es más rápida para la lectura que la mayoría de las ROM, razón por la cual el contenido ROM se suele traspasar normalmente a la memoria RAM, desde donde es leída cuando se utiliza.

### Velocidad de escritura

Para los tipos de ROM que puedan ser modificados eléctricamente, la velocidad de escritura siempre es mucho más lenta que la velocidad de lectura, pudiendo requerir voltaje excepcionalmente alto, movimiento de jumpers para habilitar el modo de escritura, y comandos especiales de desbloqueo. Las memorias Flash NAND logran la más alta velocidad de escritura entre todos los tipos de memoria ROM reprogramable, escribiendo grandes bloques de celdas de memoria simultáneamente, y llegando a 15 MB/s.

## Resistencia y retención de datos

A causa del hecho de que se escriben electrones a través de una capa de aislamiento eléctrico sobre una puerta de transistor flotante, las ROMs regrabables pueden soportar solo un número limitado de ciclos de escritura y borrado hasta que el aislante queda permanentemente dañado. En las primeras EAROMs, esto podía ocurrir después de tan solo 1.000 ciclos de escritura, mientras que en las EEPROMs modernas la resistencia puede superar el 1.000.000 de ciclos, pero de ninguna manera es infinita. Esta resistencia limitada, así como el coste más grande por bit, hace que el almacenamiento basado en flash sea poco probable que sustituya completamente a las unidades de disco magnético en el futuro próximo.
El intervalo de tiempo durante el cual una ROM sigue siendo legible con precisión no está limitado por los ciclos de escritura. La retención de datos de EPROM, EAROM, EEPROM, y flash y puede estar limitada por las pérdidas de carga de los puertos flotantes de los transistores de celda de memoria. Las fugas se aceleran por las altas temperaturas o la radiación. La ROM enmascarada y la PROM fusible/antifusible no sufren de este efecto, ya que su retención de datos depende de la permanencia física en el lugar de la electricidad del circuito integrado (hasta el punto de que el reacondicionamiento del fusible fue un problema en algunos sistemas).

## Imagen ROM

El contenido de los chips ROM puede extraerse con dispositivos de hardware especiales y el correspondiente software de control. Esta práctica es habitual para, como ejemplo principal, leer el contenido de cartuchos de videoconsolas antiguas. Otro ejemplo es la realización de copias de seguridad de firmware/OS ROM de ordenadores antiguos u otros dispositivos, con fines de archivo, ya que, en muchos casos, los chips originales son PROM y, por tanto, corren el riesgo de superar su vida útil de datos.
Los archivos de volcado de memoria resultantes se conocen como imágenes ROM o ROM abreviadas, y se pueden utilizar para producir ROM duplicadas, por ejemplo para producir nuevos cartuchos o como archivos digitales para reproducir en emuladores de consola. El término imagen ROM se originó cuando la mayoría de los juegos de consola se distribuían en cartuchos que contenían chips ROM, pero alcanzó un uso tan extendido que aún se aplica a las imágenes de juegos más recientes distribuidas en CD-ROM u otros soportes ópticos.
Las imágenes ROM de juegos comerciales, firmware, etc. suelen contener software protegido por derechos de autor. La copia y distribución no autorizada de software protegido por derechos de autor es una violación de las leyes de derechos de autor en muchas jurisdicciones, aunque la duplicación con fines de copia de seguridad puede considerarse uso legítimo dependiendo de la ubicación. En cualquier caso, existe una próspera comunidad dedicada a la distribución y comercio de este tipo de software y abandonware con fines de preservación/compartición.