Los procesadores han evolucionado en los últimos años. Los fabricantes están llegando al límite de la miniaturización extrema y la ley de Moore dejó de ser válida hace tiempo. El valor de la CIP (instrucciones por ciclo de reloj) es uno de los campos en los que se ha registrado el progreso más evidente. Tanto es así que el ahora ex-Intel Jim Keller se refirió a la posibilidad de "resucitar" la ley de Moore relacionando el rendimiento del procesador al número de instrucciones por ciclo de reloj.
Con el uso de arquitecturas cada vez más avanzadas, arquitectura litográfica, los principales fabricantes están examinando una miniaturización aún mayor, rozando casi lo imposible. Con la tecnología GAAFET, por ejemplo, TSMC planea llevar sus procesos litográficos más allá de 2 nm, algo impensable hasta hace poco.
Cuando se trata de procesadores, no son solo las frecuencias de reloj, los IPM, los tamaños y el número de transistores lo que importan. La memoria caché del procesador es uno de los factores más importantes.
Simplificando esto, la memoria caché del procesador es un tipo muy rápido de memoria que se integra directamente en y cerca de la CPU, a diferencia de la RAM, por ejemplo.
En comparación con los módulos RAM (DRAM, RAM dinámica) que todos conocemos, la memoria caché es un ejemplo de SRAM (STATIC RAM estática): no necesita ser constantemente actualizada.
Cada programa consta de un conjunto de instrucciones que fluyen desde el almacenamiento principal a la CPU durante la ejecución. Los datos se cargan primero en la memoria RAM y luego se envían a la CPU que procesa un número gigantesco de instrucciones cada segundo.
Para que los cuellos de botella no crezcan, la CPU debe poder acceder rápidamente a la información almacenada en la memoria. Y ahí es donde entra en juego la caché.
El controlador de memoria se encarga de transferir datos útiles entre la RAM y la memoria caché. Dependiendo de la CPU instalada, ese controlador puede residir en el llamado Puente Norte de la placa base o dentro de la propia CPU.
A continuación, los datos fluirán entre CPU y varios niveles de caché según una jerarquía bien definida.
La memoria caché L1 es la es rápida del sistema. En términos de prioridad de acceso, la memoria caché L1 conserva los datos que es probable que la CPU necesite para completar una determinada tarea.
Este nivel de caché normalmente tiene dimensiones de hasta 256 KB, aunque las CPU particularmente potentes pueden llegar hasta 1 MB. Algunos sistemas de servidor (por ejemplo, basados en procesadores Intel Xeon) pueden tener hasta 2 MB de caché L1.
La caché L1 se divide generalmente en dos partes: caché de instrucciones y caché de datos. El primero controla la información sobre lo que la CPU debe hacer mientras que el segundo administra los datos utilizados para procesar esas operaciones.
La memoria caché L2 es más lenta que la L1 pero tiene un tamaño mayor, entre 256 KB y 8 MB, aunque las CPU más recientes vayan aún más lejos. En las CPU más recientes, la memoria caché L1 y L2 está presente en núcleos individuales con cada uno de ellos teniendo su propia memoria caché.
La caché L3 es la más generosa pero también la más lenta de las tres: su tamaño suele oscilar entre 4 y 50 MB, y en las CPU modernas la memoria caché de nivel 3 consiste en un espacio dedicado en el troquel ocupando una buena parte en el mismo.
El flujo de datos procede de la RAM a la memoria caché L3 y después se mueve a L2 y L1. Cuando la CPU está buscando los datos necesarios para realizar una operación, primero se comprueba el contenido de la memoria caché L1. Si los datos buscados se encuentran realmente tiene una caché de aciertos (condición más favorable): la ejecución continúa rápidamente sin pasar a los otros niveles y posiblemente a la RAM. De lo contrario, la CPU comprueba si hay datos en las memorias caché L2 y L3. En caso de que no se encuentre lo que busca, se produce una memoria caché de errores que obliga al uso de RAM.
El tiempo que se tarda en acceder a los datos en la memoria se denomina latencia.
La caché L1 ofrece el valor más bajo, por supuesto, en términos de latencia que crece significativamente cuando se produce una memoria caché de errores. Esto se debe a que el procesador se ve obligado a recuperar los datos que necesita de la memoria principal del sistema.
En el pasado, los procesadores utilizaban cachés L2 y L3 fuera de la CPU, una opción de diseño que tenía efectos negativos obvios en términos de latencia. Los avances en la litografía han hecho posible insertar miles de millones de transistores en un espacio más pequeño que antes. Como resultado, se ha dejado más espacio para la memoria caché que le permite tener las diversas capas mucho más cerca del núcleo de lo que era anteriormente el caso.
El diseño de caché siempre está evolucionando, especialmente a medida que la memoria se vuelve más barata, más rápida y más densa. De hecho, se está haciendo mucho para reducir los cuellos de botella, pero los sistemas actuales siguen teniendo: reducir la latencia de memoria es uno de los aspectos más importantes en los que nos estamos centrando. Intel, por su parte, ha propuesto la tecnología Optane que se puede utilizar como una especie de caché híbrida fuera de la CPU.