lunes, 27 de septiembre de 2010

DDR y su legado: DDR2, DDR3 y DDR4 (parte II)

La capacidad, velocidad y voltaje no son los únicos tres parámetros a utilizar a la hora de comparar distintas clases de memorias. También hay que considerar la latencia, es decir, el tiempo que el controlador de memoria debe esperar desde que efectúa un requerimiento de datos hasta que obtiene los datos requeridos, y algunos otros parámetros, como la cantidad de bits de prefetch.

También conocida como Latencia CAS (por Column Address Strobe), o simplemente CL, la latencia se expresa como una cantidad de ciclos de reloj. Por ejemplo, una memoria con CL3 significa que el controlador de memoria debe esperar tres ciclos de reloj antes de que la información sea entregada luego de efectuar el requerimiento. Con una memoria de latencia CL5, el controlador de memoria deberá esperar más: cinco ciclos de reloj. Es por esto que siempre conviene utilizar módulos de memoria con la menor latencia posible.

Las memorias DDR3 tienen valores de latencia superiores a los de DDR2, los cuales a su vez tienen valores más altos que los de DDR. Las memorias DDR2 y DDR3 poseen un parámetro adicional llamado AL (Additional Latency), o simplemente A. Con las memorias DDR2 y DDR3, la latencia total será de CL + AL. Afortunadamente, la mayoría de las memorias DDR2 y DDR3 son AL 0, lo que implica que no se necesita ninguna latencia adicional. En el cuadro siguiente se resumen los valores de latencia más comunes:

Tecnología Latencia típica Otras latencias comunes
DDR 3 2, 2.5
DDR2 5 3, 4
DDR3 7 6, 8, 9

Esto significa que las memorias DDR3 demoran más ciclos de reloj para comenzar a entregar datos en comparación con las DDR2, y que éstas últimas demoran más que las DDR. Esto no necesariamente significa un mayor tiempo de espera, salvo que se comparen memorias trabajando a la misma frecuencia de reloj.

Por ejemplo una memoria DDR2-800 CL5 demorará menos tiempo para comenzar a entregar datos que una DDR3-800 CL7. Pero como ambas son de 800 MHz, las dos brindan la misma tasa de transferencia máxima teórica (6.400 MB/seg.). También es importante recordar que la DDR3 consume menos energía que la DDR2 de iguales características.

Comúnmente, los fabricantes anuncian los timings de sus memorias como una serie de varios números separados por guiones (por ejemplo, 5-5-5-5, 7-10-10-10, etc.). La latencia CAS es siempre el primer número de la serie.

Prefetch

Las memorias dinámicas almacenan los datos dentro de un array de diminutos capacitores. Las memorias DDR transfieren dos bits de datos por ciclo de reloj desde el array de memoria al buffer interno de E/S de la memoria. Esto se denomina prefetch de dos bits. En la DDR2, este recorrido interno fue ensanchado a cuatro bits, y en la DDR3, a ocho bits. Este es el truco que permite que DDR3 funcione a mayores frecuencias que la DDR2, y que a su vez ésta funcione a mayores frecuencias que la DDR.

Hasta aquí, al hablar de frecuencias de reloj estuvimos refiriéndonos a las del “mundo externo”, es decir, las que controlan la interfaz de E/S de la memoria, donde se lleva a cabo la comunicación entre la memoria y el controlador. Pero internamente, la memoria funciona en forma ligeramente diferente.

Para entender mejor esta idea es conveniente comparar un chip de memoria DDR-400 con un DDR2-400 y con un DDR3-400 (hagamos de cuenta que estas últimas existen). Los tres chips trabajan externamente a 200 MHz, transfiriendo dos bits por ciclo de reloj, logrando una performance externa equivalente a si operaran a 400 MHz. Internamente, sin embargo, el chip DDR transfiere dos bits entre el array de memoria y el buffer de E/S, con lo cual, para equiparar la velocidad de la interfaz, esta ruta de datos debe operar a 200 MHz (200 MHz x 2 = 400 MHz). Debido a que en la DDR2 esta ruta se ensanchó de 2 a 4 bits, puede trabajar a la mitad de la frecuencia de reloj para lograr la misma performance (100 MHz x 4 = 400 MHz). Con DDR3 sucede lo mismo: la ruta fue ensanchada de nuevo a 8 bits, por lo cual puede operar a la mitad de la frecuencia de la DDR2 o a ¼ de la de la DDR para lograr la misma performance (50 MHz x 8 = 400 MHz).

Para concluir este tutorial, en la próxima entrega veremos otras diferencias entre DDR, DDR2 y DDR3, y lo que se viene: DDR4.

No hay comentarios: