Cómo calcular el ancho de banda de una memoria RAM y por qué es tan importante
Cuando hablamos de memoria RAM siempre nos vamos a dos factores principales como son sus latencias y su velocidad, pero es realmente raro que los usuarios hablen de otro factor directamente relacionado con ellos: el ancho de banda. ¿Por qué es importante y en qué afecta al rendimiento del PC? Son preguntas interesantes y que responderemos en este artículo, ya que al mismo tiempo está relacionado con la b.
El ancho de banda de la memoria RAM determina su rendimiento en gran medida
Actualmente el mayor cuello de botella dentro de los componentes de alto rendimiento en un PC viene determinado por la memoria RAM, y en menor medida por los SSD.
Aunque pueda parecer lo contrario, hemos de tener un punto de vista de la jerarquía de un sistema, donde la RAM es la memoria principal del mismo, mientras que un SSD desempeña funciones muy específicas.
La memoria RAM es el dispositivo que más lento avanza actualmente en cuanto a velocidad dentro de la informática general. Las tarjetas gráficas, SSD M.2, memorias caché y buses están en continua mejora, en algunos casos casi exponencial, pero las RAM van muy poco a poco arañando MHz y latencia.
Aunque los usuarios tenemos en mente estos dos últimos parámetros como principales para el posible cálculo del ancho de banda, esto no es realmente así, ya que hay otros factores delimitantes. En cualquier caso, el ancho de banda en RAM es importante puesto que es la cantidad de información (volumen de datos) que la memoria y la CPU (IMC) pueden trabajar al unísono.
Esto es realmente importante de cara a ganar rendimiento con el procesador, ya que un mayor ancho de banda en una plataforma hace que el rendimiento de esta se dispare. Cierto es que todo tiene que tener un equilibrio y límite, pero estos ya vienen definidos por algunos de los parámetros que vamos a ver a continuación y de los cuales ya hemos mencionado.
Cuatro factores determinantes para el cálculo correcto
Tenemos que tener claros cuatro factores para el cálculo del ancho de banda máximo teórico de cada plataforma:
- Número de interfaces -> o lo que es igual, el número de canales máximos de memoria que pueden funcionar al mismo tiempo. Esto lo determina la plataforma en sí misma, donde actualmente en escritorio tenemos dos o cuatro canales disponibles.
- Bus de la memoria -> actualmente y desde hace años es de 64 bits por canal, y sin vistas a cambiar a 128 bits, al menos en la siguiente generación de memorias y procesadores.
- Número de datos por ciclo de reloj -> de aquí llegan los famosos SDR y DDR, donde actualmente seguimos con este último en base al Dual Data Rate.
- La frecuencia de reloj DRAM de la RAM -> el parámetro más interesante, ya que como hablamos en otro artículo específico, el valor que nos ofrecen los fabricantes de forma coloquial es realmente en MT/s, lo que en el caso de la DDR equivale al doble de la frecuencia DRAM.
Hay que tener en cuenta que en el caso de las memorias DDR hay que separar la velocidad anunciada por el fabricante en el marketing, de la velocidad de reloj real del controlador de memoria, que en el caso de las memorias DDR es la mitad de los Gigabits por segundo (Gbps) que se transmiten por pin.
Un módulo DDR4 transmite por bit de ancho de banda el doble de datos, de ahí lo de Dual Data Rate, por ciclo de reloj del controlador de memoria, memclk. Por ejemplo una memoria DDR-3200 tiene una memclk a 1600 MHz y un ancho de banda de 3200 Gbps.
Por lo tanto y a modo de ejemplo práctico, para calcular el ancho de banda máximo teórico de unas memorias RAM en una plataforma en concreto tendremos que multiplicar sus ciclos por segundo por 2 transferencias por ciclo (DDR) por 64 bits de cada módulo por el número de canales disponibles:
Ciclos x 2 (DDR) x 64 x Nº de canales de RAM
En cuanto a los canales de memoria, en el caso de la DDR4 cada canal de memoria es de 64 bits, por lo que el ancho de banda de dos canales DDR4-3200 es el siguiente:
1.600.000.000 ciclos x 2 x 64 x 2 -> 409.600.000.000 bits por segundo o 51,2 GB/s
Realmente, el factor más cambiante es la velocidad de la DRAM, pero curiosamente es el menos determinante, ya que cualquiera de los otros parámetros es mucho más importante en el resultado final, como por ejemplo el número de canales de RAM.