Está en la página 1de 9

MEMORIA CACHE

CONCEPTOS BASICOS Bloque: unidad mnima de informacin que se transfiere entre dos niveles. Acierto: se produce cuando los datos buscados estn en el bloque superior. Fallo: se accede al nivel inferior para leer un bloque y llevarlo al superior. Tasa de fallos: es el porcentaje de accesos a memoria que producen un fallo. Tiempo de acierto: es el tiempo necesario para acceder al nivel superior de la jerarqua. Incluye el tiempo necesario para determinar si hay acierto y acceder al dato. Penalizacin: es el tiempo para traer un nuevo bloque del nivel inferior al superior ms el tiempo para suministrar la palabra al procesador. Latencia: tiempo para recibir la primera palabra del bloque. Ancho de banda: velocidad de recepcin del resto de palabras que componen el bloque. Determina el tiempo para recibir el resto.

Ejemplo Supongamos una memoria principal con un tiempo de acceso de 500 ns, y una cach con un tiempo de acceso de 50 ns, y con una tasa de aciertos del 99%. Cul es el tiempo medio de acceso a memoria en este sistema?

Aspectos de Diseo de las cache  Tamao  Funcin de Correspondencia  Algoritmo de Reemplazo  Polticas de Escritura  Tamao del bloque  Numero de Caches

FUNCION DE CORRESPONDENCIA
Correspondencia directa Un bloque de memoria principal slo puede ir a una lnea. Cada bloque de memoria principal ya tiene su lnea asignada: Bloque 0-> Lnea 0 Bloque 1 -> Lnea 1 etc .. Bloque M -> Lnea 0 (Si hay M lneas) Bloque M+1 -> Lnea 1, La direccin se descompone en Etiqueta Lnea Palabra Se utilizan los bits de la direccin del dato a leer que corresponden a la lnea de cache para ubicarnos en la lnea de cache donde se supone esta el dato. Se comparan los bits de la direccin del dato a leer que corresponden a la etiqueta de esa lnea en particular de la cache(s-r). Con el fin de verificar si el bloque de memoria esta en cache. Si el Bloque esta en cache es decir la comparacin resulto verdadera entonces esto implica que el dato a buscar esta en cache. Luego con los bits que corresponden a la palabra se direcciona el dato en cache y se entrega al CPU Si el bloque no esta en cache, la comparacin resulto falsa esto implica que el dato no esta en cache y debe buscarse en memoria principal. La idea ahora es buscar el bloque de memoria principal donde se encuentra el dato. Esto se hace comparando los bits que corresponden tanto a la etiqueta como a la lnea cache (s) y una vez ubicado en el bloque se direcciona el dato en memoria principal. Este se entrega al CPU y el bloque de memoria principal es cargado en cache, en la lnea que la direccin del dato especfica.

Un bloque de memoria principal slo puede ir a una lnea

Ventajas: Accesos a cache rpidos y sencillos Inconvenientes: Reemplazamientos reiterados cuando se producen accesos iterativos y consecutivos sobre bloques a los que les corresponde la misma lnea. Es decir, ciertas situaciones de localidad de referencia temporal puede ser incluso mejor no usar la cach. Correspondencia asociativa. Correspondencia asociativa. Cada bloque de memoria puede ir a cualquier lnea de la cach. Las direcciones estn formadas por: Etiqueta Palabra

Se utilizan los bits de la direccin del dato al leer que corresponden al campo etiqueta, se compara con cada etiqueta de cada bloque para verificar si el dato esta en la cache. Si el dato esta en la cache, es decir la comparacin resulto acierto, entonces esto implica que el dato a buscar esta en cache, luego con los bits que corresponden a la palabra se direcciona el dato en la cache y se entrega al CPU. Si el Bloque no esta en cache se realiza el mismo procedimiento que en la correspondencia directa.

Ventaja: Dos bloques con localidad de referencia temporal no competiran por la misma lnea Inconveniente: Aumenta la complejidad de los accesos Correspondencia asociativa por conjuntos Correspondencia asociativa por conjuntos. La cach se divide en n conjuntos, cada uno de k lneas. Un bloque de memoria principal va al conjunto que le corresponde (en cualquiera de sus lneas). Las direcciones estn formadas por Etiqueta Conjunto Palabra Se utilizan los bits de la direccin del dato a leer que corresponden al conjunto de cache para ubicarnos en el conjunto de cache donde se supones esta el dato. Se comparan los bits de la direccin del dato a leer que corresponden a la etiqueta de ese conjunto en particular con todas las etiquetas del conjunto (s-d). Con el fin de verificar si el bloque de memoria esta en cache. Luego sigue igual que en correspondencia asociativa

Algoritmos de sustitucin Algoritmos de sustitucin: Nos indica la lnea que debe ser reemplazada. En el caso de correspondencia directa no hay problemas (slo puede ir a una lnea). LRU (Least Recentlly Used: Menos Recientemente Utilizado). Se reemplaza la lnea que se us hace ms tiempo FIFO (First Input First Output: El primero en entrar es el primero en salir). Se reemplaza la lnea que se carg en memoria hace ms tiempo. LFU (Least Frecuently Used: Menos Frecuentemente Utilizada). Se reemplaza la lnea que se usa con menos frecuencia. Aleatorio: El bloque reemplazado se selecciona de forma aleatoria. . Sencillo de implementar y muy rpido. No tiene en cuenta la utilizacin. LRU (Least Recent Used): Selecciona el bloque que hace ms tiempo que no se utiliza. . Mejor relacin coste/rendimiento. . Sencillo de implementar para pocos bloques. FIFO: Selecciona el bloque ms antiguo de la cache. Se implementa por medio de contadores. Muy costoso en hardware.

LFU (least Frecuent used): Selecciona el bloque que se ha referenciado menos frecuentemente. . Los bloques ms usados no se sustituyen. Muy costoso de implementar en hardware Penaliza a los bloque ms recientes. Poltica de escritura. Poltica de Escritura Es el mecanismo que nos indica cuando se actualizan los datos en memoria principal. Escritura inmediata: Cuando se modifica un dato en la cach, se modifica en Memoria Principal. Inconveniente: Muchos accesos a memoria. Post escritura: Slo se escribe en memoria principal cuando el bloque ha sido modificado en cach y debe ser reemplazado. Inconveniente: cach y memoria principal pueden tener datos distintos. Coherencia de cach. Mecanismo de coherencia de cach. Si hay una memoria principal y varias CPUs cada una con su cach, debemos mantener una relacin lgica entre los datos en las cachs y la memoria principal. Vigilancia del bus en escritura inmediata: Si una cach escribe en memoria, las dems activan un indicador sealando que esa lnea ya no es valida. Transparencia Hardware: Se utiliza Hardware adicional para modificar todas las cachs. Memoria excluida de la cach: Los datos que se pueden compartir entre procesadores se excluyen de la cach, slo pueden estar en memoria principal. Todos los accesos a memoria compartida son fallos de Cache. Se emplean direcciones de memoria alta para la memoria compartida.

Otros elementos. Otros elementos del diseo de una cach. Cach de dos niveles: Puedo definir dos niveles de cach. Cach unificada frente a partida: Puedo definir una cach para datos y otra para instrucciones o bien una nica cach dnde se almacena todo. Longitud de la lnea. Cuanto mayor longitud tenga la lnea, menos fallos tendremos, pero un fallo supone un coste muy alto (hay que trasvasar muchos datos de la memoria principal a la cach).

También podría gustarte