Las características diferenciadoras de las DRAM frente a las SRAM(Static RAM), sin entrar en temas de tecnología como la estructura de la celda de memoria, son básicamente dos:
- A la memoria SRAM se le presenta, por lo general, la dirección completa de una sola vez; mientras, a la DRAM se le presenta multiplexada, primero la fila y después la columna.
- La DRAM requiere, además, ciclos de refresco para mantener la integridad de los datos internos.
Inaugura esta familia de memorias la FPM (Fast Page Mode) DRAM. En los primeros tiempos, la tecnología era de 5V y las memorias asíncronas; no necesitaban reloj. El tiempo de acceso al dato desde que el controlador de memoria (en la CPU o el chipset) presentaba la parte de la dirección correspondiente a la fila se situaba en torno a los 35 ns y era de unos 13 ns para la columna. Ya desde las primeras implementaciones, una vez presentada la fila se podía ir variando la columna, de manera que los datos llegaban cada 13 ns.
Una mejora posterior apareció en el año 1995 de la mano de las EDO (Extended Data Output) DRAM que simplemente mantenían los datos leídos estables hasta el flanco de bajada de CAS# del ciclo siguiente, en lugar de ponerlos en alta impedancia con la subida de CAS# del propio ciclo. Con ello se ganaba el tiempo de la precarga de la columna (tCP), lo que permitió que las ráfagas pasasen de X-3-3-3 a X-2-2-2 ciclos del FSB (Front Side Bus). Una sencilla mejora que permitió aumentar en un 10 % las prestaciones manteniendo el precio. Era la época de los Pentium con reloj interno entre 133-200 MHz y FSB de 66 MHz
DRAM sincrónicas
El siguiente paso de la tecnología viene de la mano de las DRAM síncronas. Entre los cambios que se introducen con ellas tenemos:
1. Entre las señales que llegan al dispositivo se encuentra una señal de reloj (de ahí su nombre) con frecuencia entre 100 y 133 MHz (PC100 y PC133).
2. Se reduce la tensión de alimentación a +3.3V, el inicio de lo que va a ser una reducción continuada.
3. La señalización es LVTTL.
4. Los accesos de lectura y escritura estarán orientados a ráfagas cuya longitud, como otros parámetros de funcionamiento, se programan durante la inicialización[i].
5. Internamente se organizan en 4 bancos. Como en el caso de FPM y EDO, el acceso comienza cuando se presenta a la memoria, junto al comando ACTIVATE, la parte de la dirección correspondiente a la fila, y ahora además el banco, seguidos por el comando READ o WRITE junto al banco y la dirección de comienzo de la ráfaga en la columna. El tiempo de acceso desde la activación de la fila es de 30 ns (tRCD + CL x tCK) y 15 ns (CL x tCK) desde el registro del comando READ hasta la disponibilidad del primer dato de la ráfaga para la especificación PC133; los tres siguientes llegaban a razón de un dato por ciclo: X-1-1-1. Ahora además, una vez abierta la fila dentro del banco, se puede acceder a cualquier columna sin tener que esperar el tiempo de apertura; la ráfaga en estas condiciones es: 2-1-1-1 frente a 4-1-1-1.
De todas formas, el mayor avance respecto a las anteriores EDO no era tanto la latencia como la posibilidad de poder iniciar un segundo acceso a otro banco mientras estaba en progreso el anterior. De esta manera se podían yuxtaponer las ráfagas X-1-1-1-1-1-1-1 frente a X-2-2-2-X-2-2-2, a lo que se añade un reloj que ha pasado de 66 a 133 MHz. En el año 2000 esta tecnología había sustituido completamente a la anterior EDO.
DDR (Double Data Rate)
La siguiente mejora vino de la mano de las DDR (Double Data Rate):
1. La alimentación se reduce a +2.5V.
2. La señalización es a partir de ahora, y hasta la DDR3 incluida, del tipo SSTL.
3. Aumenta el tamaño a 1 Gb.
4. El reloj se hace diferencial.
5. Cada octeto (byte) o cuarteto (nibble) se acompaña de un data strobe (DQS) codireccional que se usa a modo de reloj para capturarlo.
6. Utilización de ambos flancos de DQS. Esta novedad permite duplicar la información transferida en cada ciclo de reloj. Mientras que la reducción del voltaje y otras mejoras aumentar la frecuencia del reloj a 167 MHz (si bien hubo versiones de 200 MHz alimentadas a +2.6V).
Aunque el tiempo de acceso al primer dato de la ráfaga desde la apertura de la fila o desde la columna se sitúa en 30 ns y 15 ns respectivamente, los siguientes se reciben cada 3 ns (tCK/2 @ 167 MHz). De esta forma toda la información contenida en una ráfaga en la que se comienza activando la fila se recibe en 42 ns, o en 24 ns si se accede a una fila ya abierta.
DDR2
Continúa la evolución con la DDR2:
1. Se reduce la tensión de alimentación a +1.8V.
2. Aumenta el tamaño a 2 Gb.
3. El número de bancos se incrementa al doble,hasta 8.
4. Se hacen diferenciales los DQS.
5. Se incluyen terminaciones ODT (On-Die Termination) en las líneas de datos de la memoria que se activan dinámicamente para mejorar la integridad de las señales. La frecuencia de reloj alcanza 533 MHz.
El tiempo de acceso al primer dato de la ráfaga varía poco, siendo 26.25 ns y 13.125 ns respectivamente desde la fila o la columna. Aunque los siguientes tienen mucha menor latencia, 0.94 ns, de manera que la ráfaga completa se transfiere en 30 ns desde la activación de la fila, que es el caso peor.
DDR3 (L)
La siguiente generación, y estamos llegando a la actualidad, es la DDR3 (L):
1. Se reduce la tensión a +1.5V e incluso a +1.35V en la versión de bajo consumo.
2. La capacidad oscila entre 4 Gb (+1.5V) y 8 Gb (+1.35V).
3. Semantiene el número de bancos.
4. Se aumentan de 3 a 5 los posibles valores de las terminaciones.
5. Se puede elegir la impedancia de salida de los drivers de la memoria entre dos valores.
6. Cambia el paradigma de trazado del bus entre la memoria y el controlador. Frente al árbol simétrico de las pistas de ADD/CMD/CTL y el control estático de su skew con el bus de datos, se pasa a la topología fly-by de ADD/CMD/CTL y reloj (CK) y el de-skew dinámico de los DQS respecto al reloj, CK, en la DRAM, mediante un procedimiento que implementa el controlador de memoria asistido por la propia memoria durante la fase de inicialización denominado Write Leveling. Éste consiste en que el controlador va ajustando el desplazamiento del strobe DQS de cada octetoen submúltiplos del período de reloj hasta conseguir su alineamiento con la señal CK. Durante cada paso del proceso, la memoria muestrea CK con el flanco de subida de DQS retornando el valor en el bit menos significativo. El proceso finaliza en el momento que el controlador obtiene una transición de 0 a 1 en CK y el desplazamiento correspondiente representa el retardo que consigue compensar la diferencia de longitud entre ADD/CMD/CTL/CK y el octeto correspondiente.
La nueva topología permite doblar la frecuencia de trabajo hasta 1066 MHz, de manera que el tiempo de acceso al primer dato desde la fila es 13.09 ns, 13.13 ns desde la columna, mientras la latencia al siguiente se reduce a 0.469 ns. De esta manera, una ráfaga completa se transfiere en 28.1 ns desde la fila y en 15 ns desde la columna.
DDR4
Llegamos por fin al último paso en la evolución de la DRAM: la DDR4.
1. Se reduce el voltaje de alimentación una vez más hasta +1.2V.
2. La señalización pasa a ser POD.
3. Aumenta la capacidad a 16 Gb.
4. Se duplican los bancos a 16.
5. La frecuencia se eleva hasta 1600 MHz.
6. Se observa un incremento de los valores de las terminaciones internas ODT (hasta 7 posibles). Las prestaciones aumentan proporcionalmente con el incremento de la frecuencia de reloj.
A la vista de los tiempos de acceso calculados, siempre en el entorno de 30 ns desde la fila y 15 ns desde la columna, podría pensarse erróneamente que las prestaciones no han aumentado significativamente a lo largo del tiempo. Sin embargo, es una percepción que no se ajusta a la realidad por cuanto el controlador normalmente mantiene varios bancos activos (hasta 16 en caso de DDR4), de tal forma que, si bien la latencia corresponde a los tiempos mencionados, el controlador puede planificar los accesos de manera que las ráfagas queden yuxtapuestas unas con otras consiguiendo un throughput, dos órdenes de magnitud mayores que las FPM y EDO.
Pongamos un ejemplo: supongamos que el flujo del programa requiere que se active una fila y luego otra y así, sucesivamente. Y que en consecuencia, el controlador activa en el ciclo N la primera, en el ciclo N+2 la siguiente, etc. Pues bien, en el caso de utilizar las DDR4-3200 tendríamos el primer dato disponible en el ciclo N+44, el segundo en N+44.5, el tercero en N+45 y el cuarto y último de la primera ráfaga, en N+45.5. El primero correspondiente a la activación en N+2 aparecería en N+46, el segundo en N+46.5 y así, sucesivamente. Como se observa, el throughput es un dato cada 0.5 x tCK siendo tCK la inversa de 1600 MHz (625 ps), que expresado en transferencias por segundo resultan 3200 MT/s; y compárese con las tasas de 22 MT/s o 33 MT/s, que se obtenían con la FPM o la EDO respectivamente.
Los equipos TELDAT no han sido espectadores ajenos a esta evolución. Así, el N+ utilizaba FPM DRAM funcionando a 33 MHz; los ATLAS 200, ATLAS 250 y ATLAS 150 usaron SDR SDRAM a 50 MHz, 66 MHz y 100 MHz respectivamente, según la versión de la que se tratara; los ATLAS 160 y ATLAS 360 usan DDR2 a 200 MHz (400 MT/s) y 266 MHz (533 MT/s); el ATLAS 6x inauguró el uso de la DDR3 a 333 MHz (666 MT/s) y los más modernos iM8 e i70 operan con este último tipo, transfiriendo a 1600 MT/s.
En el texto se consideran ráfagas de longitud cuatro.
Considerando únicamente piezas de un solo DIE.
Los 16 bancos se organizan en realidad en 4 grupos de 4 bancos cada uno. Existen nuevas restricciones temporales relacionadas con la pertenencia al grupo y al banco que tienen implicaciones en el diseño del controlador.