procesadores y que a medida del tiempo se han ido incrementando, haciendo que el limite sea mayor entre la transferencia de la memoria principal (RAM) y el CPU, ante esto se plantearon soluciones. una de ellas fue incrementar la velocidad de la RAM y la otra solución fue agregar un nuevo componente al PC: La Memoria Caché. ¿QUE ES MEMORIA CACHÉ? • Es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM, se presenta de forma temporal y automática para el usuario, haciendo más rápido el acceso a los datos de uso más frecuente. Se encuentra en el interior del microprocesador, diseñada para acelerar el procesamiento de instrucciones del microprocesador, el cuál puede acceder a los datos almacenados en caché mucho más rápido que aquellos datos almacenados en la memoria RAM. CARACTERÍSTICAS DE LA MEMORIA CACHÉ
• Son memorias muy costosas y por lo tanto de muy poco uso.
• Cuentan regularmente con 80 pines que se insertan en una ranura especial. • Tienen por lo general muy poca capacidad de almacenamiento, pero son muy veloces. • Puede convivir con otro tipo de memorias en la misma tarjeta principal (“Motherboard”). • Actualmente se les clasifica en niveles (“Level”), por lo que se les identifica como L1, L2 y L3. ELEMENTOS DEL DISEÑO DE LA MEMORIA CACHÉ
A la hora de diseñar un sistema de memoria caché hay que elegir
entre una serie de alternativas para cada uno de los siguientes elementos de diseño:
TAMAÑO • MIENTRAS MÁS PEQUEÑA AUMENTA EL COSTO POR BIT Y ES MÁS RÁPIDA.
• LA CACHÉ NIVEL 1 O L1 ESTÁ APROXIMADAMENTE EN 512 KB.
• LA CACHÉ NIVEL 2 O L2 ESTÁ APROXIMADAMENTE EN 4 MB. FUNCIÓN DE CORRESPONDENCIA • Son algoritmos que hacen corresponder bloques de memoria con líneas caché estos ayudan a que el manejo de los datos en memoria caché sea de una manera más rápida y con menos errores. • Determina las posibles líneas de la caché (marcos de bloque) en las que se puede ubicar un determinado bloque de la memoria principal que ha sido referenciado por el programa y hay que llevarlo a memoria caché. • Existen tres funciones de correspondencia para definir la posible ubicación de un bloque de memoria principal (Mp) en la memoria caché (Mc): Directa. Es la función más sencilla de correspondencia según la cuál cada bloque de memoria principal solamente puede ubicarse en una única línea de la memoria caché. Asociativa En este se solventa los problemas de correspondencia directa, aquí se permite que cada bloque de memoria puede ubicarse en cualquier línea de la caché, por lo que mientras la memoria caché no este llena no tendrá que hacer ninguna sustitución, en caso contrario, es decir, cuando la memoria caché este llena y se deba traer un nuevo bloque se tendrá que sustituir uno de los bloques según la política de sustitución más apropiada, es decir, la que genere menos fallo de caché. Asociativa por conjuntos. Esta correspondencia combina la economía de la correspondencia directa y la tasa de aciertos de la correspondencia asociativa, en esta correspondencia consiste en anotar las líneas de la caché en conjuntos de tal forma que la función de correspondencia permitan que un bloque de memoria principal pueda ubicarse en cualquier línea de un conjunto concreto. ALGORITMOS DE SUSTITUCIÓN • Usan diferentes algoritmos que les permite liberar de datos cada una de las líneas de la caché. Entre los algoritmos más conocidos están: FIFO (First In First Out) : Significa primero en entrar y primero en salir, este algoritmo consiste en sustituir aquel bloque del conjunto que ha estado más tiempo en la cache. LFU (Least Frequently Used) : Significa utilizado con menor frecuencia, este algoritmo sustituye aquel bloque del conjunto que ha experimentado menor referencia, se puede implementar mediante la asociación de un Contador de cada línea. Aleatorio : Estas técnicas no se basan en el grado de utilización, consiste simplemente en escoger al azar una de todas las líneas y borrarlas. POLÍTICA DE ESCRITURA • Determina la forma de actualizar Mp cuando se realizan o operaciones de escritura. Hay que diferenciar dos casos: cuando la posición de memoria sobre la que se va a escribir está en Mc (acierto) y cuando no lo está (fallo). Frente a aciertos en la caché existen dos alternativas: Escritura directa o inmediata (write through): Todas las operaciones de escritura se realizan en Mc y Mp. Inconveniente: genera un tráfico importante a Mp. Solución: utilización de un buffer de escritura (alpha 21064). Postescritura (copy back) Las actualizaciones se hacen sólo en Mc. Se utiliza un bit de actualización asociado a cada marco de bloque para indicar la escritura del marco en Mp cuando es sustituido por la política de reemplazamiento. Inconveniente: inconsistencia temporal entre Mc y Mp ==> complicación del acceso de la E/S (periférico de entrada y salida), a memoria que debe realizarse a través de Mc. • Y frente a fallos en la caché otras dos: Asignación en escritura (write allocate): El bloque se ubica en Mc cuando ocurre el fallo de escritura y a continuación se opera como en un acierto de escritura, es decir, con escritura directa o postescritura. No asignación en escritura (No write allocate): El bloque se modifica en Mp sin cargarse en Mc. POLÍTICA DE BÚSQUEDA • Determina las condiciones que tienen que darse para buscar un bloque de Mp y llevarlo a una línea de Mc. Existen dos alternativas principales: Por demanda: Se lleva un bloque a Mc cuando se referencia desde la CPU alguna palabra del bloque y éste no se encuentra en Mc. Anticipativa (Prebúsqueda) o Prebúsqueda siempre: la primera vez que se referencia el bloque Bi se busca también Bi+1. o Prebúsqueda por fallo: cuando se produce un fallo al acceder al bloque Bi se buscan los bloques Bi y Bi+1. • Business Intelligence (BI “Inteligencia Empresarial o Negocio”): Es la habilidad para transformar los datos en información, y la información en conocimiento, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios. CLASIFICACIÓN DE LOS FALLOS DE LA MEMORIA CACHÉ • Los fallos de la caché se pueden clasificar en tres tipos: Forzosos: producidos por el primer acceso a un bloque. Capacidad: producidos cuando Mc no puede contener todos los bloques del programa. Conflicto: (en correspondencia directa o asociativa por conjuntos) producidos por la necesidad de ubicar un bloque en un conjunto lleno cuando Mc no está completa. TIPOS
• En el caso de los microprocesadores, estos
integran de 1 a 3 tipos de memoria caché denominadas L1, L2 y L3, que significan (“Level X“) ó traducido es nivel 1, nivel 2 y nivel 3. MEMORIA L1 • Se encuentra integrada dentro de los circuitos del microprocesador y eso la hace más cara y más complicado en el diseño, pero también mucho más eficiente por su cercanía al microprocesador, ya que funciona a la misma velocidad que él. Esta a su vez se subdivide en 2 partes. • L1 DC: (“Level 1 date cache“): se encarga de almacenar datos usados frecuentemente y cuando sea necesario volver a utilizarlos, inmediatamente los utiliza, por lo que se agilizan los procesos.
• L1 IC: (“Level 1 instruction cache“): se
encarga de almacenar instrucciones usadas frecuentemente y cuando sea necesario volver a utilizarlas, inmediatamente las recupera, por lo que se agilizan los procesos. MEMORIA 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. • Esta anteriormente se encontraba en tarjetas de memoria, para ser insertada en una ranura especial de la tarjeta principal (Motherboard) y funciona a la velocidad de trabajo de la misma. • Actualmente la memoria L2 viene integrada en el microprocesador, se encarga de almacenar datos de uso frecuente y agilizar los procesos; determina por mucho si un microprocesador es la versión completa ó un modelo austero. Pueden contar con una capacidad de almacenamiento Caché de 8 MB, 9 MB en procesadores AMD® e Intel® y hasta 12 MB en procesadores Intel®. MEMORIA 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. • Esta memoria es un tercer nivel que utilizaron primero los procesadores de la firma AMD® y posteriormente Intel®. Con este nivel de memoria se agiliza el acceso a datos e instrucciones que no fueron localizadas en L1 ó L2. Si no se encuentra el dato en ninguna de las 3, entonces se accederá a buscarlo en la memoria RAM. Pueden contar con una capacidad de almacenamiento Caché de hasta 8 Mb y 9 Mb sumando L2+L3 en el caso de la nomenclatura AMD®.