Clasificación y programación de la memoria de solo lectura (ROM)

La memoria de solo lectura (ROM) es la unidad de memoria principal de cualquier sistema informático junto con la memoria de acceso aleatorio (RAM), pero a diferencia de la RAM, en la ROM, la información binaria se almacena de forma permanente. Ahora bien, esta información a almacenar la proporciona el diseñador y luego se almacena dentro de la ROM. Una vez que se almacena, permanece dentro de la unidad, incluso cuando se apaga y vuelve a encender.

La información está incrustada en la ROM, en forma de bits, mediante un proceso conocido como programación de la ROM. Aquí, la programación se utiliza para referirse al procedimiento de hardware que especifica los bits que se van a insertar en la configuración de hardware del dispositivo. Y esto es lo que convierte a la ROM en un dispositivo lógico programable (PLD).

Dispositivo lógico programable

Un dispositivo lógico programable (PLD) es un IC (circuito integrado) con puertas lógicas internas conectadas a través de rutas electrónicas que se comportan de manera similar a los fusibles. En el estado original, todos los fusibles están intactos, pero cuando programamos estos dispositivos, soplamos ciertos fusibles a lo largo de las rutas que deben eliminarse para lograr una configuración particular. Y esto es lo que sucede en la ROM, la ROM consiste en nada más que puertas lógicas básicas dispuestas de tal manera que almacenan los bits especificados.

Por lo general, un PLD puede tener cientos o millones de puertas interconectadas a través de cientos o miles de rutas internas. Para mostrar el diagrama lógico interno de dicho dispositivo, se utiliza una simbología especial, como se muestra a continuación:

La primera imagen muestra la forma convencional de representar las entradas a una puerta lógica y el segundo símbolo muestra la forma especial de mostrar las entradas a una puerta lógica, denominada Símbolo Lógico de Array, donde cada línea vertical representa la entrada a la puerta lógica.

Estructura de la ROM

El diagrama de bloques para la ROM es el siguiente:

Estructura de bloque

  • Consta de k líneas de entrada y n líneas de salida.
  • Las k líneas de entrada sirven para tomar la dirección de entrada desde donde queremos acceder al contenido de la ROM.
  • Dado que cada una de las k líneas de entrada puede ser 0 o 1, hay 2 ^kdirecciones totales a las que pueden hacer referencia estas líneas de entrada y cada una de estas direcciones contiene información de n bits, que se entrega como salida de la ROM.
  • Tal ROM se especifica como 2 ^kxn ROM.

Estructura interna

  • Consta de dos componentes básicos: decodificador y puertas OR.
  • Un decodificador es un circuito combinacional que se utiliza para decodificar cualquier forma codificada (como binario, BCD) a una forma más conocida (como forma decimal).
  • En ROM, la entrada a un decodificador estará en forma binaria y la salida representará su equivalente decimal.
  • El decodificador se representa como lx 2 ^l, es decir, tiene l entradas y 2 ^lsalidas, lo que implica que tomará un número binario de 1 bit y lo decodificará en uno de los 2 ^lnúmeros decimales.
  • Todas las puertas OR presentes en la ROM tendrán salidas del decodificador como entrada.

Clasificación de la ROM

  1. Enmascarar ROM: en este tipo de ROM, el fabricante toma la especificación de la ROM (su contenido y su ubicación) del cliente en forma tabular en un formato específico y luego crea las máscaras correspondientes para que las rutas produzcan el resultado deseado. . Esto es costoso, ya que el proveedor cobra una tarifa especial al cliente por hacer una ROM en particular (recomendado, solo si se requiere una gran cantidad de la misma ROM).

    Usos: se utilizan en sistemas operativos de red, sistemas operativos de servidor, almacenamiento de fuentes para impresoras láser, datos de sonido en instrumentos musicales electrónicos.

  2. PROM: significa memoria programable de solo lectura. Primero se prepara como memoria en blanco y luego se programa para almacenar la información. La diferencia entre PROM y Mask ROM es que PROM se fabrica como memoria en blanco y se programa después de la fabricación, mientras que Mask ROM se programa durante el proceso de fabricación.
    Para programar la PROM se utiliza un programador PROM o quemador PROM. El proceso de programación de la PROM se denomina grabación de la PROM. Además, los datos almacenados en él no se pueden modificar, por lo que se denomina dispositivo programable de una sola vez.

    Usos: tienen varias aplicaciones diferentes, incluidos teléfonos celulares, consolas de videojuegos, etiquetas RFID, dispositivos médicos y otros dispositivos electrónicos.

  3. EPROM: significa memoria de solo lectura programable borrable. Supera la desventaja de PROM que, una vez programado, el patrón fijo es permanente y no se puede modificar. Si se ha establecido un patrón de bits, la PROM se vuelve inutilizable, si es necesario cambiar el patrón de bits.

    Este problema ha sido superado por la EPROM, ya que cuando la EPROM se coloca bajo una luz ultravioleta especial durante un período de tiempo, la radiación de onda corta hace que la EPROM vuelva a su estado inicial, que luego se puede programar en consecuencia. Nuevamente, para borrar el contenido, se usa el programador PROM o el grabador PROM.

    Usos: antes de la llegada de las EEPROM, algunos microcontroladores, como algunas versiones de Intel 8048, Freescale 68HC11 usaban EPROM para almacenar su programa.

  4. EEPROM: significa memoria de solo lectura programable y borrable eléctricamente. Es similar a la EPROM, excepto que en esta, la EEPROM vuelve a su estado inicial mediante la aplicación de una señal eléctrica, en lugar de luz ultravioleta. Por lo tanto, brinda la facilidad de borrar, ya que esto se puede hacer, incluso si la memoria está colocada en la computadora. Borra o escribe un byte de datos a la vez.

    Usos: se utiliza para almacenar el BIOS del sistema informático.

  5. Flash ROM: es una versión mejorada de EEPROM. La diferencia entre EEPROM y Flash ROM es que en EEPROM, solo se puede borrar o escribir 1 byte de datos en un momento determinado, mientras que en la memoria flash, los bloques de datos (generalmente 512 bytes) se pueden borrar o escribir en un momento determinado. Entonces, Flash ROM es mucho más rápido que EEPROM.

    Usos: muchas PC modernas tienen su BIOS almacenada en un chip de memoria flash, llamado BIOS flash, y también se usan en módems.

