Saltar al contenido
Think Tecno

¿Qué es la caché de la CPU?

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

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

La caché de la CPU está diseñada para ser lo más rápida posible y, por lo tanto, almacenar en caché los datos requeridos por la CPU. La velocidad del caché de la CPU se optimiza de tres formas: latencia, ancho de banda y proximidad. La memoria caché de la CPU funciona con latencias muy bajas, lo que minimiza el tiempo que se tarda en devolver 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 los niveles de caché más bajos son simplemente más rápidos pero son más caros, por lo que tienen capacidades más bajas. 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 caché de la CPU puede transferir datos a la CPU mucho más rápido que la RAM.

Para lograr la velocidad más rápida posible, la caché de la CPU se integra de manera efectiva en el silicio de la CPU. Esto minimiza la distancia que tiene que viajar cualquier señal eléctrica, manteniendo así 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 lograr una mejora del rendimiento del 10-20%.

Arquitectura de caché de CPU

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

Por lo general, cada núcleo de CPU 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 utiliza principalmente para almacenar datos que de otro modo no cabrían en la caché L2. Al tener un caché L2 dedicado por núcleo, se evita la contención de caché. La contención de caché es donde diferentes núcleos luchan por reclamar espacio de caché para sus 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, puede reducir la cantidad de datos que se duplicarían en niveles de caché más bajos por núcleo.

Sugerencia: Por ejemplo, en el tamaño de la caché, Intel i9-9900K tiene una caché L1 de 64 KB y una caché 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 caché de la CPU se utilizan para acelerar el rendimiento del procesador al almacenar en caché los datos de la RAM. Cuando una CPU solicita datos, normalmente busca primero a través de sus niveles de caché en un intento de obtener los datos lo más rápido posible. Si se encuentran datos en un acierto de caché, la CPU puede continuar su procesamiento. Si los datos no están en el caché, en lo que se llama un caché faltante, la CPU tiene que verificar la RAM y luego el disco duro si los datos no están allí. Los niveles más rápidos siempre se comprueban primero para obtener el máximo rendimiento.

Para ayudar a la CPU a obtener los datos que necesita en la caché cuando los necesita, la caché intenta anticipar los datos que la CPU puede necesitar más adelante. Por ejemplo, si la CPU ha solicitado algunos datos para una imagen que está renderizando, la caché puede intentar almacenar en caché más datos de imagen para que puedan enviarse a la CPU lo más rápido posible.