La siguiente tabla muestra los comandos que pueden ser enviados a la memoria
utilizando las líneas CS, RAS, CAS y WE, la descripción cada comando se presenta
posteriormente.
Tabla 3.3 Comandos válidos para la memoria SDRAM.
Comando CS RAS CAS WE DQM ADDR
COMMAND INHIBIT (NOP) H X X X X X
NO OPERATION (NOP) L H H H X X
ACTIVE (Selección de banco y fila activa) L L H H X Banco / Fila
READ(Selección de banco y columna activa,
inicia la ráfaga de lectura)
L H L H L/H Banco /
Columna
WRITE(Selección de banco y columna activa,
inicia la ráfaga de escritura)
L H L L L/H Banco /
Columna
BURST TERMINATE L H H L X X
PRECHARGE (Desactiva la fila actualmente activa
en uno o todos los bancos)
L L H L X Código
AUTOREFRESH L L L H X X
LOAD MODE REGISTER L L L L X Código de
operación
3.5.1 COMMAND INHIBIT
Evita que cualquier comando nuevo sea ejecutado por la SDRAM
independientemente de si la señal CLK está habilitada o no. El chip de memoria es
deseleccionado, inhibiendo cualquier nueva operación sin afectar las operaciones en
progreso.
3.5.2 NO OPERATION (NOP)
Este comando no realiza operación alguna en la memoria, únicamente es utilizado para prevenir la ejecución de comandos no deseados que pudieran registrarse mientras la memoria se encuentra en estados inactivos o de espera. Las operaciones en progreso no son afectadas por este comando.
3.5.3 LOAD MODE REGISTER
Este comando es utilizado para programar el registro de modo mediante un código de operación enviado a través de las líneas de direcciones A[12:0]. La programación del registro de modo solo puede efectuarse cuando todos los bancos de la memoria están
inactivos, y cualquier comando subsecuente no puede ser ejecutado sino hasta que se
haya cumplido el periodo tMRD (2 ciclos de reloj).
3.5.4 ACTIVE
El comando ACTIVE es usado para “abrir” o activar una fila dentro de un banco en particular para su posterior acceso. El valor de las líneas BA0 y BA1 que se registra coincidente con el comando ACTIVE selecciona el banco y las líneas A[12:0] seleccionan la fila. La fila “abierta” permanece activa y puede ser accedida mientras no se aplique un
comando PRECHARGE.
3.5.5 READ
Este comando es utilizado para iniciar una ráfaga de lectura en la fila activada
mediante un comando ACTIVE previo. Las líneas BA0 y BA1 seleccionan el banco y las
líneas A[8:0] seleccionan dirección de la columna inicial de acceso. La línea A10 determina
si la opción AUTOPRECHARGE está habilitada o no. Si esta opción está habilitada, la fila
que está siendo accedida será desactivada al finalizar la operación de lectura; si no está
habilitada, la fila permanecerá activa y puede ser accedida para operaciones posteriores.
Los datos leídos aparecen en las líneas de datos DQ dependiendo del nivel lógico que las
entradas de enmascaramiento DQM presentaban dos ciclos antes de la ejecución del
comando READ. Si estas entradas estaban en un nivel alto, las líneas de datos DQ serán
puestas en alta impedancia dos ciclos después; si estaban en un nivel bajo, en las líneas de
DQ aparecerán los datos leídos.
3.5.6 WRITE
Este comando es utilizado para iniciar una ráfaga de escritura en la fila activada mediante un comando ACTIVE previo. Las líneas BA0 y BA1 seleccionan el banco y las líneas A[8:0] seleccionan dirección de la columna inicial de acceso. La línea A10 determina si la opción AUTOPRECHARGE está habilitada o no. Los datos puestos en las líneas DQ son escritos en la memoria dependiendo del nivel lógico de DQM. Si las entradas DQM están en bajo, los datos son escritos en la memoria; de lo contrario los datos son ignorados y no se escriben en la memoria.
3.5.7 PRECHARGE
La acción de este comando es la de desactivar una fila que previamente ha sido activada, ya sea en un banco en particular o en todos los bancos. Los bancos estarán
disponibles para acceder a cualquier fila solo después de que haya transcurrido el periodo
tRP después de la ejecución del comando PRECHARGE. La línea A10 determina si la fila se desactiva en uno o todos los bancos; si es solo en un banco (A10 = ‘0’), éste se selecciona
mediante BA0 y BA1. El valor de las líneas BA0 y BA1 no importa cuando la operación es
en todos los bancos (A10 = ‘1’). Después de la ejecución de PRECHARGE los bancos o el
banco seleccionado están inactivos y antes de realizar cualquier operación de lectura o
escritura deben ser activados mediante un comando ACTIVE.
3.5.8 BURST TERMINATE
Usado para interrumpir cualquier ráfaga de acceso ya sea de escritura o lectura.
Cualquier comando READ o WRITE registrado previo a la ejecución de BURST TERMINATE
es interrumpido, la fila a la cual se tenía acceso permanece activa hasta que se ejecute un
comando PRECHARGE.
3.5.9 AUTO REFRESH
Para mantener la integridad de los datos almacenados en la memoria es necesario refrescar cada una de las localidades que integran la memoria. Para esto se utiliza el
comando AUTOREFRESH, básicamente el proceso de refresco consiste en leer una
localidad de memoria y escribir nuevamente en ella para evitar que los niveles de voltaje almacenado en cada celda de la memoria decaigan hasta un nivel en que la información ya no sea válida. En cada ciclo del comando AUTOREFRESH se refresca toda una fila de la
memoria. Para ejecutar este comando es necesario que todos los bancos sean
desactivados previamente, mediante PRECHARGE, y esperar el periodo tRP (20ns mínimo)
posterior a la ejecución de PRECHARGE. La dirección de la fila que se refresca no depende
de las líneas de direcciones A[12:0] ya que la memoria cuenta con un controlador interno
de refresco que genera automáticamente las direcciones de fila. La memoria SDRAM de
256Mb requiere de 8192 ciclos de AUTOREFRESH cada 64 ms, los cuales pueden
distribuirse en todo este periodo (1 cada 7.81µs) o pueden ejecutarse como una ráfaga de
8192 comandos AUTOREFRESH cada 64ms.