Memoria Cache
Objetivos
* Mantener el tiempo de acceso promedio a la memoria pequeño.
* Reducir el ancho de banda entre memoria principal y procesador
Operación del cache
La dirección generada por el procesador es comparada con los datos que están almacenados en la cache, si el dato está presente, el procesador lo lee desde la cache, si el dato no está presente, setransfiere desde la memoria principal a la cache.
Terminología
Bloque : unidad mínima de almacenamiento en cache
Acierto : palabra buscada pertenece a bloque presente en cache
Desacierto : palabra buscada pertenece a bloque ausente de cache
Razón de acierto : fracción de referencias a memoria que producen aciertos
Razón de desacierto : 1 - (razón de acierto)
Tiempo de acierto : tiempoen leer un dato del cache
Penalidad de desacierto : (tiempo en reemplazar bloque) + (tiempo de lectura de dato al procesador)
Valores típicos
Parámetro | Valor típico |
Tamaño del bloque | 4-128 bytes |
Tiempo de acierto | 1-4 ciclos |
Penalidad de desacierto | 8-32 ciclos |
Tiempo de acceso | 6-10 ciclos |
Tiempo de transferencia | 2-22 ciclos |
Razón de desacierto | 0,01-0,2|
Tamaño del cache | 1Kbyte - 256Kbyte |
Localidad
Localidad Temporal
Se mantienen los datos accesados más recientemente en la memoria rápida.
Localidad espacial
Al leer un dato al cache, se leen los datos contiguos (bloque).
Tiempo de acceso promedio a memoria
Tiempo acceso = (razón de acierto) * (tiempo de acierto)
(razón de desacierto) * (penalidad dedesacierto)
¿Dónde ubicar un bloque en el cache?
Cache de proyección directa
Cada bloque de datos en memoria puede ubicarse en un y sólo un bloque del cache.
Ubicación normalmente es: número del bloque módulo número de bloques en el cache
Ventajas y desventajas
- Económico, acceso rápido (utilizado en caches internas) .
- Mayor razón de desaciertos porcompetencia por bloque específico.
Cache completamente asociativo
Cualquier bloque de memoria puede ubicarse en cualquier bloque del cache.
Número completo del bloque es el tag.
Ventajas y desventajas
- Más caro (muchos comparadores).
- Acceso más lento, dato no disponible hasta saber si acceso fue acierto o desacierto (etapa de comparación y multiplexión).
-Menor tasa de desaciertos por competencia por bloque
Cache asociativo por conjuntos
Es un esquema intermedio.
Cada bloque memoria puede ser ubicado en uno de N bloques del cache (conjuntos de N bloques) .
Cada bloque de memoria tiene asociado un conjunto específico.
Ventajas y desventajas
* Más económico que cache completamente asociativo, pero más caro quecache
directo
* Dato disponible después de etapa de comparación y multiplexión
¿Cómo encontrar un bloque en el cache?
Cache de proyección directa
* Acceso directo al bloque: cada bloque de memoria puede encontrarse sólo en un bloque del cache.
* Bloque se encuentra a través de indexación (usando el número del bloque como índice)
* Se requiere comparar los tags parasaber si el bloque es realmente el que se busca
* Bloque está disponible antes de terminar la comparación
Cache completamente asociativo
* Búsqueda completa: el bloque puede estar en cualquier bloque del cache
* Comparar el tag del bloque con todos los tags de los bloques del cache
* Multiplexor selecciona bloque cuyo tag coincide, si existe uno
* Dato estádisponible después de las comparaciones.
Cache asociativo por conjuntos
* Indexación parcial: encontrar el conjunto del bloque
* Búsqueda asociativa parcial: encontrar el bloque dentro del conjunto
* Comparar tags de bloques dentro del conjunto
* Multiplexor selecciona bloque dentro del conjunto
* Bloque disponible después de la selección
Que...
Regístrate para leer el documento completo.