Diseño de circuitos digitales y tecnología de computadores/Memorias

De Wikilibros, la colección de libros de texto de contenido libre.

Memoria es la sección de un sistema digital encargada del almacenamiento permanente o temporal de la información del sistema.

Sobre la memoria se pueden hacer dos operaciones:

  • Lectura: la memoria presenta en sus terminales de salida el contenido de la localidad seleccionada. La lectura se puede hacer en todos los tipos de memoria.
  • Escritura: se escribe el dato presente en los terminales de entrada en la localidad seleccionada. No todos los tipos de memoria permiten la escritura.

La ejecución de una operación de lectura o escritura se denomina acceso a memoria.

Tipos de memorias semiconductoras[editar]

Dependiendo de cómo se asocien las localidades, las memorias pueden ser:

  • de acceso aleatorio o directo (RAM, Random Access Memory): las localidades se direccionan físicamente de manera individual; basta indicar la dirección de una localidad para operar sobre ella. A su vez se clasifican en:

    • Memorias de lectura/escritura (L/E) volátil (RAM volátil o activa, RWM)
      • L/E simultánea o no simultánea
      • Estáticas (SRAM) o dinámicas (DRAM)
    • Memorias L/E no volátil (NVRAM)
      • L/E volátil + batería
      • L/E volátil + EEPROM (NVRAM)
    • Memorias de lectura no volátil (RAM no volátil o pasiva)
      • Totalmente pasivas (MROM)
      • Pasivas programables (PROM)
      • ROM reprogramables (RPROM)
        • borrables con rayos ultravioleta (EPROM)
        • borrables eléctricamente (EEPROM)

  • de acceso secuencial (SAM, Sequential Access Memory): las localidades están en posiciones contigüas de manera que el acceso a cada localidad depende del lugar que ocupe en la memoria. Teniendo en cuenta la forma en que se acceda a las localidades pueden ser:

    • Registros de desplazamiento
    • Memorias FIFO (First In First Out), filas o colas
    • Memorias LIFO (Last Int First Out) o pilas

Memorias de acceso aleatorio[editar]

Características comunes de las RAM[editar]

El tiempo de acceso (lectura o escritura) es constante e independiente de la posición de la localidad sobre la que se opere.

Los terminales de una RAM se dividen en tres grupos:

Terminales de dirección
Indican la localidad sobre la que se quiere operar.
Terminales de datos
Presentan del dato de una operación de lectura o proporcionan el dato de una operación de escritura.
Terminales de control
Indican a la memoria la operación a realizar (lectura o escritura). También incluyen un terminal que inhibe las salidas forzándolas al tercer estado. En los sistemas electrónicos, las memorias se conectan con un bus de datos, por lo que deben estar dotadas de tercer estado.
RAM con salidas triestado

Memoria RAM con salidas triestado

Bloque funcional de RAM 8x4

Bloque funcional de una RAM 8x4
(8 localidades de 4 bits cada una)

Memorias RAM volátiles[editar]

Las memorias volátiles pierden la información cuando no tienen alimentación eléctrica.

Las RAM volátiles se pueden clasificar por el tiempo que permanece la información aunque se mantenga alimentadas eléctricamente en:

estáticas (SRAM, Static RAM)
Mantienen la información siempre y cuando estén alimentadas eléctricamente. Funcionalmente las celdas de estas memorias son biestables D.
dinámicas (DRAM; Dinamic RAM)
Aunque se mantenga el suministro eléctrio pierden la información, por lo que se reescriben constantemente (refresco). Las celdas son condensadores MOS.

Otro criterio clasificatorio es por la simultaneidad de las operaciones de lectura y escritura (L/E):

L/E no simultáneas
En un determinado instante sólo se pueden leer o escribir. Disponen de los siguientes terminales de control:
  • Chip enable (CE o CS): inhibe (0) o habilita (1) la memoria
  • Out Enable (OE): inhibe (0) las salidas al tercer estado o las habilita (1) si CE=1
  • Write Enable (WE): inhibe (0) o habilita (1) la escritura si CE=1 y OE=0
L/E simultáneas
Se puede leer en una localidad y simultáneamente escribir en otra. La memoria debe disponer de terminales independientes de dirección de escritura, dirección de lectura, líneas de entrada (escritura) y líneas de salida (lectura).

Memorias ROM no volátiles[editar]