Programación de la memoria de solo lectura (ROM)

Para entender cómo programar una ROM, considere una ROM 4 x 4, lo que significa que tiene un total de 4 direcciones en las que se almacena la información, y cada una de esas direcciones tiene una información de 4 bits, que es permanente y se debe dar como la salida, cuando accedemos a una determinada dirección. Se deben realizar los siguientes pasos para programar la ROM:

  1. Construya una tabla de verdad, que decidiría el contenido de cada dirección de la ROM y en base a la cual se programará una ROM en particular.

    Entonces, la tabla de verdad para la especificación de la ROM 4 x 4 se describe a continuación:

    Esta tabla de verdad muestra que en la ubicación 00, el contenido que se almacenará es 0011, en la ubicación 01, el contenido debe ser 1100, y así sucesivamente, de modo que cada vez que se ingrese una dirección en particular, se obtenga el contenido en esa dirección en particular. Dado que, con 2 bits de entrada, son posibles 4 combinaciones de entrada y cada una de estas combinaciones contiene una información de 4 bits, por lo que esta ROM es una ROM 4 X 4.

  2. Ahora, basado en el número total. de direcciones en la ROM y la longitud de su contenido, decide el decodificador así como el no. de compuertas OR a utilizar.
    Generalmente, para una ^kROM 2 xn, se utiliza el decodificador akx 2 ^k, y el número total. de puertas OR es igual al número total. de bits almacenados en cada ubicación en la ROM.

    Entonces, en este caso, para una ROM de 4 x 4, el decodificador a utilizar es un decodificador de 2 x 4.
    El siguiente es un decodificador de 2 x 4:

    La tabla de verdad para un decodificador de 2 x 4 es la siguiente:

    Cuando ambas entradas son 0, solo D _0es 1 y el resto es 0, cuando la entrada es 01, solo D _1es alta y así sucesivamente. (Solo recuerde que si la combinación de entrada del decodificador se resuelve en un número decimal particular d, entonces en el lado de salida, el terminal que está en la posición d + 1 desde arriba será 1 y el resto será 0).

    Ahora, dado que queremos que cada dirección almacene 4 – bits en la ROM 4 x 4, habrá 4 puertas OR, con cada una de las 4 salidas del decodificador ingresando a cada una de las 4 puertas OR, cuya salida será la salida de la ROM, de la siguiente manera:

    Una cruz en esta figura muestra que la conexión entre las dos líneas está intacta. Ahora, dado que hay 4 puertas OR y 4 líneas de salida del decodificador, hay un total de 16 intersecciones, llamadas puntos de cruce.

  3. Ahora, programe la intersección entre las dos líneas, según la tabla de verdad, para que la salida de la ROM (puertas OR) esté de acuerdo con la tabla de verdad.
    Para programar los puntos de cruce, inicialmente todos los puntos de cruce se dejan intactos, lo que significa que es lógicamente equivalente a un interruptor cerrado, pero estas conexiones intactas pueden quemarse mediante la aplicación de un pulso de alto voltaje en estos fusibles, lo que desconectará los dos. líneas interconectadas, y de esta manera se puede manipular la salida de una ROM.

    Entonces, para programar una ROM, solo mire la tabla de verdad que especifica la ROM y elimine (si es necesario) una conexión. Las conexiones para la ROM 4 x 4 según la tabla de verdad son las que se muestran a continuación:

    Recuerde, se usa un signo de cruz para indicar que la conexión se deja intacta y si no hay cruz significa que no hay conexión.

    En esta figura, dado que, como se puede ver en la tabla de verdad que especifica la ROM, cuando la entrada es 00, entonces, la salida es 0011, como sabemos por la tabla de verdad de un decodificador, que la entrada 00 da una salida tal que solo D _0es 1 y el resto son 0, por lo que para obtener la salida 0011 de las compuertas OR, las conexiones de D _0con las dos primeras compuertas OR se han eliminado, para obtener las salidas como 0, mientras que las dos últimas compuertas OR dan la salida como 1, que es lo que se requiere.

    De manera similar, cuando la entrada es 01, entonces la salida debe ser 1100, y con la entrada 01, en el decodificador solo D _1es 1 y el resto son 0, por lo que para obtener la salida deseada, las dos primeras puertas OR tienen su conexión intacta con D _1, mientras que Las últimas dos puertas OR tienen su conexión volada. Y para el resto también se sigue el mismo procedimiento.

Entonces, así es como se programa una ROM y, dado que la salida de estas puertas permanecerá constante cada vez, así es como la información se almacena permanentemente en la ROM y no se altera incluso al encenderla y apagarla.

Referencia-

  1. Fundamentos de circuitos digitales por A. Anand Kumar

Este artículo es una contribución de Mrigendra Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *