En tecnología de la información , una memoria de solo escritura ( WOM ) es una ubicación de memoria o registro en el que se puede escribir pero no leer. Además de su significado literal, el término puede aplicarse a una situación en la que los datos escritos por un circuito solo pueden ser leídos por otros circuitos. La ocurrencia más común de la última situación es cuando un procesador escribe datos en un registro de solo escritura del hardware que el procesador está controlando. El hardware puede leer la instrucción, pero el procesador no. Esto puede generar problemas en la producción de controladores de dispositivos para el hardware.
Las memorias de solo escritura también encuentran aplicaciones en seguridad y criptografía como un medio para evitar que los datos sean interceptados mientras se descifran.
En 1972, se introdujo WOM, una antítesis de la memoria de solo lectura (ROM), como una broma interna perpetrada por Signetics . [1] Sin embargo, pronto se reconoció que este concepto en realidad describe ciertas funcionalidades en los sistemas de microprocesador . [2]
Las memorias de solo escritura se dan con mayor frecuencia cuando las ubicaciones de memoria son registros o un circuito integrado que se utiliza para controlar o pasar información a hardware fuera del procesador. Una unidad central de procesamiento (CPU) puede escribir en estas ubicaciones y, por lo tanto, controlar el hardware, pero no puede volver a leer la información y descubrir el estado actual del hardware. La memoria es de solo escritura solo en relación con el punto de vista de la CPU. Tales disposiciones son comunes en pequeños sistemas de microcontroladores integrados para ahorrar costos y pueden causar dificultades para los autores de software de controladores de dispositivos . [3] Cuando el estado actual del hardware es desconocido para la CPU, solo puede ponerlo en un estado conocido enviando un nuevo comando, lo que puede provocar que el estado cambie. [4] [5] Para aliviar esta dificultad, la CPU puede reflejar el contenido del WOM en la memoria normal. [6] Sin embargo, esta estrategia solo es confiable si el registro es de solo lectura desde la perspectiva del hardware. Si el hardware externo puede cambiar su propio estado independientemente de la CPU, entonces el estado del hardware puede divergir de la imagen de ese estado que se refleja en la memoria de la CPU.
Un ejemplo de este tipo de uso se refería al acceso a la memoria en los primeros ordenadores. Los ordenadores originales utilizaban procesadores 8086 o 8088 que tenían la capacidad de direccionar sólo 1 MB de memoria. Una gran parte de ésta estaba ocupada por la BIOS y la tarjeta de vídeo, lo que daba como resultado que sólo estuvieran disponibles 640 kB de RAM direccionable contigua . El requisito de memoria de muchas aplicaciones pronto superó esta cifra. Un método para superar la limitación era el uso de RAM conmutada por bancos . Se proporciona una serie de bancos de RAM, pero no se asignan de forma permanente a una ubicación de memoria. En una implementación particular, se añade una placa especial a un ordenador, que controla la asignación de bancos al espacio de memoria. La placa de control tiene su propio chip de memoria. Un ordenador puede escribir datos en este chip, pero sólo la placa de control puede leer el chip, [nota 1] por lo que se denomina memoria de "sólo escritura". [7] : 200–202
Otro ejemplo se refiere a algunas funciones que llevan a cabo las unidades de procesamiento gráfico (GPU). Por ejemplo, una GPU podría estar realizando el procesamiento de sombreado en el contenido de la memoria gráfica. Puede ser más rápido y más eficiente para la GPU tomar la entrada para el proceso de sombreado desde ubicaciones de solo lectura y escribir la salida del sombreado en diferentes ubicaciones de solo escritura sin tener que copiar datos entre los búferes de lectura y escritura después de cada iteración. [8]
Un ejemplo que sigue teniendo relevancia contemporánea se puede encontrar en el UART 16550 , cuyos derivados todavía se utilizan ampliamente. Para agregar un FIFO de datos sin romper la compatibilidad con los ocho registros de configuración del UART 8250 , al "registro de control FIFO" de solo escritura se le asignó la misma dirección de puerto que al "registro de identificación de interrupción" de solo lectura. El programa escribe en esa dirección el registro de control FIFO, pero no hay forma de volver a leerlo.
El término también se utiliza para describir la vista informática de ciertos dispositivos de visualización, como las pantallas de tinta electrónica utilizadas en los lectores electrónicos . [9]
El bloqueo del búfer de trama de una GPU para convertirlo en una memoria de solo escritura puede ser útil para proteger los datos cifrados. Cuando los datos cifrados llegan a su destino, deben descifrarse antes de poder mostrarse al usuario. La existencia de material no cifrado en la memoria a la que la CPU o los dispositivos periféricos pueden acceder es una posible debilidad de seguridad. Esta debilidad se puede aliviar llevando a cabo el descifrado dentro de la GPU y escribiendo los datos no cifrados directamente en la memoria de visualización. Nada más puede leer los datos mientras el búfer de trama está bloqueado, y cuando está desbloqueado mostrará algo más. [10] También se puede decir que todas las tarjetas inteligentes modernas que cuentan con un chip dependen de la tecnología WOM, porque están programadas en una fábrica con ciertas claves de cifrado que no pueden ser leídas directamente por un lector de tarjetas. En cambio, las claves son utilizadas indirectamente por algoritmos que validan contraseñas o descifran cierto contenido. Nintendo tenía una patente que describía el uso de partes del disco duro como almacenamiento temporal de solo escritura para el código del juego que se mantiene como de solo escritura hasta que esa partición se haya verificado con una firma digital de autorización. [11]
En la teoría de computabilidad , agregar un WOM a algunos modelos de cálculo puede aumentar su poder computacional. [12]
/dev/null
otro concepto de "solo escritura"