Memorias no volátiles son las que conservan la información aún sin energía eléctrica. Se aplican en aquellos casos en que la información no va a cambiar con seguridad o cambia en muy pocas ocasiones. Se usan para:

  • Generación o simulación de funciones lógicas. Cuando el número de variables de las funciones y el número de funciones de una multifunción es muy elevado, se programa la tabla de verdad de la multifunción en una ROM (memoria de sólo lectura).
  • Memoria de un programa no modificable al que se denomina firmware en contraposición al software, que sí es modificable.

Existen varios tipos de memorias no volátiles:

Memoria de sólo lectura (ROM totalmente pasiva, MROM)
Las programa el fabricante a través de un negativo fotográfico llamado máscara, de ahí la M de MROM. Cada celda de una MROM es un semiconductor, y su presencia o ausencia determina si hay un 1 o un 0.
Memoria ROM programable (PROM)
Pueden ser programadas por el usuario una sola vez a través de un equipo especial. Una vez programada sólo se puede leer y no se puede volver a programar; la escritura es destructiva.
Memorias ROM reprogramables. Pueden ser:
Memoria ROM programable y borrable (EPROM)
Es una memoria CMOS, es decir, las celdas son transistores MOS. El proceso de grabación requiere un equipo especial que para grabar un uno produce una concentración de carga en una zona de la EPROM, elevando el nivel de alimentación. Para el borrado se utiliza un equipo distinto que somete al chip a una radiación ultravioleta que dispersa la carga en los '1'.
Memoria ROM programable y borrable eléctricamente (EEPROM)
Se pueden programar y borrar eléctricamente sin necesidad de un equipo especial. Además el borrado puede ser discriminado, mientras que el proceso de borrado de las EPROM es indiscriminado.
Memorias de lectura/escritura no volátiles (NVRAM)
No pierden la información al desconectar la alimentación. Para obtener una NVRAM existen dos procedimientos:
  • Utilizar una batería. La RAM es de tipo CMOS para prolongar la vida de la batería. En ocasiones, las baterías van encapsuladas en el mismo chip.
  • Usar un chip NVRAM: contiene una RAM más una EEPROM, tal que cada cenda de la EEPROM respalda a una celda RAM, y entre ellas la trasferencia es bidireccional. Durante el funcionamiento normal, la NVRAM es una RAM. Cuando se desconecta la alimentación, la información permanece en la EEPROM; cuando se conecta, la RAM recupera la información de la EEPROM.

Memorias de acceso secuencial[editar]

Organización de las SAM[editar]

Organización en serie[editar]

Todas las celdas están en serie. La memoria está formada por un conjunto de localidades cuyas celdas están conectadas en serie, y a su vez, la última celda de una localidad se conecta con la primera celda de la siguiente localidad. El esquema siguiente muestra una SAM organizada en serie de m×n bits (m localidades de n bits cada una).

Organización en serie de una SAM

Una SAM serie puede implementarse usando registros de desplazamiento. La figura siguiente muestra el esquema general de una SAM serie de m×n bits realizada con registros de desplazamiento:

Implementación de una SAM serie con registros de desplazamiento

Organización en paralelo[editar]

Las celdas de cada localidad son independientes entre sí. Las localidades se conectan en serie conectando en serie las celdas del mismo peso o índice, conservando el paralelismo entre las de distinto peso. El esquema siguiente muestra una SAM organizada en paralelo de m×n bits (m localidades de n bits cada una).

Organización en paralelo de una SAM

El diagrama siguiente representa de forma simplificada el esquema anterior:

SAM paralelo

Una SAM paralelo puede implementarse utilizando registros con entradas y salidas en paralelo. La figura siguiente muestra el esquema general de una SAM paralelo de m×n bits realizada con registros de desplazamiento:

Implementación de una SAM paralelo con registros

Memoria FIFO (fila/cola)[editar]

El primer dato que entra en la memoria (en ser escrito) es el primero en salir (en ser leído). Los terminales de entrada de la fila se corresponden con los de la primera posición de la memoria SAM. Los terminales de salida de la fila se corresponden con los de la última localidad de la memoria SAM. La operación de lectura es destructiva: al leer un dato desaparece de la memoria.

Escritura y lectura en memoria FIFO

Memoria LIFO (pila)[editar]

El último dato que ha sido escrito es el primero en salir de la memoria. Los terminales de entrada y de salida de la memoria LIFO se corresponden con los de la primera posición de la memoria SAM. La operación de lectura es destructiva: al leer un dato desaparece de la memoria.

Escritura y lectura en memoria LIFO