guinea1.png

Compra de la memoria

La memoria es el componente del PC que se encuentra más estandarizado. Los módulos de memoria de la saga DDR se rigen por las especificaciones publicadas desde hace más de 20 años por la JEDEC, una asociación de fabricantes, distribuidores y usuarios de chips. De esta manera, todas las marcas pueden vender los mismos productos, escogiendo cada una un subconjunto para su catálogo comercial.

Parámetros más relevantes

Junto a la CPU y la placa base, la memoria cierra la terna más implicada en el rendimiento global del PC. Pero contrasta con la diversidad de aquéllas en que sólo nos exige conocer tres parámetros: 

  • Capacidad (en GB.): Resulta fundamental dimensionar el espacio que necesita nuestro Sistema Operativo y nuestras aplicaciones para ejecutarse con comodidad, ya que lo que no quepa en memoria física se ubica en el disco a través de páginas de memoria virtual. Aunque los discos SSD han acortado mucho la diferencia en velocidad, el ancho de banda de la memoria aún es 50 veces superior (25 GB/s. para la DDR4 frente a 0.5 GB/s. para el SSD de 2018). Es decir, un PC con poca memoria no limita tanto su funcionalidad como su velocidad, ya que el programa se va a ejecutar quepa o no en la memoria, sólo que mucho más lento cuando tiene que acomodar buena parte de su espacio en SSD.
  • Frecuencia (en MHz): Otro indicador de la velocidad, pero menos importante que el anterior, al menos hasta suscribir los primeros 8 GB. A partir de ahí, podemos plantearnos suscribir más MHz o más GB. en función de cómo coticen uno y otro en el mercado (luego veremos precios). El ancho de banda de un módulo de memoria se calcula de forma inmediata a partir de su frecuencia multiplicando ésta por 8 bytes, ya que desde mediados de los años 90 todos los módulos de memoria (SDRAM, DDR, DDR2, DDR3 y DDR4) devuelven 64 bits de datos. A su vez, el ancho de banda se beneficia por partida doble, gracias a la velocidad (desde los 100 MHz de la SDRAM hasta los más de 3200 MHz que sostiene una DDR4), y a la anchura (módulos dispuestos en doble canal devuelven 128 bits y módulos dispuestos en cuatro canales, 256 bits). Por ejemplo, con una placa base que albergue 4 módulos dispuestos en 4 canales de DDR4 @ 3000 MHz, tenemos un ancho de banda total de: 4 canales x 8 bytes/canal x 3 GHz/módulo = 96 GB/s.
  • Latencias (en ciclos): Permiten conocer el retardo de la memoria para sacar el primer dato a partir de la dirección de entrada. Tras éste, los datos contiguos salen al ritmo marcado por el reloj anterior hasta completar la línea de caché. Conviene recordar aquí que aunque los programas soliciten palabras de memoria desde la CPU, ésta consulta antes sus cachés (tiene hasta 3 niveles progresivamente más grandes y lentos), y sólo cuando el dato no está en ellas se pide a memoria en forma de líneas (ristras de datos consecutivos). Así se amortiza el coste de la latencia a través del gran ancho de banda, anticipando la lectura de los datos siguientes que el programa requerirá con una elevada probabilidad. Tanto un i5 de Intel como un Ryzen 5 de AMD montan líneas de caché de 64 bytes, por lo que necesitan 8 palabras de 64 bits del módulo de memoria DDR4. Esto se traduce en 8 accesos si la memoria dispone los módulos en un solo canal, 4 accesos en 2 canales y 2 accesos en 4 canales. El primer acceso sufre el retardo de las latencias, y los restantes ya salen al ritmo marcado por la frecuencia de reloj. Para calcular tiempos exactos es preciso describir las latencias, que la JEDEC agrupa sabiamente en cuartetos ordenados de mayor a menor importancia. Pasemos a verlo todo mejor con un ejemplo.

Análisis de rendimiento

