# SDRAM

SDRAM (siglas en inglés de synchronous dynamic random-access memory, ‘memoria de acceso aleatorio síncrona y dinámica’) es una familia de memorias dinámicas de acceso aleatorio (DRAM) que tienen una interfaz síncrona, usadas ya desde principios de 1970.

## Visión general

El reloj también permite controlar una máquina de finitos interna que controla la función de "pipeline" de las instrucciones de entrada. Esto permite que el chip tenga un patrón de operación más complejo que la DRAM asíncrona, que no tiene una interfaz de sincronización.
El método de «segmentación» significa que el chip puede aceptar una nueva instrucción antes de que haya terminado de procesar la anterior. En una escritura de datos, el comando "escribir" puede ser seguido inmediatamente por otra instrucción, sin esperar a que los datos se escriban en la matriz de memoria. En una lectura, los datos solicitados aparecen después de un número fijo de pulsos de reloj tras la instrucción de lectura, durante los cuales se pueden enviar otras instrucciones adicionales. (Este retraso se llama latencia y es un parámetro importante a considerar cuando se compra una memoria SDRAM para un ordenador.)

### Uso

Las memorias SDRAM son ampliamente utilizadas en los ordenadores, desde la original SDR SDRAM y las posteriores DDR, DDR2, DDR3, DDR4 y DDR5. Las memorias SDRAM también están disponibles en variedades registradas, para sistemas que requieren una mayor estabilidad, como servidores y estaciones de trabajo.

### Características

Los módulos SDRAM tienen sus propias especificaciones de tiempo, que pueden ser más lentas que las de los chips en el módulo. Cuando los chips SDRAM de 100 MHz aparecieron por primera vez, algunos fabricantes vendían módulos "de 100 MHz" que no podían funcionar de forma fiable en esa frecuencia de reloj. En respuesta, Intel publicó el estándar PC100, que describe los requisitos y directrices para la producción de un módulo de memoria que puede funcionar de forma fiable a 100 MHz. Esta norma fue muy influyente, y el término "PC100" rápidamente se convirtió en un identificador común para módulos SDRAM de 100 MHz, y los módulos son ahora comúnmente designados como "PC"-número (PC66, PC100 o PC133 - aunque el significado actual de los números ha cambiado).

#### Latencia

La latencia SDRAM no es intrínsecamente inferior (más rápido) que la DRAM asíncrona. De hecho, las primeras memorias SDRAM eran algo más lentas que las BEDO-DRAM debido a la lógica adicional. Los beneficios del buffer interno de las SDRAM provienen de su capacidad para intercalar las operaciones en los bancos múltiples de la memoria, lo que aumenta el ancho de banda efectivo.

#### Obsolescencia

Existen varios límites en el rendimiento de la DRAM. El más conocido es el tiempo de ciclo de lectura, esto es el tiempo entre las sucesivas operaciones de lectura a una fila abierta. Este tiempo se redujo de 10 ns en las SDRAM de 100 MHz a 5 ns en las DDR-400, pero se ha mantenido relativamente sin cambios a través de las generaciones DDR2-800 y DDR3-1600. Sin embargo, al operar la circuitería de interfaz en múltiplos cada vez mayores de la tasa de lectura fundamental (con periodos cada vez más pequeños), el ancho de banda alcanzable ha aumentado rápidamente.
Otro límite es la latencia CAS, el tiempo entre el suministro de la dirección de una columna y la recepción de los datos correspondientes. De nuevo, esto se ha mantenido relativamente constante entre 10 y 15 ns en las últimas generaciones de SDRAM DDR. En la práctica la latencia CAS es un número específico de ciclos de reloj programados en el registro de modo de la SDRAM, y tenidos en cuenta por el controlador de la memoria SDRAM. Cualquier valor puede ser programado, pero la SDRAM no funcionará correctamente si es demasiado bajo, ya que este valor de guarda no cubrirá la latencia real. A mayores tasas de reloj la latencia CAS medida en ciclos aumenta, aunque en el tiempo sea la misma: 10-15 ns son 2-3 ciclos de reloj de 200 MHz de la DDR-400, 4-6 ciclos para la DDR2-800, y 8-12 ciclos para la DDR3-1600.

## Historia
### 1970

