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)