Memoria caché: ¿Qué es y qué diferencias hay entre los tipos L1, L2, L3 y L4?
Entre los elementos más importantes que dan vida a un procesador se encuentra la memoria caché, un componente
que ha vivido una importante evolución durante las últimas décadas pero que todavía hoy sigue siendo un gran
desconocido.
Sabemos que muchos de nuestros lectores tienen claro el papel que juegan en un procesador los núcleos, el IPC y el
proceso de fabricación, pero la memoria caché sigue generando algunas dudas, y por ello hemos decidido hacer este
artículo especial, en el que os vamos a contar todo lo que debéis saber sobre la memoria caché en general, y
también sobre todos los tipos que existen.
Actualmente podemos diferenciar la memoria caché en L1, L2 y L3, nomenclaturas con las que se identifican los
distintos niveles en los que se encuadran. También se utiliza, aunque con poca frecuencia, un tipo de memoria caché
conocida como L4, sobre todo en procesadores que vienen con GPUs integradas.
Sobre todo esto vamos a profundizar en las siguientes líneas.
Memoria caché: ¿qué es y cómo funciona?
Imagen de un procesador Haswell-E de ocho núcleos. Como vemos todos los nucleos tienen acceso a la caché L3.
La memoria caché es, como su propio nombre indica, un tipo de memoria específica. En un ordenador existen
diferentes tipos de memoria que se agrupan en dos grandes variantes: la memoria volátil y la memoria no volátil,
siendo la primera aquella que pierde los datos cuando apagamos el equipo (memoria RAM, por ejemplo) y la
segunda aquella que los mantiene (un disco duro o un SSD, por ejemplo).
Pues bien, la memoria caché es un tipo de memoria específica que está preparada para servir de apoyo al
procesador, y que es capaz de trabajar a velocidades muy elevadas. Esta memoria se divide en diferentes niveles
como dijimos, pero su función base es la misma: apoyar a la CPU para mejorar su rendimiento.
Para ello actúa como un sistema de almacenamiento de instrucciones y de datos capaz de comunicarse con el
procesador a gran velocidad. Normalmente en la memoria caché se almacenan datos e instrucciones que el
procesador va a necesitar para completar diferentes tareas a corto plazo. Con ello se evitan dos cosas muy
importantes que podrían reducir el rendimiento:
1. Que el procesador tenga que volver a completar ciclos de trabajo para conseguir los datos o instrucciones
que necesita.
2. Que tenga que acceder a la memoria RAM (más lenta que la caché) para obtener dichos datos o
instrucciones.
La velocidad de la memoria caché importa, y mucho, pero también la capacidad de la misma, aunque sobre este
tema hablaremos en el siguiente punto. Es importante recordar que en las generaciones más antiguas de
procesadores la memoria caché L2 y L3 estuvo integrada durante mucho tiempo en la placa base, y no en el
encapsulado del procesador. Esto suponía que la información tenía que recorrer una distancia importante en cada
acceso lo que acababa teniendo un impacto considerable en el rendimiento.
Actualmente todos los tipos de memoria caché se encuentran integrados en el encapsulado del procesador, con la
única excepción de la L4 que, por cuestiones de tamaño y de espacio, suele ir en un encapsulado propio ubicado
justo a continuación del encapsulado principal. Esto tiene consecuencias importantes, como veremos a continuación.
Memoria caché: tipos y jerarquía
Imagen de un procesador Intel Nehalem. Como vemos los cuatro núcleos tienen acceso a la caché L3. Los círculos
grandes identifican la caché L2, y los pequeños la caché L1.
Ya hemos visto qué es y qué trabajo realiza la memoria caché. En general es un apoyo importante para el procesador
que, como dijimos, se divide en un total de tres niveles generales al que podemos sumar un cuarto que no resulta
nada común y que juega un papel particular, como vamos a explicar más adelante.
La diferenciación entre memoria caché L1, L2 y L3 obedece a un orden de jerarquía establecido por cercanía al
procesador, velocidad y capacidad. Utilizaremos dos ejemplos extremos para que veáis las grandes diferencias que
pueden haber en términos de cantidad en función de cada CPU, aunque la función de la memoria caché será la
misma en todos los casos.
Caché L1: es el nivel más básico, la más cercana al procesador y la más rápida. También es la que menos
capacidad tiene, por ejemplo un procesador de dos núcleos como el Pentium G4560 tiene 64 KB en total (32
KB por núcleo), aunque los modelos más potentes (serie Xeon y Epyc) pueden alcanzar los 3 MB sin
problema.
Caché L2: es un nivel intermedio que presenta un buen equilibrio entre capacidad, cercanía y velocidad.
Siguiendo el ejemplo anterior el Pentium G4560 tiene 512 KB (256 KB por núcleo) de caché L2, pero un
Threadripper 2990WX llega a los 16 MB en total (512 KB por núcleo).
Caché L3: posiciona en un nivel inferior a la anterior tanto en cercanía como en velocidad, pero tiene una
capacidad mucho mayor. El Penitum G4560 tiene 3 MB de caché L3 compartida en sus dos núcleos, mientras
que el Threadripper 2990WX viene con un total de 64 MB (16 MB compartidos por cada bloque de ocho
núcleos).
Caché L4: es un tipo de memoria caché poco habitual que se utiliza normalmente como apoyo para mejorar
el rendimiento de GPUs integradas. Por ejemplo, el Core i5 5775C venía con 6 MB de caché L3 y 128 MB de
eDRAM como caché L4, que se utilizaba como buffer para la gráfica Intel Iris Pro 6200 que integraba. Así se
mejoraba el ancho de banda y se reducía el impacto de tener que recurrir a la RAM como memoria gráfica.
Cuando un procesador busca instrucciones y datos que necesita primero recurre a la memoria caché L1, si no
encuentra nada recurre a la caché L2 y finalmente a la caché L3. En caso de que ninguna de las cachés contenga lo
que está buscando no tiene más opción que recurrir a la memoria RAM, y si tampoco está en ella tiene que realizar
un ciclo de trabajo completo, con todo lo que ello supone a nivel de rendimiento.
Bien, para acceder a cada nivel de memoria caché es necesario un tiempo determinado, un retraso que se conoce
como latencia, y que representa ese retardo que tiene que asumir el sistema hasta que el procesador encuentre lo
que necesita para trabajar. La latencia de acceso a la caché L1 es la más baja, y se incrementa de forma considerable
en los niveles L2 y L3, hasta tocar techo en el caso de tener que acceder a la memoria RAM.
Esta explicación nos ayuda a entender también la referencia que hemos hecho anteriormente a los diseños que
integraban la caché L2 y L3 en la placa base. La distancia entre componentes aumentaba enormemente la latencia y
reducía en gran medida el rendimiento, algo que se pudo superar al montar los tres tipos principales de caché en el
encapsulado de la CPU.
Notas finales
Imagen de un procesador Ryzen. Como vemos la caché L3 se comparte en bloques de cuatro núcleos.
A día de hoy la caché ha dejado de ser un problema, ya que incluso los procesadores más básicos vienen equipados
con memoria caché L3, algo que, sin embargo, no ocurría hace unos años.
No debemos obsesionarnos con este tema, aunque es cierto que el impacto de la memoria caché en el rendimiento
general del sistema no tiene porqué ser uniforme, ya que depende de otros aspectos como la arquitectura del
procesador y su potencia bruta, y también, de forma indirecta, de la velocidad de trabajo y la latencia de la memoria
RAM.
Por ejemplo, la arquitectura de núcleo monolítico que usan los procesadores Intel permite trabajar con memorias
caché L3 más rápidas que tienen una latencia inferior, mientras que en el caso de los procesadores AMD Ryzen
ocurre todo lo contrario, debido a la arquitectura MCM que separa la caché L3 en bloques de núcleos, conocidos
como unidades CCX en Zen y Zen+ y chiplets (dos unidades CCX) en Zen 2.
Al contar con una memoria RAM más rápida es posible reducir también el impacto que tiene la ausencia de datos
necesarios en la caché, que como vimos obliga al procesador a buscar en la RAM. En futuros diseños a nivel de CPU
se ha planteado la posibilidad de integrar memoria caché L4 como apoyo total a la CPU, y también se bajara la
integración de memoria RAM mediante el apilado 3D.
Por otro lado existen distintas clases de memoria caché:
Caché de disco: almacena la información que has leído recientemente en tu disco duro, exactamente en la
memoria RAM del ordenador, ayuda a acceder a los archivos comunes y carpetas en tu disco duro mucho
más rápido.
Caché de procesador: encargada de almacenar pequeñas cantidades de información justo al lado del
procesador. Esto ayuda a que el procesamiento de las instrucciones comunes sea mucho más eficiente.
Caché web: memoria que almacena archivos del sitio web, con el objetivo de mostrarlos de una forma más
rápida, lo que se traduce en que el tiempo de espera para cargar la información de una página será menor
para el usuario.
Caché
Término conocido como memoria de acceso rápido o caché de RAM. Se trata de una memoria que almacena
temporalmente los datos procesados recientemente con el objetivo de mostrarlos rápidamente una vez se vuelven a
solicitar.
¿Qué es la memoria caché?
En informática, la memoria caché se conoce como el acceso rápido a uno de los recursos con los que cuenta una
Unidad Central de Procesamiento (CPU) para almacenar durante un periodo de tiempo los datos recientemente
procesados en una memoria auxiliar, con el fin de poder acceder a ellos directamente cuando se vuelven a solicitar.
La velocidad de la memoria caché es la principal característica que le diferencia del resto de memorias.
Actúa siendo un espacio de almacenamiento temporal entre la memoria y el disco duro, permitiendo un manejo más
eficiente de los datos. La finalidad de la memoria caché es almacenar la información utilizada recientemente en un
lugar al que se pueda acceder rápidamente, es decir en el caso de estar navegando por internet, se almacenarían las
páginas, las imágenes y las Urls de los sitios web visitados para que cuando se soliciten, volver a mostrarlos con
mayor rapidez.
La memoria caché se divide jerárquicamente y se designa por niveles, los cuales determinan la posición que ocupa
en el flujo de datos. Un caché (L0) de nivel 0, tiene una capacidad de almacenamiento reducida a unos pocos bytes y
aíslan los datos al principio de la unidad central. Las del nivel 1 y 2, (L1 y L2) son internas, están integrados en la
arquitectura de los microprocesadores. Y la del nivel 3 (L3) se trata de una memoria separada en la placa clave.