Una memoria caché es una ubicación de almacenamiento reservada que recopila datos temporales para ayudar a que los sitios web, los navegadores y las aplicaciones se carguen más rápido. Ya sea una computadora, computadora portátil o teléfono, navegador web o aplicación, encontrarás una variedad de caché.
MEMORIA CACHÉ
Las computadoras almacenan datos usando una jerarquía similar. Cuando se inician las aplicaciones, los datos y las instrucciones se mueven del disco duro lento a la memoria principal (RAM dinámica o DRAM), donde la CPU puede obtenerlos más rápidamente. DRAM actúa como caché para el disco.
NIVELES SOBRE NIVELES
Aunque la DRAM es más rápida que el disco, sigue siendo pequeña. Por lo tanto, los datos que se necesitan con más frecuencia se mueven a la siguiente memoria más rápida, llamada caché de nivel 2 (L2).
Esto puede estar ubicado en un chip RAM estático de alta velocidad separado junto a la CPU, pero las CPU nuevas generalmente incorporan la caché L2 directamente en el chip del procesador.
En el nivel más alto, la información que se usa con más frecuencia, por ejemplo, las instrucciones en un bucle que se ejecutan repetidamente, se almacena directamente en una sección especial del chip del procesador, llamada caché de Nivel 1 (L1). Este es el recuerdo más rápido de todos.
El procesador Pentium III de Intel Corp. tiene 32 KB de caché L1 en el chip del procesador y 256 KB de L2 en el chip o 512 KB de L2 fuera del chip. Se puede acceder a la caché L2 en el chip de la CPU cuatro veces más rápido que si estuviera en un chip separado.
Cuando el procesador necesita ejecutar una instrucción, busca primero en sus propios registros de datos. Si los datos necesarios no están allí, van a la caché L1 y luego a la caché L2. Si los datos no están en ningún caché, la CPU llama a la RAM principal. Puede que ni siquiera esté allí, en cuyo caso el sistema tiene que recuperarlo del disco.
Cuando la CPU encuentra datos en una de sus ubicaciones de caché, se denomina «acierto»; no encontrarlo es un «error». Cada error introduce un retraso o latencia, ya que el procesador intenta un nivel más lento. En un sistema bien diseñado con algoritmos de software que obtienen datos antes de que se soliciten, la tasa de aciertos puede alcanzar el 90%.
PROCESADORES DE ALTA GAMA
En el caso de los procesadores de gama alta, puede llevar de uno a tres ciclos de reloj obtener información de L1, mientras que la CPU espera y no hace nada. Se necesitan de seis a 12 ciclos para obtener datos de una L2 en el chip del procesador, y decenas o incluso cientos de ciclos para la L2 fuera de la CPU.
Los cachés son más importantes en los servidores que en las PC de escritorio porque los servidores tienen mucho tráfico entre el procesador y la memoria generado por las transacciones de los clientes.
Intel convirtió una PC basada en 80486 de 50 MHz en un servidor en 1991 al agregar una caché de 50 MHz al chip del procesador. Aunque el bus que conecta el procesador y la memoria funcionaba solo a 25 MHz, este caché permitió que muchos programas se ejecutaran completamente dentro del chip 486 a 50 MHz.
Esta disposición jerárquica de la memoria ayuda a cerrar una brecha cada vez mayor entre las velocidades del procesador, que aumentan aproximadamente un 50% por año, y las tasas de acceso a DRAM, que aumentan solo un 5% por año.
A medida que aumenta este desajuste de rendimiento, los fabricantes de hardware agregarán un tercer y posiblemente un cuarto nivel de memoria caché.
De hecho, a finales de este año, Intel introducirá caché de nivel 3 (L3) en sus procesadores de servidor de 64 bits, llamados Itanium. La caché de 2 MB o 4 MB se conectará al procesador a través de un bus que funciona tan rápido como el procesador: 800 MHz.
IBM también está desarrollando su propia caché L3 para servidores Netfinity basados en Intel de 32 y 64 bits. Al principio, se colocará en el chip controlador de memoria y estará disponible hacia fines del próximo año.
El L3 de IBM será un caché a nivel de sistema disponible para los cuatro a 16 procesadores del servidor. El L3 de Intel solo puede ayudar al procesador al que está conectado, pero IBM dice que su L3 puede mejorar el rendimiento de todo el sistema.
El L3 de IBM también ayudará a la computación de alta disponibilidad para el comercio electrónico al permitir cambios y actualizaciones de la memoria principal mientras el sistema se está ejecutando.
MÁS GRANDE NO ES NECESARIAMENTE MEJOR
La frecuencia de las pérdidas de la memoria caché se puede reducir haciendo que las cachés sean más grandes. Pero los cachés grandes consumen mucha energía, generan mucho calor y reducen el rendimiento de buenos chips en la fabricación.
Una forma de solucionar estas dificultades puede ser trasladar la lógica de gestión de la memoria caché del hardware al software. El compilador podría potencialmente analizar el comportamiento del programa y generar instrucciones para mover datos hacia arriba y hacia abajo en la jerarquía de la memoria.
Las cachés administradas por software se limitan actualmente a los laboratorios de investigación. Los obstáculos potenciales incluyen la necesidad de reescribir compiladores y recompilar código heredado para cada nueva generación de CPU.