Una memoria caché es una memoria en la que se almacenas una serie de datos para su rápido acceso. Existen muchas memorias caché (de disco, de sistema, incluso de datos, como es el caso de la caché de Google), pero en este tutorial nos vamos a centrar en la caché de los procesadores.
Básicamente, la memoria caché de un procesador es un tipo de memoria volátil (del tipo RAM), pero de una gran velocidad.
En la actualidad esta memoria está integrada en el procesador, y su cometido es almacenar una serie de instrucciones y datos a los que el procesador accede continuamente, con la finalidad de que estos accesos sean instantáneos. Estas instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de forma continua, por lo que para el rendimiento del procesador es imprescindible que este acceso sea lo más rápido y fluido posible.
Con el objetivo de lograr un tiempo de acceso menor a los datos almacenados en distintos tipos de memoria, existen sistemas de hardware o software llamado caché, los cuales almacenan estos datos de forma duplicada. La memoria caché contenida dentro de una CPU está más cercana que la memoria RAM o memoria principal de la computadora, y es por esta razón que mejora la capacidad de procesamiento del mismo.
Cada vez que se accede por vez primera a determinado dato, este es almacenado en caché, posteriormente al intentar leer el mismo dato se recurrirá a la información almacenada en caché, ahorrando tiempo de acceso. La memoria caché se renueva, por lo tanto, a todo momento.
Los discos duros y otros dispositivos de almacenamiento también hacen utilización de estos métodos, ya sea por hardware y/o por software mediante el sistema operativo, el cual destina cierta parte de su memoria RAM al almacenamiento de información proveniente de estos dispositivos. Las grabadoras de CD/DVD poseen una memoria caché que va almacenando los datos previamente a ser grabados en discos ópticos, e incluso algunos programas brindan un caché extra para evitar aún más la inutilización de los discos.
La forma en que un bloque se coloca en memoria caché puede ser directa, asociativa, o asociativa por conjuntos, su extracción es por demanda o con prebúsqueda, su reemplazo puede ser aleatorio o FIFO (el primero que entra es el primero que sale). La actualización de la memoria RAM puede ser inmediata o aplazada.
Tipos
Hay tres tipos diferentes de memoria caché para procesadores: Caché de 1er nivel (L1):
Esta caché está integrada en el núcleo del procesador, trabajando a la misma velocidad que este. La cantidad de memoria caché L1 varía de un procesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos. Caché de 2º nivel (L2):
Integrada también en el procesador, aunque no directamente en el núcleo de este, tiene las mismas ventajas que la caché L1, aunque es algo más lenta que esta. La caché L2 suele ser mayor que la caché L1, pudiendo llegar a superar los 2MB.
Caché de 3er nivel (L3):
Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad. En un principio esta caché estaba incorporada a la placa base, no al procesador, y su velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más en la época en la que se utilizaba), depende de la comunicación entre el procesador y la placa base. Para hacernos una idea más precisa de esto, imaginemos en un extremo el procesador y en el otro la memoria RAM. Pues bien, entre ambos se encuentra la memoria caché, más rápida cuanta más cerca se encuentre del núcleo del procesador (L1). Las memorias caché son extremadamente rápidas (su velocidad es unas 5 veces superior a la de una RAM de las más rápidas), con la ventaja añadida de no tener latencia, por lo que su acceso no tiene ninguna demora... pero es un tipo de memoria muy cara. Esto, unido a su integración en el procesador (ya sea directamente en el núcleo o no) limita bastante el tamaño, por un lado por lo que encarece al procesador y por otro por el espacio disponible. En cuanto a la utilización de la caché L2 en procesadores multinucleares, existen dos tipos diferentes de tecnologías a aplicar. Por un lado está la habitualmente utilizada por Intel, que consiste en que el total de la caché L2 está accesible para ambos núcleos y por otro está la utilizada por AMD, en la que cada núcleo tiene su propia caché L2 dedicada solo para ese núcleo. La caché L2 apareció por primera vez en los Intel Pentium Pro, siendo incorporada a continuación por los Intel Pentium II, aunque en ese caso no en el encapsulado del procesador, sino externamente (aunque dentro del procesador).