¿Qué es la caché de la CPU?

Las CPU modernas funcionan increíblemente rápido; pueden superar significativamente la RAM del sistema. Este desequilibrio de velocidad entre la CPU y la memoria haría que su procesador a menudo permaneciera inactivo, esperando que se le envíen datos para que pueda continuar ejecutando un proceso. Para evitar que esto suceda, permitiendo que las CPU sigan funcionando cada vez más rápido, se utiliza una memoria caché de CPU.

¿Cómo la caché de una CPU acelera una CPU?

El caché de la CPU está diseñado para ser lo más rápido posible y luego almacenar en caché los datos que solicita la CPU. La caché de la CPU tiene su velocidad optimizada de tres formas: latencia, ancho de banda y proximidad. La memoria caché de la CPU funciona con latencias muy bajas, lo que minimiza la cantidad de tiempo que tarda en devolverse un resultado. Por ejemplo, Intel i9-9900k tiene una latencia de caché de 0.8, 2.4 y 11.1 nanosegundos para la caché L1, L2 y L3 respectivamente. En comparación, la latencia de la RAM moderna de alta velocidad es del orden de 14 nanosegundos.

Sugerencia: Los niveles de caché se explicarán con más detalle más adelante, pero simplemente, las capas inferiores de caché son más rápidas pero más caras, por lo que tienen menores capacidades. Un nanosegundo es una mil millonésima de segundo, por lo que una latencia de 0,8 segundos significa que se tarda menos de una mil millonésima de segundo en devolver un resultado.

En términos de ancho de banda, la memoria caché de la CPU ofrece importantes mejoras de rendimiento en comparación con el almacenamiento y la RAM tradicionales. Las velocidades de lectura de la caché L1 y L3 pueden alcanzar un máximo de 2,3 TB / sy 370 GB / s respectivamente, mientras que el ancho de banda de la RAM suele rondar los 40 GB / s. Este mayor ancho de banda significa que la memoria caché de la CPU puede transferir datos a la CPU mucho más rápido que la RAM.

Para lograr las máximas velocidades posibles, la memoria caché de la CPU está integrada en el silicio de la CPU. Esto minimiza la distancia que deben recorrer las señales eléctricas y, por lo tanto, mantiene la latencia lo más baja posible. Por ejemplo, cuando la caché L3 se trasladó por primera vez de la placa base al chip de la CPU, el procesador de la época (Pentium 4 EE) pudo obtener una mejora del rendimiento del 10-20%.

Arquitectura de caché de CPU

Las CPU modernas generalmente usan tres capas de caché de CPU etiquetadas como L1-3, y las cachés de números más bajos están más cerca de los núcleos de la CPU, más rápidas y más caras. Cada núcleo de CPU individual en una CPU de varios núcleos tiene su propia caché L1. Normalmente se divide en dos porciones, L1I y L1D. El L1I se usa para almacenar en caché instrucciones para la CPU, mientras que L1D se usa para almacenar en caché los datos en los que se ejecutarán esas instrucciones.

Cada núcleo de CPU normalmente también tiene su propia caché L2 en una CPU moderna. La caché L2 es más grande y más lenta que la caché L1 y se usa principalmente para almacenar datos que de otra manera no cabrían en la caché L2. Al tener una caché L2 dedicada por núcleo, se evita la contención de la caché. La contención de caché es donde diferentes núcleos luchan por reclamar espacio de caché para sus propias cargas de trabajo, lo que puede llevar a que se borren datos importantes de la caché.

La caché L3 generalmente se comparte entre todos los núcleos de CPU del procesador. Nuevamente, la caché L3 es más lenta que la caché L2 pero es más barata y más grande. Al proporcionar una caché compartida, es posible reducir la cantidad de datos que se duplicarían en niveles más bajos de caché por núcleo.

Consejo: como ejemplo, en tamaños de caché, el i9-9900K de Intel tiene una caché L1 de 64 KB y una L2 de 256 KB por núcleo (para un total de 512 KB L1 y 2 MB L2), también tiene una caché L3 compartida de 16 MB.

¿Cómo se usa la caché de la CPU?

Todos los niveles de la memoria caché de la CPU se utilizan para acelerar el rendimiento del procesador almacenando en la memoria caché los datos de la RAM. Cuando una CPU solicita datos, generalmente busca primero en sus capas de caché en un intento de obtener los datos lo más rápido posible. Si los datos se encuentran en un acierto de caché, entonces la CPU puede continuar su procesamiento. Si los datos no están en la caché, en lo que se llama una falta de caché, entonces la CPU tiene que verificar la RAM y luego el disco duro si los datos tampoco están allí. Las capas más rápidas siempre se comprueban primero para obtener el máximo rendimiento.

Para ayudar a la CPU a tener los datos que necesita en la caché cuando los necesita, la caché intenta adelantarse a los datos que la CPU podría necesitar a continuación. Por ejemplo, si la CPU ha solicitado algunos datos para una imagen, la caché puede intentar almacenar en caché de forma preventiva más datos de la imagen para que se puedan enviar a la CPU lo más rápido posible.