¿Qué es el ancho de banda de la memoria?
El ancho de banda de una memoria no es más que la capacidad máxima de transferencia de datos que la memoria admite para realizar los accesos (lectura y escritura). Se puede medir en bits por segundo, o cualquiera de sus múltiplos, como MB/s, GB/s, etc., e incluso también en transferencias por segundo, como MT/s, GT/s…
No hay que confundir el ancho de banda con otros conceptos, ya que no son lo mismo:
- Velocidad: cuando se habla de velocidad, nos estamos refiriendo a la frecuencia a la que trabaja la memoria en cuestión. Esta interfiere en la velocidad de transferencia de datos, pero no es lo mismo que el ancho de banda.
- Latencia: se refiere a la demora o la cantidad de ciclos de reloj que se tarda en acceder a la memoria. Es decir, no tiene nada que ver con la cantidad de información enviada por cada segundo, que es el ancho de banda, sino en el tiempo que se tardaría en acceder (leer o escribir) en la memoria, independientemente del ancho de banda del bus.
Por ejemplo, podemos tener una memoria SDRAM que trabaje a una frecuencia de reloj de 100 Mhz y cuya velocidad de transferencia sea de 100 MT/s, mientras que el ancho de banda es de 800 MB/s. O una DDR1 que trabaje a la misma frecuencia, pero significará que al ser Dual Data Rate, se tendrá una velocidad de transferencia de 200 MT/s, elevando así el ancho de banda a 1600 MB/s.
Cómo se calcula
El ancho de banda máximo teórico de una memoria RAM, por ejemplo, se puede calcular con la siguiente fórmula:
- Ancho de banda = (Frecuencia de reloj · 2) · Bits de ancho del bus · Canales
Se multiplica por dos al ser DDR, si no es DDR no se tiene que multiplicar por dos. Por ejemplo, imagina que tienes una DDR4-2933. En este caso, sería para una placa base (CPU-RAM):
- Ancho de banda = (1466.67 Mhz x 2) · 8 · 4 = 93.866,88 MB/s = 94 GB/s
Es decir, esta memoria podría tener 2933 MT/s, una frecuencia de reloj de 1466.67 Mhz real, y la latencia en este caso podría ser de 21, por poner un ejemplo.
- Historia de los problemas sobre el ancho de banda de la memoria
- Uno de los avances que se están dando recae sobre los niveles de memoria caché, cada vez más rápidos y amplios en capacidad. Además, se van agregando niveles, como algunos que han llegado más tarde, como la L0 o la L3, etc. No todos esos niveles son igual de rápidos, y el rendimiento dependerá en gran medida de la tasa de aciertos o fallos que se den en esa caché, pero es lo que tenemos en la actualidad sin hacer cambios mayores que también podrían implicar cambios en el software, arquitecturas, etc.
- También se están realizando diseños MCM o chiplets donde se colocan los chips de memoria cerca o en el mismo empaquetado de los chips de cómputo para acelerar las interconexiones entre ellos mediante un interposer.
- Por otro lado, también se están comenzando a desarrollar empaquetados 3D o 3D packaging, para poder apilar los chips de memoria sobre los de cómputo, como es el caso de AMD 3D V-Cache, que pone un chip de memoria caché sobre el procesador.
- Las nuevas generaciones de HBM también pueden resolver algunos de estos problemas. De hecho, en algunas unidades de alto rendimiento ya se están integrando los chips HBM cerca de la unidad de procesamiento como una memoria o buffer adicional entre la caché y la RAM.
- Incluso se han propuesto soluciones algo más exóticas para un futuro, como las interconexiones ópticas para poder conectar la memoria y los procesadores de forma que en vez de impulsos eléctricos (más lentos), se usen impulsos de luz viajando a través de fibra óptica. Es decir, algo así como la fibra óptica de Internet, pero a nivel de PCBs y chips.
- También existe una preocupación por el número de pines, que también pueden transformarse en un cuello de botella en el caso de las comunicaciones. E incluso de los interporsers que pueden suponer también retrasos entre un chip y otro.