Memoria Caché
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 sisteme, 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.
¿Cuál es su finalidad?
Pues que este tipo de datos sean de acceso instantáneo para el procesador, ya que se trata de información relevante y que debe estar a la mano de manera muy fluida.
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). 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.
¿Cómo funciona la memoria cache?
Se organiza en niveles,
de menor a mayor tamaño según lo alejada que esté del micro. Si el procesador
necesita un dato de la memoria se comprueba si este se encuentra en el primer
nivel. En caso de no encontrarlo, se busca en el segundo nivel y si no en el
tercero. Todo se acelera si se colocan los datos más utilizados en los niveles
más cercanos al procesador.
Cada uno de estos niveles tiene un bloque de control el cual se encarga de almacenar y poner los datos a disposición del micro.
Cada uno de estos niveles tiene un bloque de control el cual se encarga de almacenar y poner los datos a disposición del micro.
El tiempo que tarda
en buscar la información es proporcional al tamaño de la propia memoria que
administra. Como queremos que los datos lleguen lo antes posible al micro los
niveles más bajos tendrán menor capacidad. Cada nivel superior, por tanto, es
bastante más grande que el anterior.
La memoria cache es
muy pequeña.
En comparación con la memoria RAM unas mil veces más pequeña. Por suerte, los programas suelen realizar muchas operaciones sobre los mismos datos y por lo tanto se consiguen grandes mejoras al usar esta técnica.
En comparación con la memoria RAM unas mil veces más pequeña. Por suerte, los programas suelen realizar muchas operaciones sobre los mismos datos y por lo tanto se consiguen grandes mejoras al usar esta técnica.
También denominada
cache principal, caché de nivel 1 o
caché L1
Es una innovación
relativamente reciente; 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).
Con una velocidad de acceso comparable
a la de los registros, es decir, es mucho más rápida que la RAM.
[Caché Externa
También conocido
cache secundaria, cache de nivel 2 o cache L2.
Es más antigua que la
interna. 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 por medio de los 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.
A continuación se
ilustra la cache L1 y la cache L2
Dentro del punto de
vista Funcional tenemos: Cache de disco.
Caché de
disco
Es la caché de disco,
esta 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).
Su funcionamiento se
basa en dos esquemas de operación:
La lectura adelantada
("Read-ahead").- Consiste en anticipar lo que se necesitará de forma
inmediata y traerlo a la caché.
La escritura
retrasada("Write-behind").- Consiste en mantener los datos en caché
hasta que se producen momentos de desocupación del sistema de disco. En este caso la caché actúa como memoria
tampón o "buffer" intermedio, y no se obliga al subsistema a realizar
físicamente ninguna escritura, con lo que las cabezas quedan libres para nuevas
lecturas.
Puesto que los cachés
de disco de escritura retrasada mantienen los datos en memoria volátil después
que "supuestamente" se han escrito en el dispositivo, una caída accidental del sistema, por fallo
de energía o apagado intempestivo, puede producir pérdidas de los datos
alojados en la caché en ese momento (es esta una de las razones por las que los
sistemas Windows y Linux exigen un proceso especial de apagado, que a veces
tarda unos segundos, en los que observamos una intensa actividad del sistema de
disco).
No hay comentarios:
Publicar un comentario