MEMORIA CACHE
Objetivos
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, se transfiere 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 : tiempo en 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 de desacierto)
¿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 por competencia 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
directo
¿Cómo encontrar un bloque en el cache?
Cache de proyección directa
Cache completamente asociativo
Cache asociativo por conjuntos
Que bloque reemplazar en un desacierto
Reemplazo aleatorio
Menos recientemente usado
Como manejar la escritura en el cache
Escritura sincrona
Escritura asincrona
Causas de desaciertos
Desaciertos compulsorios
Desaciertos de capacidad
Desaciertos de conflicto
Sistemas de memoria para soporte de cache
Memoria de una palabra de ancho
Memoria de varias palabra de ancho
Memorias entrelazadas (interleaved memory)