sábado, 18 de octubre de 2014

Memoria Caché



La caché es la memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas. La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia.
La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos.
Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal. El sistema de memoria cache está diseñado especialmente para servir al apropiado y organizado almacenamiento de información en una computadora. Su función es básicamente mantener de manera temporal y accesible aquellos datos que son requeridos para realizar determinadas funciones o tareas. Esta disponibilidad permite que cada programa o archivo tenga inmediato acceso a la información necesaria y pueda así dedicarse a subir el nivel de eficiencia de las funciones normales. De tal modo, la memoria principal cuenta con una gran ayuda que le permite adquirir mayor velocidad de desempeño y mejores resultados por fuera de sus limitadas capacidades.


La memoria cache se estructura normalmente en pequeños campos donde se guardan los datos necesarios (hasta un byte de espacio por cada campo o celda). Puede tener lugar como parte integrante de la memoria principal como también puede estar emplazada por fuera de ella y activarse de manera autónoma. A través del método del hit rate o del promedio de pedidos que recibe cada dato, se establece un orden de los elementos más requeridos y que por tanto pasan a estar a mayor disponibilidad, borrándose eventualmente aquellos que no vuelvan a ser utilizados.
Cuando uno habla de la memoria cache de disco está haciendo referencia a un proceso similar al de la memoria cache RAM que se produce en la misma memoria principal. Este procedimiento es otro modo de implementar el sistema de memoria cache evitando usar la lenta memoria del disco duro pero manteniendo activo su interior y proveyéndole con datos de manera mucho más directa.

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 cuando 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)

Funcionamiento


Las memorias caché funcionan como memorias escritas cuando están involucradas en la transferencia de datos desde un dispositivo más rápido a un dispositivo más lento. Permiten enviar la información y luego realizar una nueva tarea, a la vez que traducen los datos. La memoria caché de lectura también está diseñada para operar entre dispositivos más rápidos y más lentos, y tiene una lógica de soporte diseñada para anticipar lo que necesitarás luego. De esta manera, lentamente pre-lee la información que es probable que necesites, de modo que cuando desees cargarla, lo harás con mayor rapidez. La memoria caché de amortiguación está diseñada para almacenar la información de tu última consulta, de modo que si quieres acceder a ella de nuevo, puedas hacerlo rápidamente.
La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las últimas operaciones. La CPU siempre busca primero la información en la caché, lo normal es que va encontrar ahí la mayoría de las veces, con lo que el acceso será muy rápido. Pero si no encuentra la información en la caché, se pierde tiempo en acudir a la RAM y copiar dicha información en la caché para su disponibilidad.