Una memoria caché es una memoria en la que se almacenas una
serie de datos para su rápido acceso. Existen muchas memorias sistema, incluso
de datos, como es caché (de disco, de 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 memoria RAM o memoria principal de la
computadora, y es por esta razón que mejora la capacidad de procesamiento del
mismo.
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. A diferencia de
la caché L1, esta no está dividida, y su utilización está más encaminada a
programas que al sistema.
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 cuanto
más cerca se encuentre del núcleo del procesador (L1).
Tipos de cache
Desde el punto de vista del hardware, existen dos tipos de
memoria cache; interna y externa. La
primera, denominada también cache primaria, caché de nivel
1 o simplemente caché L1 (Level one) La segunda se
conoce también como cache secundaria, cache de nivel
2 o cache L2
Desde el punto de vista funcional, existen cachés específicas de algunos
dispositivos, por ejemplo, de disco. También se distingue entre caché de
lectura y de escritura.
§2.1 Caché interna
Es una innovación relativamente reciente [3]; en realidad son dos, cada una
con una misión específica: Una para datos y otra para
instrucciones. Están incluidas en el procesador junto con su circuitería
de control, lo que significa tres cosas: comparativamente es muy cara;
extremadamente rápida, y limitada en tamaño (en cada una de las cachés
internas, los 386 tenían 8 KB; el 486 DX4 16 KB, y los
primeros Pentium 8 KB). Como puede suponerse, su velocidad de acceso es
comparable a la de los registros, es decir, centenares de veces más rápida que
la RAM.
§2.2 Caché externa
Es más antigua que la interna, dado que
hasta fecha "relativamente" reciente estas últimas eran
impracticables. Es una memoria de acceso rápido incluida en la placa
base, que dispone de su propio bus y controlador independiente que intercepta
las llamadas a memoria antes que sean enviadas a la RAM ( H2.2 Buses
locales).
La caché externa típica es un banco SRAM ("Static Random Access
Memory") de entre 128 y 256 KB.
Esta memoria es considerablemente más rápida que la DRAM ("Dynamic
Random Access Memory") convencional, aunque también mucho más cara [5]
(tenga en cuenta que un aumento de tamaño sobre los valores anteriores no
incrementa proporcionalmente la eficacia de la memoria caché).
Actualmente (2004) la tendencia es incluir esta caché en el procesador.
Los tamaños típicos oscilan entre 256 KB y 1 MB
Caché de disco
Además de las anteriores, que son de propósito general, existe una caché
de funcionalidad específica que se aloja en memoria RAM estándar. Es la caché
de disco (nos hemos referido a ella en la introducción de este
epígrafe), destinada a contener los datos de disco que probablemente sean
necesitados en un futuro próximo y los que deben ser escritos. Si la
información requerida está en chaché, se ahorra un acceso a disco, lo que es
centenares de veces más rápido (recuerde que los tiempos de acceso a RAM se
miden en nanosegundos y los de disco en milisegundos
§3.1 Caché de disco en MS DOS
y Windows
La cache de los sistemas MS DOS y de los primeros sistemas Windows se
denominaba SmartDrive. Por su parte, los nuevos Sistemas
de 32 bits disponen de un controlador virtual denominado VCACHE que
utiliza un
5 Caché oportunista
Existe un tipo especial que podríamos considerar "de
aplicación", denominada caché oportunista("Opportunistic
cache"). Está relacionada con los problemas de bloqueos de ficheros
en entornos multiusuario en los que distintas aplicaciones pueden acceder a los
mismos datos