Aunque el concepto de memoria DRAM síncrona era conocido desde al menos la década de 1970, y fue utilizado con los primeros procesadores de Intel, fue solo en 1993 cuando la SDRAM comenzó su camino hacia la aceptación universal de la industria electrónica.

### 1993

En 1993, Samsung introdujo su KM48SL2000 DRAM síncrona, y en 2000, la SDRAM había sustituido a prácticamente todos los otros tipos de DRAM en los ordenadores modernos, debido a su mayor rendimiento.

### 2007

Desde 2007 las SDRAM DIMM de 168 pines no se utilizan en nuevos sistemas de PC, y las DDR de 184 pines han sido sustituidas en su mayoría. Las SDRAM DDR2 son el tipo más común usado en equipos nuevos, y las placas base y memorias DDR3 están ampliamente disponibles, siendo incluso más baratas que los todavía populares productos DDR2.

### Actualidad

Hoy en día prácticamente todas las SDRAM se fabrican de acuerdo con las normas establecidas por la JEDEC, una asociación de la industria electrónica que adopta los estándares abiertos para facilitar la interoperabilidad de los componentes electrónicos. JEDEC adoptó formalmente su primer estándar SDRAM en 1993, y posteriormente aprobó más normas SDRAM, incluyendo las de DDR, DDR2, DDR3, DDR4 y DDR5.

## Visión detallada
### Funcionamiento

El uso del bus de datos es complejo y requiere un controlador de memoria DRAM complejo, ya que los datos a escribir en la memoria DRAM deben presentarse en el mismo ciclo que el comando de escritura, pero la lectura produce una salida 2 o 3 ciclos después del comando correspondiente. El controlador de memoria DRAM debe asegurarse de que el bus de datos nunca se requiere para escritura y lectura simultáneamente.

#### Señales de control

Todos los comandos están programados en relación con el flanco de subida de una señal de reloj. Además del reloj, hay 6 señales de control, en su mayoría de baja activa, que se muestra en el flanco de subida del reloj:
* Reloj ‘’’CKE’’’ Habilitar. Cuando esta señal es baja, el chip se comporta como si el reloj se hubiera detenido. No se interpretan comandos y los tiempos de latencia de comando no transcurren. El estado de las líneas de control de otros no es relevante. El efecto de esta señal es en realidad un retraso de un ciclo de reloj. Es decir, el producto actual ciclo de reloj, como de costumbre, pero el siguiente ciclo de reloj es ignorado, excepto para la prueba de nuevo la entrada de CKE. Las operaciones normales se reanudan en el flanco de subida del reloj después de aquel en el que se toman muestras de CKE alta.
Dicho de otra manera, todas las operaciones de microprocesadores también se programan en relación con el flanco ascendente de un reloj de enmascarados. El reloj enmascarado es el lógico de la entrada de reloj y el estado de la señal de CKE en el flanco de subida anterior de la entrada de reloj.
* ‘’’/ CS’’’ Chip Select. Cuando esta señal es alta, el chip hace caso omiso de todas las otras entradas (excepto para CKE), y actúa como si se recibe un comando NOP.
* ‘’’DQM’’’ ocultar los datos. (La letra Q aparece porque, siguiendo las convenciones de la lógica digital, las líneas de datos se conoce como "DQ" líneas.) Al alta, estas señales de supresión de los datos I / O. Cuando acompañan a escribir los datos, los datos no son en realidad por escrito a la DRAM. Cuando afirmó alta dos ciclos antes de un ciclo de lectura, la lectura de datos no es la salida del chip. Hay una línea DQM por 8 bits en un chip x16 de memoria o DIMM.
* ‘’’/RAS’’’ fila Dirección Strobe. A pesar del nombre, este no es un estrobo, sino simplemente un poco de comandos. Junto con / CAS y / WE, esto selecciona uno de los 8 comandos.
* ‘’’/ CAS’’’ columna Dirección Strobe. A pesar del nombre, este no es un estrobo, sino simplemente un poco de comandos. Junto con / RAS y / WE, esto selecciona uno de los 8 comandos.
* ‘’’/ WE’’’ modo escritura. Junto con / RAS y CAS, esta selecciona uno de los 8 comandos. Esto generalmente se distingue de lectura como los comandos de escribir-como comandos.
Dispositivos SDRAM se dividen internamente en 2 o 4 bancos de datos interna independiente. Uno o dos entradas de la dirección del banco (BA0 y BA1) seleccionar un comando de que el banco se dirige.
Muchos de los comandos también utilizar una dirección presentados en los pines de dirección de entrada. Algunos comandos, que o bien no utilizar una dirección, o presentar una columna de dirección, también utilizan A10 para seleccionar variantes. Los comandos de entender son los siguientes.
| /CS | /RAS | /CAS | /WE | BAn | A10 | An | Comandos |
| H | x | x | x | x | x | x | Comando do inhibir (No operación) |
| L | H | H | H | x | x | x | Ninguna operación |
| L | H | H | L | x | x | x | Burst Terminar: Parada de una ráfaga de lectura o escritura en el progreso estallido. |
| L | H | L | H | banco | L | columna | Leer: Leer una ráfaga de datos de la fila activa. |
| L | H | L | H | banco | H | columna | Lea con precarga automática: Como el anterior, y precarga (cierra la fila) cuando termine. |
| L | H | L | L | banco | L | columna | Escribe: Escribe una ráfaga de datos a la fila activa. |
| L | H | L | L | banco | H | columna | Escribir con precarga automática: Como el anterior, y precarga (cierra la fila) cuando termine. |
| L | L | H | H | banco | row | row | Active (Activar): abrir una línea de comandos Leer y Escribir |
| L | L | H | L | banco | L | x | Precarga: Desactivar la fila actual del banco seleccionado. |
| L | L | H | L | x | H | x | Precargar todos: Desactivar la fila actual de todos los bancos. |
| L | L | L | H | x | x | x | Actualización automática: Actualizar una fila de cada banco, utilizando un contador interno. Todos los bancos deben ser precargado. |
| L | L | L | L | 0 0 | mode | mode | Registro de modo de carga: A0 a través de A9 se cargan para configurar el chip DRAM Los ajustes más importantes son la latencia CAS (2 o 3 ciclos) y la longitud de la ráfaga (1, 2, 4 u 8 ciclos) |

#### Cómo opera

Una SDRAM DIMM 512 MiB pueda hacerse de los 8 o 9 chips SDRAM, cada uno con 512 Mibit de almacenamiento, y aportando cada uno de 8 bits de ancho de 64 - o 72-bit de la DIMM. Una típica de chips SDRAM de 512 Mibit internamente consta de 4 bancos independientes de 16 MiB. Cada banco es una matriz de 8.192 líneas de 16.384 bits cada uno. Un banco es o inactivo, activo, o cambiar de uno a otro.
Un comando activo activa un banco de inactividad. Se necesita un 2-bit de la dirección del banco (BA0-BA1) y una dirección de la fila 13-bit (A0-A12), y dice que la fila en la matriz del banco de 16.384 amplificadores de sentido. Esto también se conoce como "apertura" de la fila. Esta operación tiene el efecto secundario de actualizar esa fila.
Una vez que la fila se ha activado o "abierto", leer y escribir los comandos son posibles. Cada comando requiere una dirección de columna, pero debido a que cada chip funciona en 8 bits a la vez, hay 2048 direcciones de columna posible, necesitando solo 11 líneas de dirección (A0-A9, A11). La activación requiere un tiempo mínimo, llamado de la fila a retrasar la columna, o tRCD. Esta vez, redondeado al próximo múltiplo del período de reloj, especifica el número mínimo de ciclos entre un comando activo, y de lectura o escritura de comandos. Durante estos ciclos de retraso, comandos arbitrarios pueden ser enviados a otros bancos, que son completamente independientes.
Cuando se emite un comando de lectura, la SDRAM producirá la salida de datos correspondiente en las líneas de DQ a tiempo para el flanco de subida del reloj de 2 o 3 ciclos más tarde (dependiendo de la latencia CAS está configurado). Tras las palabras de la explosión se produjo a tiempo para que los bordes posteriores de reloj en aumento.
Un comando de escritura va acompañada de los datos sean escritos en las líneas de DQ en el flanco de subida igual. Es el deber del controlador de memoria para garantizar que la SDRAM no es leer los datos de conducción en las líneas de DQ, al mismo tiempo que necesita para escribir datos en la unidad de estas líneas. Esto puede ser hecho por esperar hasta que una ráfaga de lectura no está en curso, da por concluido el estallido leer, o utilizando la línea de control DQM.
Cuando el controlador de memoria quiere acceder a una fila diferente, primero debe devolver ese sentido banco amplificadores a un estado de inactividad, listo para sentir la siguiente fila. Esto se conoce como precarga una "operación", o "cierre" de la fila. La precarga puede ser ordenada de forma explícita, o puede ser realizado de forma automática a la conclusión de una operación de lectura o escritura. Una vez más, hay un tiempo mínimo, la demora de precarga de fila, PRT, que debe transcurrir antes de que el banco esté totalmente inactivo y puede recibir otro comando activo.
Si bien refrescar una fila es un efecto secundario automático de activarlo, hay un tiempo mínimo para que esto suceda, lo que requiere un mínimo tiempo de acceso a la fila tRAS, que debe transcurrir entre un comando activa la apertura de una fila, y el comando de precarga correspondiente cierre. Este límite es generalmente eclipsada por los que desee leer y escribir los comandos a la fila, por lo que su valor tiene poco efecto sobre el rendimiento típico.

#### Comando de las interacciones

La operación de comando no siempre se permite.
La carga de comandos de modo registro requiere que todos los bancos de estar inactivo, y un retraso después de que los cambios surtan efecto.
El comando de actualización automática también requiere que todos los bancos de estar inactivo, y toma un refresco tRFC tiempo de ciclo para regresar el chip al estado de inactividad. (Este tiempo es generalmente igual a tRCD + PRT.)
El único otro comando que se permite en un banco de inactividad es el comando activo. Esto lleva, como se mencionó anteriormente, tRCD antes de la fila está completamente abierta, y puede aceptar leer y escribir los comandos.
Cuando un banco está abierto, hay cuatro comandos permite: leer, escribir, poner fin a estallar, y precarga. Leer y escribir comandos comienzan ráfagas, que puede ser interrumpida por los siguientes comandos.

##### La interrupción de un estallido leer

De lectura, se echó terminar, o un comando de precarga se podrán expedir en cualquier momento después de un comando de lectura, y se interrumpa el estallido leído después de la latencia CAS configurado. Así que si un comando de lectura se emite en el ciclo de 0, otro comando de lectura se emite en el ciclo 2, y la latencia CAS es 3, entonces el comando de lectura primero se iniciará de ruptura de datos durante los ciclos 3 y 4, a continuación, los resultados de la segunda lectura comando aparecerá a partir de ciclo 5.
Si el comando emitido en el ciclo 2 se rompió por terminado, o una precarga del banco activo, entonces no hay salida se genera durante el ciclo 5.
Aunque la interrupción de leer puede ser a cualquier banco activo, un comando de precarga solo interrumpir el estallido de leer si se quiere que el mismo banco o de todos los bancos, un comando de precarga a un banco diferente no interrumpirá una explosión leer.
Para interrumpir un estallido leído por un comando de escritura es posible, pero más difícil. Se puede hacer, si la señal DQM se utiliza para suprimir la producción de la SDRAM para que el controlador de memoria pueda manejar datos a través de las líneas de DQ a la SDRAM a tiempo para la operación de escritura. Debido a los efectos de DQM en la lectura de datos se retrasan en 2 ciclos, pero los efectos de DQM en escribir los datos son inmediatos, DQM debe ser elevado (para ocultar los datos leídos), comenzando por lo menos dos ciclos antes de escribir comandos, sino que debe reducirse para el ciclo de la escritura de comando (asumiendo que usted desea que el comando de escritura para tener un efecto).
Hacer esto en solo dos ciclos de reloj requiere una cuidadosa coordinación entre el momento de la toma de SDRAM para apagar su producción en un borde de reloj y el tiempo que los datos deben ser suministrados como entrada a la SDRAM para la escritura en el borde de reloj siguiente. Si la frecuencia de reloj es demasiado alta para permitir el tiempo suficiente, tres ciclos que sean necesarios.
Si el comando de lectura incluye auto-precarga, la precarga se inicia el mismo ciclo que el comando de interrupción.

##### Interrupción de una escritura estallido

