Memoria Cache

December 16, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Memoria Cache...

Description

 

MEMORIA CACHE

CONCEPTOS BASICOS ‡

  Bloque: unidad mínima de información que se transfiere entre dos niveles.

‡

 

Acierto: se produce cuando los datos buscados están en el e l 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 jerarquía.

‡

 

‡

 

Incluye el tiempo necesario para determinar si hay acierto Penalización:

y acceder al dato.

es el tiempo para traer un nuevo bloque del nivel inferior al superior más el

tiempo para suministrar la palabra al procesador. ‡

 

‡

  bloque.

‡

 

Latencia:

tiempo para recibir la primera palabra del

Ancho de banda: velocidad

de recepción 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, ns , y una caché con un tiempo de acceso de 50 ns, y con una tasa de aciertos del 99%. ¿Cuál es el tiempo medio de acceso a memoria en este sistema?

Aspectos de Diseño de las cache  

Tamaño

 

Función de Correspondencia

 

Algoritmo de Reemplazo

 

Políticas de Escritura

 

Tamaño del bloque

 

Numero de Caches

 

FUNCION DE CORRESPONDENCIA Correspondencia directa Un bloque de memoria principal sólo puede ir a una línea.

Cada bloque de memoria principal ya tiene su línea asignada: Bloque 0-> Línea 0 Bloque 1 -> Línea 1 etc.. Bloque M -> Línea 0 (Si hay M líneas) Bloque M+1 -> Línea 1, La dirección se descompone en Etiqueta Línea Palabra

‡

  Se utilizan los bits de la dirección del dato a leer que corresponden a la línea de cache para ubicarnos en la línea de cache donde se supone esta el dato.

‡

 

Se comparan los bits de la dirección del dato a leer que corresponden a la etiqueta de esa línea 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 comparación resulto verdadera entonces esto implica que el dato a buscar esta en cache.

‡

 

Luego con los bits que corresponden a la palabra se di recciona el dato en cache y se entrega al CPU 

‡

  Si el bloque no esta en cache, la comparación 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 t anto a la etiqueta como a la línea

 

cache (s) y una vez ubicado en el bloque se direcciona dire cciona el dato en memoria principal. Este se entrega al CPU y el bloque de memoria principal es cargado en cache, en la línea

‡

que la dirección del dato específica.

 

Un bloque de memoria principal sólo puede ir a una línea

 

Ventajas:

 Accesos a cache rápidos y sencillos Inconvenientes:  Reemplazamientos reiterados cuando se producen accesos iterativos y consecutivos sobre bloques a los que les corresponde la misma línea.  Es decir, ciertas situaciones de localidad de referencia refe rencia temporal puede ser incluso mejor no usar la caché.

Correspondencia asociativa. Correspondencia asociativa.

Cada bloque de memoria puede ir a cualquier línea de la caché. Las direcciones están formadas por: Etiqueta Palabra

‡

  Se utilizan los bits de la dirección del dato al leer que corresponden al campo etiqueta, se compara con cada etiqueta de cada bloque para verificar veri ficar si el dato esta en la cache. ca che.

‡

acierto, ierto, entonces esto implica   Si el dato esta en la cache, es decir la comparación resulto ac 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 competirían por la misma línea 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 líneas.

Un

bloque de memoria principal

va al conjunto que le corresponde (en cualquiera de sus líneas). Las direcciones están formadas por Etiqueta Conjunto Palabra

‡

  Se utilizan los bits de la dirección del dato a lee r que corresponden al conjunto de cache para ubicarnos en el conjunto de cache donde se supones esta el dato.

‡

l eer que corresponden a la etiqueta de ese   Se comparan los bits de la dirección del dato a leer 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 sustitución  

 

Algoritmos de sustitución:  

Nos indica la línea que debe ser reemplazada.

 

En el caso de correspondencia directa no hay problemas (sólo puede ir a una línea).

 

LRU (Least Recentlly Used: Menos Recientemente Utilizado). Se reemplaza la línea que se usó hace más tiempo

 

FIFO (First Input First Output: El primero en entrar es el primero en salir). Se reemplaza la línea que se cargó en memoria hace más tiempo.

 

LFU (Least Frecuently Used: Menos Frecuentemente Utilizada). Se reemplaza la línea que se usa con menos frecuencia.

 

Aleatorio: El bloque reemplazado se selecciona de forma aleatoria.  

. Sencillo de implementar y muy rápido.

 

No tiene en cuenta la utilización.

 

LRU (Least Recent Used): Selecciona el bloque que hace más tiempo que no se utiliza.

 

. Mejor relación coste/rendimiento.

 

. Sencillo de implementar para pocos bloques.

     

FIFO: Selecciona el bloque más antiguo de la cache. Se implementa por medio de contadores. Muy costoso en hardware.

 

 

LFU (least Frecuent used): Selecciona el bloque que se s e ha referenciado menos frecuentemente.  

. Los bloques más usados no se sustituyen.

 

Muy costoso de implementar en hardware

 

Penaliza a los bloque más recientes.

Política de escritura.  

Política 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 en Memoria Principal. Inconveniente: Muchos accesos a memoria.

 

Post escritura: Sólo 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 CP Us cada una con su caché, debemos mantener una relación lógica entre los datos en las cachés y la memoria principal.

 

Vigilancia

del bus en escritura inmediata: Si una caché escribe en memoria, las

demás activan un indicador señalando que esa línea ya no es valida.  

Transparencia Hardware: Se utiliza Hardware adicional para modificar todas las cachés.

 

Memoria excluida de la caché: Los datos que se pueden compartir entre procesadores se excluyen de la caché, sólo 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 diseño 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é dónde se almacena todo.

 

Longitud de la línea. Cuanto mayor longitud tenga la línea, menos fallos tendremos, pero un fallo supone un coste muy alto (hay que trasvasar muchos datos de la memoria principal a la caché).

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF