Memoria RAM

La memoria RAM está destinada al almacenamiento de información temporal que será utilizada por el procesador para realizar cálculos u otro tipo de operaciones lógicas. En el espacio de direcciones de memoria RAM se ubican además los registros de trabajo del procesador y los de configuración y trabajo de los distintos periféricos del microcontrolador.

Es por ello que en la mayoría de los casos, aunque se tenga un espacio de direcciones de un tamaño determinado, la cantidad de memoria RAM de que dispone el programador para almacenar sus datos es menor que la que puede direccionar el procesador.

El tipo de memoria utilizada en las memorias RAM de los microcontroladores es SRAM, lo que evita tener que implementar sistemas de refrescamiento como en el caso de las computadoras personales, que utilizan gran cantidad de memoria, típicamente alguna tecnología DRAM. A pesar de que la memoria SRAM es más costosa que la DRAM, es el tipo adecuado para los microcontroladores porque éstos poseen pequeñas cantidades de memoria RAM. En el caso de la memoria de programas se utilizan diferentes tecnologías, y el uso de una u otra depende de las características de la aplicación a desarrollar.

SRAM

Existen dos tipos de memoria RAM, la RAM estática o SRAM y la dinámica o DRAM.

La diferencia básicamente radica en el tipo de celda de memoria.

La celda de memoria es el bloque de construcción básico de una unidad de memoria. Es un elemento de almacenamiento en una memoria, que puede almacenar un 1 o un 0.

Celda

SEL’ WR’ Operación
0 0 Escritura
0 1 Lectura
1 X Alta Impedancia

 

Palabra: Una palabra de memoria, es un grupo de bits que es procesado como un simple número o instrucción por la CPU.

La longitud de palabra, será el número de bits que resulta de la agrupación de estos.

CI

El bus de datos es bidireccional, lo que significa que los datos pueden ir en cualquiera de las dos direcciones (hacia la memoria o desde la memoria).

  • Bus de Direcciones: Indica la posición o localidad que se desea acceder.
  • Bus de Datos: Proporciona el dato,el ancho del bus de datos (m) es igual al tamaño de palabra. En escritura es un dato de entrada, mientras que en lectura es un dato de salida; puede ser un único bus bidireccional, o dos buses, uno de entrada y otro de salida.
  • Bus de Control: Son señales que controlan la operación de la memoria. Algunas señales típicas son:
    • CS (Chip Select) o CE (Chip Enable): Habilita el acceso. Si no se activa, el bus de datos se pone típicamente en triestado.
    • R/W (Read/Write) o W E (Write Enable): Selecciona la operación a realizar (lectura o escritura).
    • OE (Output Enable): Habilita la salida de datos. Si no se activa, el bus de datos se ponen típicamente en triestado.

Arquitecturas Básica o Lineal

Coincidencia o 3D

Ciclo de Lectura

  • TRC = Tiempo de un ciclo de lectura
  • TAA = Tiempo de acceso de dirección.
  • TOH = Tiempo de retención de las salidas.
  • TCE = Tiempo de habilitación del chip.
  • TOE = Tiempo de habilitación de las salidas.
  • TDF = Tiempo de mantenimiento de los datos.

Ciclo de Lectura

  • TWC = Tiempo de un ciclo de escritura.
  • TSA = Tiempo de establecimiento de dirección.
  • TPW = Tiempo de pulso de escritura.
  • TSU = Tiempo de establecimiento o set up.
  • THO = Tiempo de mantenimiento o hold.

DRAM

La memoria RAM dinámica o DRAM recibe este nombre porque en forma periódica debe llevarse a cabo una regeneración de la información almacenada de lo contrario se perderá.

Las celdas de memoria de la DRAM se basan en pequeños capacitores de algunos femto faradios los cuales no pueden retener por mucho tiempo la carga, de ahí la necesidad de recargarlos periódicamente.

La ventaja de utilizar capacitores como celdas de memoria es que resulta muy sencilla; lo que facilita su construcción lográndose densidades superiores a las celdas estáticas y por tanto el costo de la DRAM es mucho menor que la SRAM.

La tecnología de construcción de todas las DRAM es MÁS por lo que se obtienen grandes capacidades de memoria, bajo consumo de potencia y velocidad de operación media y alta. La desventaja de la memoria DRAM es la regeneración de las celdas de memoria, algunos CIs de memoria integran los circuitos de soporte para la regeneración de la memoria.

La memoria DRAM utilizan un conjunto de registros para almacenar las direcciones binarias, la dirección se proporciona en dos secuencias, la primera de ellas corresponde a la parte baja de la dirección (es decir la selección del renglón) y la segunda a la parte alta de la dirección (es decir la selección de las columnas). A esta forma de selección de la palabra de memoria se le llama multiplexado de direcciones, y la ventaja es que permite reducir el número de líneas de dirección.

Controlador de Memoria

Los chips de DRAM generalmente no se conectan directamente al bus.Los fabricantes de memorias DRAM han diseñado circuitos encargados de gobernar los accesos para lectura y escritura de datos (modos); y la regeneración de las celdas (métodos), a este conjunto de circuitos se le llama controlador DRAM.

El controlador de memoria adapta las señales del procesador a las de la memoria; crea una interfaz entre la memoria y la CPU para que realice entre otras funciones:

  • La traducción de la dirección que envía el procesador en filas y columnas.
  • Activa las señales de control: R A S , C A S , R/W , etc.
  • Sincroniza todos los chips de DRAM (aplica el patrón de acceso).
  • Selecciona al módulo DRAM (en DIMMs).
  • Refresca. A veces esta función (o parte de ella) ya va incluida en los propios chips de DRAM.
  • Verifica la paridad (una técnica usada para detectar errores).

Lectura

Al inicio de cada ciclo de memoria de lectura o escritura, RAS, y CAS se activan (nivel BAJO) para multiplexar las direcciones de fila y columna hacia los registros (latches) y decodificadores. Durante el ciclo de lectura, la entrada R/W está a nivel ALTO. En un ciclo de lectura, comienza con un renglón seleccionado que se lee dentro del registro de renglón o fila. A continuación,se aplica una dirección de columna a las entradas de dirección multiplexadas y se almacena en un registro de dirección de columna en el chip en el flanco de caída de CAS .

  • TRC = Tiempo de un ciclo de lectura.
  • TRAS = Duración del pulso RAS a estado bajo.
  • TRAC = Tiempo de acceso a partir de la activación de RAS.
  • TCAC = Tiempo de acceso a partir de la activación de CAS .
  • TRCD = Tiempo de retardo entre la activación de las señales RAS y CAS .
  • TASR = Tiempo de establecimiento de la dirección de renglón.
  • TRAH = Tiempo de retención de la dirección de renglón.

La señal CAS funciona como “SELECCIÓN DEL CHIP CS “, cuando no está activa, se presenta el estado de alta impedancia en la terminal de salida de datos, pero aun así es posible realizar la selección de los renglones de la matriz de celdas.

Escritura

Un ciclo de escritura, también se inicia como una operación de lectura. Sin embargo,R/W debe ser activada a estado BAJO, antes de que CAS lo sea para seleccionar una operación de escritura. Esto deshabilita Bit OUT para el resto del ciclo, aun cuando CAS se activará posteriormente. Una vez que el renglón seleccionado se lee en el registro de renglón, R/W también obliga al Bit IN a cargarse en el registro de renglón, en la posición de bits seleccionada por la dirección de columna.

  • TWC = Tiempo de un ciclo de escritura.
  • TRAS = Duración del pulso R A S a estado bajo.
  • TRAC = Tiempo de acceso a partir de la activación de RAS.
  • TRDC = Tiempo de retardo entre la activación de las señales RAS y CAS.
  • TASR = Tiempo de establecimiento de la dirección de renglón.
  • TRAH = Tiempo de retención de la dirección de renglón.
  • TWP = Tiempo de pulso de escritura.
  • TDS = Tiempo de establecimiento de los datos.
  • TDH = Tiempo de retención de los datos.

Regeneración de DRAM

Con cada acceso a la DRAM, para lectura o escritura, se refresca una fila completa de la matriz de bits. La regeneración de las celdas de memoria ocurre por grupos (todas las celdas de una misma fila), el tiempo máximo que puede transcurrir entre dos accesos consecutivos a una misma fila de la DRAM se define como el tiempo de regeneración.

Si no se respeta el tiempo de regeneración, la memoria pierde la información por descarga del capacitor de la celda. Los fabricantes de memorias diseñaron que cada vez que se lleve a cabo una operación de lectura o escritura, se regeneren las células de todo el renglón debido a que sería muy difícil regenerar en forma individual cada celda de memoria.

El refresco es la operación de reescritura periódica de la información de la DRAM. La celda de una DRAM por lo general se regenera cada vez que se realiza una operación de lectura sobre esa celda. Cada celda debe regenerarse en promedio cada 4 a 16 ns o se perderán sus datos. Resulta obvio pensar que es muy difícil o casi imposible regenerar todas las celdas de una memoria en menos de ese tiempo. Por eso, los fabricantes diseñaron las DRAM de modo que cada vez que se realiza una operación de lectura en una celda, se regeneran todas las celdas en esa fila.

Evidentemente esta característica facilita la labor de mantener regeneradas todas las celdas del arreglo. Sin embargo, durante una operación normal del sistema en la cual funciona una DRAM , es muy poco probable que se realice una operación de lectura en cada fila de la DRAM dentro del límite de regeneración. Por lo tanto se necesita de cierto tipo de lógica de control de regeneración. Existen dos modos: En Ráfaga y Distribuida.

Modos o Secuencias

Regeneración por Ráfaga: Se suspende las operaciones de lectura y escritura; y en forma sucesiva se regeneran todas las filas.

Regeneración Distribuida: Este modo de regeneración la memoria está disponible cada vez que se ha regenerado una fila.

  • Regeneración con RAS (RAS-Only Refresh): Consiste en una transición de la señal RAS nivel BAJO (estado activo), que almacena la dirección de la fila en el registro para realizar el refresco, mientras que la línea CAS permanece a nivel ALTO (estado inactivo) a lo largo del ciclo. Se utiliza un contador externo para proporcionar las direcciones de fila en este tipo de operación.
  • Regeneración con CAS antes que RAS (CAS-before-RAS Refresh):El refresco CAS antes de RAS se inicia cuando la línea CAS pasa a nivel BAJO y a continuación la línea RAS pasa a nivel BAJO. Esta secuencia activa un contador de refresco interno que genera la dirección de fila para la que se debe realizar la recarga. Esta dirección se conmuta mediante el selector de datos hacia el decodificador de filas.
  • Regeneración oculto (Hidden Refresh): Después de un acceso para lectura se vuelve a activar RAS manteniendo activo CAS . Es más rápido que iniciar nueva lectura de fila. Existe contador interno de direcciones de refresco.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s