Cualquier leer, escribir, o la explosión acabar con el comando, para cualquier banco, ponga fin a un estallido escribir inmediatamente, los datos proporcionados en las líneas de DQ cuando se emite el segundo comando solo se utiliza si el segundo comando es también una escritura.
Es posible poner fin a un estallido escribir con un comando de precarga (para el mismo banco), pero también es más difícil. Hay un mínimo de tiempo de escritura, TWR, que debe transcurrir entre la última operación de escritura a un banco (el ciclo desenmascarado pasado de una escritura de ruptura) y un comando de precarga siguiente, de modo de escritura instantánea solo podrá ser resuelto por un comando de precarga si es lo suficientemente los ciclos se enmascaran detrás (con DQM) para compensar la TWR necesario. Una escritura-con-mando automático precarga incluye esta demora de forma automática.

##### Interrupción de una auto-precarga de comandos

Manejo de la interrupción de la lectura y escritura con auto-precarga SDRAM es una característica opcional, pero muchos lo apoyan. Si se utiliza este, la precarga (después de leer) o TWR esperar seguido de precarga (después de una operación de escritura) comienza el mismo ciclo que el comando de interrupción.

#### Estallido SDRAM pedido

Un microprocesador moderno con un caché de memoria de acceso general, en unidades de las líneas de caché. Para transferir una línea de caché de 64 bytes requiere 8 accesos consecutivos a un 64-bit DIMM, que pueden ser provocados por una sola lectura o escritura de comandos mediante la configuración de los chips de SDRAM, utilizando el registro de modo, para realizar 8-ráfagas palabra.
Una línea de caché de buscar es típicamente provocada por una lectura de una dirección particular, y SDRAM permite que la palabra "crítica" de la línea de caché para ser transferidos en primer lugar. (“Word" aquí se refiere a la anchura de la viruta o SDRAM DIMM, que es de 64 bits para un DIMM típica). Chips SDRAM de dos convenios de apoyo posible para el ordenamiento de las palabras que quedan en la línea de caché.
Ráfagas siempre tener acceso a un bloque alineado de palabras BL consecutivos que comienza en un múltiplo de BL. Así, por ejemplo, un 4-acceso estallido palabra a cualquier dirección de la columna 4 a 7 volverá palabras 4-7. El orden, sin embargo, depende de la dirección requerida, y la opción de configurar el tipo de rotura: secuencial o intercalada. Normalmente, un controlador de memoria se requiere uno o el otro.
Cuando la longitud de la ráfaga es de 1 o 2, el tipo de explosión, no importa. Para una longitud de la ráfaga de 1, la palabra que es la única palabra que tiene acceso. Para una longitud de explosión de 2, la palabra que se accede en primer lugar, y la otra palabra en el bloque alineado se accede a segunda. Esta es la palabra siguiente si se ha especificado una dirección, incluso, y la palabra anterior si se ha especificado una dirección extraña.
Para el modo de ráfaga secuencial, más tarde las palabras se acceden en orden creciente en la dirección, ajuste de nuevo al inicio del bloque que se llegó al final. Así, por ejemplo, para una longitud de la ráfaga de 4, y una dirección de columna solicitada de 5, las palabras se puede acceder en el orden 5-6-7-4. Si la longitud de la ráfaga era de 8, el orden de acceso sería 5-6-7-0-1-2-3-4. Esto se hace mediante la adición de un contador a la dirección de la columna, y haciendo caso omiso lleva más allá de la longitud de la ráfaga.
El modo de ráfaga intercalada calcula la dirección mediante un exclusivo o de cooperación entre el contador y la dirección. Uso de la dirección de comienzo mismo de 5, 4-estalló palabra volvería palabras en el orden 5-4-7-6. Un 8-estalló palabra sería 5-4-7-6-1-0-3-2. Aunque más confuso para los seres humanos, esto puede ser más fácil de implementar en hardware, y es preferido por los microprocesadores de Intel.
Si la dirección de la columna solicitada se encuentra en el inicio de un bloque, modos de ráfaga, tanto devolver los datos en el orden secuencial mismo 0-1-2-3-4-5-6-7. La única diferencia importa si ir a buscar una línea de caché de la memoria en orden de las palabras críticas, en primer lugar.

#### Modo de registro

De datos único SDRAM tiene una tasa de 10 páginas a un bit de modo de registro programable. Más tarde, el doble de datos de normas de SDRAM tasa añadir registros modo adicional, se dirigió a utilizar los pines banco de direcciones. Para SDRAM SDR, las clavijas de Dirección del Banco y las líneas de dirección A10 y encima se pasan por alto, pero debe ser cero durante un registro de modo de escribir.
Los bits se M9 a través de M0, presentado por la A9 a través de líneas de dirección A0 durante un ciclo de carga de registro de modo.
* M9: Escribe el modo ráfaga. Si es 0, escribe utilizar la longitud de la ráfaga y el modo de leer. Si 1, todas las escrituras no son de estallido (ubicación única).
* M8, M7: modo de funcionamiento. Reservado, y debe ser 00.
* M6, M5, M4: latencia CAS. En general, solo 010 (CL2) y 011 (CL3) son legales. Especifica el número de ciclos entre un comando de lectura y de salida de datos del chip. El chip tiene un límite fundamental de este valor en nanosegundos, durante la inicialización, el controlador de memoria debe utilizar su conocimiento de la frecuencia de reloj de traducir ese límite en los ciclos.
* M3: Tipo de ráfaga. 0 - peticiones estallido secuencial de pedidos, mientras que 1 peticiones intercalados estallido de pedido.
* M2, M1, M0: longitud de la ráfaga. Los valores de 000, 001, 010 y 011 especifican un tamaño de ráfaga de 1, 2, 4 u 8 palabras, respectivamente. Cada leer (y escribir, si M9 es 0) llevará a cabo que tiene acceso a muchos, a no ser interrumpido por una parada de reventar u otro comando. Un valor de 111 especifica una explosión fila completa. La explosión continuará hasta que se interrumpan. Full estallidos de fila solo se permite con el tipo de explosión secuencial.

#### Actualización automática

Es posible cargar un chip de memoria RAM por la apertura y cierre (activación y precarga) cada fila de cada banco. Sin embargo, para simplificar el controlador de memoria, los chips SDRAM de apoyo a una "actualización automática" de comando, que realiza estas operaciones a una fila de cada banco de forma simultánea. La SDRAM también mantiene un contador interno, que itera sobre todos los registros posibles. El controlador de memoria, simplemente debe enviar un número suficiente de comandos de actualización automática (una por fila, 4096 en el ejemplo que hemos estado usando) cada intervalo de actualización (TREF = 64 ms es un valor común). Todos los bancos debe estar inactivo (cerrado, precargado) cuando se emite este comando.

#### Modos de bajo consumo

Como se mencionó, el reloj de habilitar (CKE) de entrada puede ser usada efectivamente para detener el reloj a una SDRAM. La entrada de CKE se muestra cada flanco de subida del reloj, y si es baja, el siguiente flanco de subida del reloj se omite para cualquier otro fin que el control de CKE.
CKE Si se baja, mientras que la SDRAM está realizando operaciones, sino que simplemente se "congela" en el lugar hasta CKE se eleva de nuevo.
Si la SDRAM está inactiva (todos los bancos precargado, ningún comando en curso), cuando se baja de CKE, la SDRAM entra automáticamente en modo power-down, poder de consumo mínimo hasta CKE se eleva de nuevo. Esto no debe durar más de TREF el máximo intervalo de actualización, o la memoria del contenido se puede perder. Es legal para detener el reloj en su totalidad durante este tiempo para el ahorro de energía adicional.
Por último, si CKE se reduce al mismo tiempo, como un auto de comando de actualización se envía a la SDRAM, SDRAM entra en el modo de autoactualización. Esto es como el poder hacia abajo, pero la SDRAM utiliza un temporizador en chip interno para generar ciclos de actualización cuando sea necesario. El reloj puede ser detenido durante este tiempo. Si bien el modo de autoactualización consume un poco más de modo power-down, permite que el controlador de memoria para ser desactivado por completo, lo que comúnmente más que compensa la diferencia.

### Sucesos de error

Además de DDR, había varias otras tecnologías de memoria propuesto para suceder a SDR SDRAM.

#### Link DRAM síncrona (SLDRAM)

SLDRAM jactó de mayor rendimiento y compitió contra la RDRAM. Se desarrolló durante la década de 1990 por el Consorcio SLDRAM, que consistía de aproximadamente 20 fabricantes importantes de la industria informática. Es un estándar abierto y no requiere de licencias. Las especificaciones para el llamado del bus de 64-bit funcionan a una frecuencia de 200 MHz de reloj. Esto se logra por todas las señales están en la misma línea y evitando así el tiempo de sincronización de múltiples líneas. Como DDR SDRAM, SLDRAM puede operar al doble de velocidad del reloj del sistema dándole una velocidad efectiva de 400 MHz.

#### Virtual Channel Memory (VCM) SDRAM

VCM era un tipo de propiedad de SDRAM que fue diseñado por NEC, pero fue liberado como un estándar abierto, sin derechos de licencia. VCM crea un estado en el que los diferentes procesos del sistema se puede asignar su propio canal virtual, aumentando así la eficacia global del sistema, evitando la necesidad de que los procesos de espacio de búfer acción. Esto se logra mediante la creación de distintos "bloques" de la memoria, permitiendo que cada bloque de memoria individual a la interfaz por separado con el controlador de memoria y tener su espacio propio buffer. VCM tiene mayor rendimiento que la SDRAM porque tiene latencias significativamente más bajos. La tecnología es un competidor potencial de RDRAM VCM porque no era tan caro como se RDRAM. Un módulo VCM es mecánica y eléctricamente compatible con la SDRAM estándar, sino que debe ser reconocido por el controlador de memoria. Placas pocos fueron producidos con el apoyo del VCM.

### Generaciones de SDRAM
#### SDR SDRAM (Single Data Rate SDRAM o SDRAM de tasa de datos simple)

SDR SDRAM (de las siglas en inglés Single Data Rate Synchronous Dynamic Random-Access Memory) es un tipo de memoria RAM, de la familia de las SDRAM y cuenta con 168 contactos.

#### DDR SDRAM (Double Data Rate SDRAM o SDRAM de tasa de datos doble)

Mientras que la latencia de acceso de las memorias DRAM está fundamentalmente limitada por la propia matriz DRAM, el sistema tiene un ancho de banda potencial muy alto porque cada lectura interna es en realidad una fila de miles de bits (no una sola palabra de 8 bits). Para hacer este ancho de banda más disponible para los usuarios se desarrolló la interfaz de doble tasa de datos. Este sistema utiliza los mismos comandos, aceptados una vez por ciclo, pero lee o escribe dos palabras de datos consecutivas por ciclo de reloj. Se añadieron algunos cambios menores en la interfaz de temporización de SDR, y la tensión de alimentación se redujo de 3,3 a 2,5 V, por lo que DDR no es retrocompatible con SDR.
Las frecuencias reloj típicas de DDR son de 133, 166 y 200 MHz (7,5, 6, y 5 ns/ciclo respectivamente), generalmente nombradas como DDR-266, DDR-333 y DDR-400 (ya que la tasa de datos es el doble de la frecuencia). Los correspondientes paquetes DIMM de 184 pines son conocidos como PC-2100, PC-2700 y PC-3200. Un rendimiento de hasta DDR-550 (PC-4400) está disponible por cierto precio.

#### DDR2 SDRAM (Double Data Rate type two SDRAM o SDRAM de tasa de datos doble de tipo dos)

La DDR2 SDRAM es muy similar a la DDR SDRAM, pero duplica de nuevo la unidad mínima de lectura o escritura interna hasta las 4 palabras consecutivas. Esto permite que la tasa de bus vuelva a doblarse sin necesidad de aumentar la frecuencia de reloj interna de las operaciones de RAM. Por otra parte las operaciones internas se realizan en unidades 4 veces más grandes que una SDRAM simple (2 más que la DDR). Sin embargo la interfaz con el bus sigue siendo de dos palabras por cada ciclo de reloj (por eso sigue siendo Double Data Ratio), por lo que la frecuencia interna de la memoria es la mitad que la del bus, manera que esas 4 palabras se presenten en dos pares consecutivos en el bus. El protocolo de bus también se simplificó para permitir un mayor rendimiento en la operación. Asimismo se añadió un pin adicional para la selección de banco de memoria (Ba2) para permitir 8 bancos en chips de memoria RAM de gran tamaño.
Las frecuencias de bus típicas de la DDR2 son 200, 266, 333 o 400 MHz (periodos de 5, 3,75, 3 y 2,5 ns respectivamente), generalmente llamados DDR2-400, DDR2-533, DDR2-667 y DDR2-800. Los correspondientes paquetes DIMM de 240 pines son desde PC2-3200 hasta PC2-6400. La DDR2 SDRAM actualmente está disponible a una velocidad de reloj de hasta 533 MHz, generalmente llamado DDR2-1066 y los módulos DIMM correspondientes se conocen como PC2-8500 (también PC2-8600, dependiendo del fabricante). Un rendimiento de hasta DDR2-1250 (PC2-10000) está disponible por cierto precio.
Nótese que debido a que las operaciones internas se realizan a la mitad de la frecuencia de reloj, a igual tasa de datos se tiene una mayor latencia que en DDR. Por ejemplo una memoria DDR2-400 (velocidad del reloj interno de 100 MHz) tiene una latencia algo más alta que los módulos DDR-400 (velocidad del reloj interno de 200 MHz).

#### DDR3 SDRAM (Double Data Rate type three SDRAM o SDRAM de tasa de datos doble de tipo tres)

DDR3 continúa la tendencia, duplicando el mínimo de lectura o escritura en la unidad a 8 palabras consecutivas. Esto permite otra duplicación de la velocidad de bus sin tener que cambiar la velocidad de reloj de las operaciones internas. Para mantener las transferencias de 800-1600 Mb/s, la matriz RAM interna tiene que realizar solo 100-200 millones de accesos por segundo.
Como ocurre con todas las generaciones de DDR, los comandos están limitados a un ciclo de reloj, y la latencia vuelve a aumentar al tener que convertir una lectura de 8 palabras en 4 pares para su salida al bus.
Los chips de memoria DDR3 son actualmente (2012) los más habituales en equipos nuevos, teniendo frecuencias de bus de 400, 533, 667 y 800 MHz, que se nombran como DDR3-800, DDR3-1066, DDR3-1333 y DDR3-1600 respectivamente, y se montan en módulos PC3-6400, PC3-8500, PC3-10600 y PC3-12800 respectivamente. Tasas de hasta DDR3-2000 están disponible por cierto precio.
Los DDR3 tienen 246 pines al igual que los DDR2.

#### DDR4 SDRAM (Double Data Rate type four SDRAM o SDRAM de tasa de datos doble de tipo cuatro)

DDR4 es el sucesor de DDR3, revelado en el foro de desarrollo Intel en 2008, y su lanzamiento es inminente 2012. Se espera que DDR4 alcance el mercado masivo sobre el 2015, lo que es comparable a los cinco años que llevó la transición de DDR2 a DDR3.
Se espera que los nuevos chips tengan una alimentación de 1,2 V o menos, contra los 1,5 V de DDR3, y tasas de datos de hasta 2 GB/s. Se espera que inicialmente tengan frecuencias de bus de 2133 MHz, pero con potencial estimado de llegar hasta los 4266 MHz y bajar el voltaje hasta 1,05 V en 2013.
Al contrario que en los anteriores desarrollos, DDR4 no incrementará en ancho de las lecturas, que seguirá siendo de 8 bytes como en DDR3, sino que intercalará lecturas en diferentes bancos para alcanzar las velocidades de bus deseadas.
En febrero de 2009 Samsung validó los chips DRAM de 40 nm, considerados un avance significativo hacia el desarrollo de DDR4, mientras que los chips actuales comienzan a migrarse a 50 nm. En enero de 2011 Samsung anunció la finalización y liberación para pruebas de un módulo RAM DDR4 de 30 nm de 2 GiB, con un ancho de banda máximo de 2,13 Gbit/s a 1,2 V, y usando tecnología pseudo - drenador abierto que gasta un 40% menos que un módulo DDR3 equivalente.
Los módulos de memoria DDR4 SDRAM tienen un total de 288 pines DIMM.

#### Tabla de características

| Tipo | Características |
| SDR | V$_{cc}$ = 3,3 V Señal: LVTTL |
| DDR | Acceso mínimo: 2 palabras V$_{cc}$ = 2,5 V Señal: SSTL_2 (2,5 V) |
| DDR2 | Acceso mínimo: 4 palabras V$_{cc}$ = 1,8 V Señal: SSTL_18 (1,8 V) Reloj interno a frecuencia 1/2 |
| DDR3 | Acceso mínimo: 8 palabras V$_{cc}$ = 1,5 V Señal: SSTL_15 (1,5 V) Reloj interno a frecuencia 1/4 |
| DDR4 | Acceso mínimo: 16 palabras V$_{cc}$ ≤ 1,2 V Señal: POD12 (1,2 V) |