Sea una memoria DDR4 @ 3000 MHz con latencias 15-16-17-35. Esto otorga 15 ciclos a la latencia de columna o CAS Latency (CL), 16 ciclos a la latencia de fila o RCD (RAS to CAS Delay), 17 ciclos al tiempo de precarga y 35 ciclos al tiempo que permanece activa la fila. Prescindiendo de los dos últimos tiempos por su inapreciable influencia en el rendimiento, tenemos una memoria que se accede como una matriz bidimensional, donde cada fila alberga varios miles de líneas de caché.

Si la siguiente línea de caché solicitada se encuentra en la misma fila que su predecesora, el primer dato de la línea saldrá con latencia CL, de lo contrario lo hará con latencia RCD+CL (retardo de fila seguido de retardo de columna). Los ciclos son de 0.66 ns. para un reloj de 1500 MHz dado que todas las memorias a partir de la DDR (Double Data Rate) sacan un dato en el flanco de subida de la señal de reloj y otro en el de bajada (de ahí que se vendan lícitamente como de 3000 MHz). Por lo tanto, el primer dato en dirección a caché tardaría en salir 15x0.66ns. = 10 ns. si la línea coincide en la misma fila que la última solicitada, y (15+16)x0.66ns = 20.66ns. si no lo hace. CL es más importante que RCD porque el primero siempre entra en juego.

A partir de aquí, los datos que terminan de llenar la línea de caché desde memoria DDR4 saldrán a un ritmo de 0.33ns. (un semiciclo), por lo que con un solo canal necesitamos 7 accesos más (7x0.33ns=2.33ns.), con módulos de memoria dispuestos en placa base de doble canal requeriremos 3 accesos más (3x0.33ns=1ns.) y para 4 canales sólo necesitamos un acceso más (0.33ns.). Puede apreciarse cómo las diferencias de tiempo son mucho mayores jugando con los canales y las frecuencias que con las latencias (que en todo caso, apenas difieren en un par de ciclos para modelos de una misma frecuencia). Por último, comparando módulos de memoria de distinta frecuencia, el que la tenga más alta también será propenso a latencias más altas, y recordemos que la primera es una buena noticia y la segunda una mala (aunque menos mala, arrojando un saldo neto bastante positivo).

Para terminar nuestro análisis, recordemos que los nanosegundos que nos ahorramos comprando módulos dispuestos en canales, con frecuencia más alta o latencia más baja, vienen siempre relativizados por la probabilidad con la que se solicitan líneas de caché a memoria principal. En una jerarquía de memoria de 3 niveles de caché que suman más de 10 MB., esta probabilidad es inferior al 3% para un programa con una mínima localidad de acceso a los datos, lo que relega a la DDR4 a cuotas de uso bastante bajas. Donde existe un mayor riesgo de degradar el rendimiento del PC es ahogando el espacio que necesitan nuestros programas para ejecutarse (cada vez tenemos más y más grandes, comenzando por el volumen que están adquiriendo los Sistemas Operativos), de ahí que la capacidad de memoria sea la gran prioridad. Además, habiendo suscrito una placa base con un par de bancos de memoria siempre podemos dejar el segundo vacío para ampliar la capacidad en un futuro. 


Marcas más representativas

Dado que los productos de todas las marcas proceden de un patrón común publicado por los estándares JEDEC, no vamos a encontrar diferencias de rendimiento entre los módulos de memoria de dos fabricantes. Los factores diferenciadores aquí van a ser la calidad de la producción y el precio para un mismo diseño, incluso dentro de una misma marca. Por ejemplo, Kingston vende módulos KVR (Kingston Value RAM) de gama media y módulos HyperX de gama alta, y dentro de ésta encontramos modelos como Fury, Predator o Savage. ¿Merece la pena pagar un sobreprecio por la calidad? Pequeño, si tenemos en cuenta que estamos ante el componente del PC con menor tasa de averías, y el único al que sus fabricantes se atreven a ofrecer garantía de por vida.

Dentro del espectro de marcas, la más tradicional y antigua dominadora del mercado es Kingston, procedente, como tantos orígenes, de Silicon Valley. En tiempos recientes, la taiwanesa G.Skill pisa firme y ha sido la favorita de nuestros alumnos con su gama RipJaws, que viene ofreciendo una relación calidad/precio fantástica. La tercera en discordia es otra estadounidense, Corsair con sus módulos Vengeance, menos especializada en este sector (también fabrica carcasas, y sobre todo, buenas fuentes de alimentación). Y por último, podemos citar a Crucial, marca de la firma estadounidense Micron Technologies, con sus módulos Ballistic Sport. Tanto Kingston como Crucial son buenas marcas de otra memoria similar en auge, los discos de estado sólido (SSD).

Precios y compra maestra

Llega la hora de poner en práctica todo lo aprendido. Las prioridades son la capacidad y la frecuencia por este orden, ambas condicionadas en sus valores máximos por la elección previa de la CPU y el chipset de la placa base. En un segundo plano, tendríamos latencias y calidad del producto. Ahora toca visitar el mercado para analizar costes, siempre teniendo en cuenta que mamá JEDEC viene cocinando un nuevo estándar cada 5 años, lo que puede dejarnos pronto obsoleta la "inversión" en CPU, placa base y memoria si la suscribimos a final de ciclo.

Podemos comenzar consultando los documentos técnicos de la JEDEC para acotar el espectro de frecuencias y latencias disponibles, pero suele ser más fácil acudir a la web de algún fabricante puntero que filtre y facilite mejor toda esta información. En nuestro caso, elegiremos G.Skill por haber arrasado en las votaciones de nuestros alumnos del taller. A partir de ahí, proponemos el siguiente método para llegar a la compra maestra:

  1. Consultar la gama de módulos RipJaws V favorita de los alumnos para confeccionar una primera tabla de configuraciones candidatas. Partiremos de la frecuencia elegida para el PC del año anterior y concluiremos con las frecuencias máximas toleradas por la CPU y placa base ya seleccionadas.
  2. Calcularemos para todas estas configuraciones el tiempo de servicio de la memoria para una CPU con línea de caché de 64 bytes y una placa base de doble canal, correspondiente a los modelos ya elegidos. Asumiremos que la línea procede de la misma fila que la anterior, que es de largo el caso más probable, lo que descarta la latencia RCD y las otras dos, manteniendo únicamente la primera del cuarteto, CL.
  3. Consultaremos los precios de las configuraciones más competitivas para los dos supuestos más interesantes en capacidad: 2 módulos de 4 GB y 2 módulos de 8 GB.

Entre todos estos candidatos se encuentra la compra maestra, y ya es hora de conocerla.

 

Latencias Frecuencias del módulo de memoria
2133 MHz 2400 MHz 2666 MHz 2800 MHz 3000 MHz 3200 MHz 3466 MHz
15-15-15-35    
15-16-16-35          
16-16-16-36          
16-18-18-38          
17-17-17-39            

 

Ahora presupuestamos las latencias candidatas en cada frecuencia, enfrentando tiempos y precios (notar la correspondencia por columnas entre la tabla anterior y la siguiente).

 

Opciones
candidatas

Frecuencias del módulo de memoria
2133 MHz 2400 MHz 2666 MHz 2800 MHz 3000 MHz 3200 MHz 3466 MHz
Latencia (CL)
Tiempo (T)
Coste (2x4GB)
Coste (2x8GB)
15
15.47 ns.
 70 €
139 €
15
13.75 ns.
 84 €
159 €
15
12.37 ns.
80 €
185 €
15
11.78 ns.
No disp.
169 €
15
11 ns.
114 €
169 €
16
10.94 ns.
No disp.
175 €
16
10.10 ns.
No disp.
179 €
Latencia (CL)
Tiempo (T)
Coste (2x4GB)
Coste (2x8GB)
  17
15.41 ns.
No disp.
159 €
    16
11.66 ns.
No disp.
161 €
   

 

Repasemos cómo se calcula el tiempo T de servicio de la línea de caché tomando como ejemplo el primer caso: 2133MHz y CL15. El reloj es de 1066 MHz, cuyo ciclo es de 0.9380 ns. Y el tiempo entre la salida de dos palabras consecutivas es de un semiciclo, 0.4690 ns. La latencia de 15 ciclos marca la salida del primer dato en 15x0.9380=14.07 ns por el canal 0 de memoria (el segundo dato discurrirá en paralelo por el módulo ubicado en el canal 1). Faltan 6 datos más para llenar la línea de caché, que en doble canal suponen tres semiciclos, 3x0.4690=1.4070 ns. adicionales. En total, T = 15x0.9380 + 3x0.4690 = 15.4770 ns.

La configuración que más convence a priori es la de 16 GB a 3000 MHz y CL15 por 169€, dado que la CPU ya elegida para nuestro PC favorito de 2018, Ryzen 5 2600 de AMD, soporta un máximo de 2933 MHz y 64 GB en sus diálogos con memoria de doble canal. Tomando esta casilla de referencia, la tabla dibuja alternativas que enumeramos de menos a más tentadora:

  1. Frecuencias menores que no abaratan el precio hasta llegar a diferencias excesivas en MHz.
  2. Frecuencias mayores de 3200 y 3466 MHz que no acepta la CPU, aunque esos módulos configurados a 3000 MHz seguramente funcionen con su misma CL15. En ese caso, escoger módulos de 3200 MHz por 6 euros más o de 3466 MHz por 10 euros más puede resultar atractivo si pensamos cambiar el procesador con antelación suficiente a la llegada de la DDR5, que no es el caso.
  3. Ahorrar el 33% del coste para sacrificar el 50% de capacidad tampoco convence, pues sabemos que los GB son lo más importante para el rendimiento de la memoria.
  4. Ahorrar 8 € por un ciclo más de latencia sí resulta tentador, ya que la diferencia en rendimiento es exigua. Por lo tanto, ésta parece la mejor elección, aunque muy cerca de la candidata inicial.

Para saber más: Nuestra máquina del tiempo

Lo que está pasando: Tendencias

Bajo el nombre de perfiles XMP (XMP Profiles), Intel ha publicado a partir del estándar DDR3 una serie de recomendaciones para los fabricantes de memoria que pretenden orientarles sobre las combinaciones de frecuencias y latencias más favorables a sus procesadores. La idea ha tenido continuidad y cierto calado con la DDR4, pero no se trata de competir con la JEDEC, sino de acotar las configuraciones que mejor funcionan para cada perfil de usuario que adquiera uno de sus modelos de CPU. No olvidemos que la CPU se ha apropiado del controlador de memoria, y por lo tanto, aunque los módulos de memoria DDR3 y DDR4 se sigan montando en zócalos de la placa base, ya no es ésta la encargada de sacar su máximo rendimiento. 

Los principales fabricantes de módulos de memoria han apadrinado la idea y ya es habitual encontrar registradas dichas configuraciones en el pequeño chip SPD de metadatos que acompaña a los chips de memoria del módulo. Esto significa que cualquier PC al arrancar podrá seleccionar uno de estos perfiles a través del firmware (BIOS), y utilizar la memoria bajo esta combinación de frecuencia y latencia hasta nueva orden. De forma similar, utilidades que monitorizan el hardware (como CPU-Z), estudian su rendimiento o parametrizan su aceleración (overclock) pueden hacer uso de estos perfiles para optimizar el rendimiento de los módulos, seleccionando la configuración más adecuada a los programas predilectos del usuario.

En esta línea, Intel ofrece la herramienta Extreme Tuning Utility (XTU), que analiza las aplicaciones software y asesora al usuario sobre el mejor perfil XMP. Por ejemplo, jugar a un video-juego se beneficia más de una baja latencia, mientras que navegar por Internet y descargar archivos necesita más ancho de banda, que a su vez exige alta frecuencia. Pero al presentar los parámetros de rendimiento de la memoria ya subrayamos que a más frecuencia (bueno), más latencia (malo). Por lo tanto, los jugones elegirán bajar latencia a su módulo de memoria y sacrificar frecuencia, y los navegantes, subirán frecuencia y penalizarán latencia. Al final, todos felices. Se trata de decirle al PC quién eres, normalmente a través del Setup en BIOS durante el arranque, y que el perfil XMP ya sepa qué frecuencia y latencia te viene mejor y te haga el traje a medida. Es decir, tenemos un coche que si arranca rápido, corre menos, y si corre más, arranca más lento. En ciudad, como no vamos a correr, nos abonamos al arranque ágil. En carretera, como no vamos a arrancar, velocidad punta. Esa velocidad a la que Intel llama de forma elocuente "overclock de memoria".


Lo que ya pasó: Evolución

Para comprender por qué overclock es un término desacertado para la memoria, hemos buscado un ejemplo de tiempo atrás que nos permita comprender la evolución del chip de memoria, y sobre todo, hacia dónde se dirige. En Kingston encontramos un módulo DDR2 de 2007 que implementó 4 perfiles JEDEC, pudiendo bajar su frecuencia hasta tres peldaños para quedarse en la mitad jugando con los ciclos de latencia:

  • DDR2 a 800 MHz (2x400) y CL6. 6 ciclos de 400 MHz son 6x2.5ns = 15 ns.
  • DDR2 a 666 MHz (2x333) y CL5. 5 ciclos de 333 MHz son 5x3ns = 15 ns.
  • DDR2 a 533 MHz (2x266) y CL4. 4 ciclos de 266 MHz son 4x3.75ns = 15 ns.
  • DDR2 a 400 MHz (2x200) y CL3. 3 ciclos de 200 MHz son 3x5ns = 15 ns.

El retardo CL para la columna de la matriz de celdas de memoria es siempre de 15 ns, y si hacemos el análisis para la latencia de fila, RCD, los números coinciden. Por eso el mismo chip de memoria trabaja de forma estable a cuatro frecuencias distintas. ¿Se ha acelerado entonces el chip al pasar de 400 a 800 MHz? No. ¿Ha mejorado su rendimiento? Sí.

El chip de memoria DRAM no admite aceleración porque las celdas de memoria no se componen de los transistores que encontramos en los chips CPU. Cada celda DRAM es un condensador de unos pocos fempto-Faradios (10-15 Faradios), siendo el signo de la carga de este condensador lo que determina si guardamos el valor 0 ó 1. Los circuitos encargados de detectar (o escribir) esta carga apenas han agilizado su operativa en los más de 50 años que llevan ya con nosotros, así que no pidamos peras al olmo, que no las da. En su lugar, tendremos que mejorar la arquitectura del chip. El diseño de la CPU lo ha tenido fácil para progresar reduciendo un 30% la anchura de puerta del transistor cada 2 años entre 1971 y 2017. La microelectrónica de la memoria es más hostil porque esa carga infinitesimal es lenta principalmente por ser minúscula. Si la agrandamos, fabricaremos Mbytes en lugar de Gbytes, y eso ya lo hacen mejor las cachés con celdas fabricadas con transistores (SRAM, que sí pueden acelerarse).

La segunda pregunta que planteamos, la mejora del rendimiento, tiene una respuesta más fácil: Si una celda responde en 15 ns., las demás también. Por lo tanto, el truco es activar muchas celdas mientras transcurre el tiempo necesario para la salida del primer dato con latencias RCD+CL. Así, cuando necesitemos los demás datos, tenemos casi todo el proceso completado y entenderemos que la ristra de palabras que completa la línea de caché pueda salir con latencias tan bajas como un semiciclo de reloj. Lo primero que se hace para agilizar estos datos es amplificar sus cargas, únicamente para un patrimonio de celdas suficientemente cercano  al primer dato solicitado: Todos los que coinciden en su misma fila, que para un chip actual de 16 Gbits (234 celdas), tiene el tamaño de su raiz cuadrada, 128 Kbits. En esa operativa se consume la primera latencia del chip, RCD. La segunda latencia, CL, parte de los amplificadores de señal y termina su recorrido en el bus de datos. Colocando una SRAM en la antesala del mismo que almacene un máximo de 8 palabras de memoria (sólo 4 si tuviéramos doble canal y 2 si tuviéramos cuádruple), conseguimos finalmente que cada chip del módulo de memoria responda un dato al bus por cada semiciclo de reloj hasta completar la línea de caché.

Si lo hemos entendido todo, ya sabremos por qué una DDR2 de 400 MHz y RCD=CL=3 en 2007 responde en 15+15=30 ns y la DDR4 de 3000 MHz con RCD=CL=16 que acabamos de comprar en 2018 lo hace en (16+16)x0.66ns = 21.33 ns. Ha transcurrido más de una década y la celda apenas ha progresado un 29% en su tiempo de respuesta al bus, pero gracias a la arquitectura del chip hemos conseguido que la frecuencia lo haga en un espectacular 750%, y el ancho de banda, en un 1500% o un 3000% si desde entonces hemos adquirido una placa base de doble o cuádruple canal.


Lo que está por venir: Perspectivas

2018 ha consolidado plenamente la memoria DDR4. Nadie ha votado ya por la DDR3, que por otro lado ha sido la de mayor longevidad, monopolizando más de la mitad de la década. Históricamente, a una generación larga le ha seguido otra corta, y podría volver a suceder de nuevo porque la JEDEC ya ha avisado de que está ultimando la DDR5 con tres claros objetivos: Doblar la capacidad del chip (densidad de integración), doblar el ancho de banda del módulo y mejorar la eficiencia del canal. La DDR4 terminó de especificarse en 2012, pero no tuvo ventas significativas hasta 2016. De ocurrir lo mismo con la DDR5, situaríamos el cambio de ciclo en 2023, pero todo indica que va a ser antes. Primero porque lo habitual ha sido que el mercado apadrine el producto un par de años después de su especificación, y segundo, porque técnicamente la DDR4 es producto viejo, aunque la JEDEC, preocupada por ello, la rejuveneciera un poco a mediados de 2017 renovando sus propiedades. Sea como fuere, no tenga prisa por saltar a la DDR5: Sus primeras frecuencias siempre tienen más latencia que su predecesora, ya que la nueva tecnología requiere de infraestructura adicional para luego soportar las frecuencias a las que no llega su hermana, y en microelectrónica es preceptivo cumplir con el "cuanto más grande, más lento".

Al comenzar nuestro estudio de la memoria dijimos que era el componente del PC con menos parámetros a analizar y con menor propensión a averías. También es el que lo pone más fácil para predecir su futuro, porque la memoria de vídeo (los chips que se montan en las tarjetas gráficas), han actuado siempre de avanzadilla. Cuando los módulos del PC montaban chips DDR, la tarjeta gráfica llevaba chips GDDR3, y cuando los módulos llegaron a DDR3, los chips de vídeo ya estaban en GDDR5. ¿Qué ha pasado más recientemente? En torno a 2010 inició su andadura una nueva memoria que dispone sus celdas en una estructura 3D. Las matrices bidimensionales actuales, accesibles por fila y columna como hemos visto, se apilan ahora en capas. Hay definidos estándares para 4 u 8 capas, pero por ahora, sólo se fabrican chips de 4 capas, siendo la refrigeración de las capas internas el gran limitador aquí. La gran ventaja es que gracias a unos carriles ultrarrápidos que perforan estas capas de silicio para interconectarlas (TSVs o Through Silicon Vias), la latencia de esta tercera dimensión es de apenas 10 picosegundos (100 GHz si lo traducimos a frecuencia), y por tanto, por primera vez en 50 años hay una fórmula agresiva para reducir la latencia de la celda.

La memoria 3D ha tenido dos consorcios de especificación: HMC (Hybrid Memory Cube) y HBM (High Bandwidth Memory). Intel está en el primero, y AMD y Nvidia en el segundo, que será el que finalmente veremos en la memoria del PC porque ha sido el elegido por la JEDEC. El principal problema técnico que hay ahora para su implantación es que el procesador y la memoria se fabrican en un único encapsulado, por lo que ésta deja de ser modular. Intel no ha montado aún CPUs así, y AMD tampoco. Pero como ya avisamos que las GPUs van por delante, AMD lanzó su primera GPU con memoria HBM en el verano de 2016. Se llamó Fiji y tenía un ancho de banda de 512 GB/s. Nvidia esperó a la segunda generación, HBM2, para montarla en algunos modelos de gama alta de su generación Pascal, alcanzando 720 GB/s. Sobre el papel, vemos a AMD más capaz de desarrollar CPUs con esta memoria que a Intel, puesto que HMC se orienta a una gama de productos más cara (no son perfiles de informática doméstica, sino más de servidores y HPC), y HBM le sirve a AMD para dos productos: Sus CPUs frente a Intel y sus GPUs frente a Nvidia.