El artículo explica por qué un procesador moderno puede ejecutar miles de millones de operaciones por segundo y, aun así, un programa que recorre un array de 1 GB puede tardar 400 milisegundos. La causa no es la CPU, sino la diferencia creciente entre la velocidad del procesador y la capacidad de la memoria DRAM para suministrarle datos, un fenómeno bautizado en los años noventa como Memory Wall.
Desde los años ochenta, los procesadores han mejorado mucho más deprisa que la DRAM: más transistores, mayores frecuencias y microarquitecturas más eficientes, mientras que la memoria ganaba sobre todo en capacidad, no en latencia. La consecuencia es que la CPU pasa cada vez más tiempo ociosa, esperando. En los peores casos actuales, la diferencia entre lo rápido que es el cómputo y lo lento que llega el dato ronda los 50x a 100x.
El texto describe después cómo funciona físicamente una DRAM: cada bit se guarda como carga en un condensador dentro de una matriz de filas y columnas, y leer un solo byte exige activar toda una fila, llevarla a los sense amplifiers y seleccionar después la columna, con un coste fijo de precharge entre filas. Los accesos aleatorios disparan ese coste y bloquean a la CPU.
La solución de hardware son las cachés L1, L2 y L3, memorias pequeñas y muy rápidas situadas entre el procesador y la DRAM que guardan copias de los datos recién usados. El autor, basándose en experimentos con la herramienta Aletheia, muestra cómo los patrones de acceso y el tamaño del array determinan cuándo se acierta en caché y cuándo se paga la penalización de ir a DRAM, un悬崖 de rendimiento que parece un bug pero es física pura.
