memorias cache
TRANSCRIPT
Universidad Nacional de La Matanza
Sistemas de Computación I
Prof. Titular: Ing. Fernando I. Szklanny
Curso lectivo 2005
Bloque de almacenamiento
Memoria caché
Autores: Ing. Miriam Pérez Berró – Ing. Carlos Rodríguez –
A.S. Silvia Perrone
Presentacion general del tema
• Se plantea la necesidad de mejorar el rendimiento del sistema formado por la CPU de una computadora y su memoria principal.
• Las velocidades de respuesta (tiempos de acceso) de las memorias no se corresponden con las necesidades de velocidad de la CPU.
• El sistema de memoria caché permite acelerar los procesos entre CPU y memoria principal.
MEMORIA CACHE
Se corresponden con un conjunto reducido de locaciones.
Se sugiere colocar una memoria pequeña, pero rápida
•Posiciones cercanas a la accedida:
Localidad espacial
Referencia a una locación de memoria
Probabilidad de acceso cercano a:
•La misma posición anterior:
Localidad temporal
Principio de localidad: el 90% del tiempo de ejecución se consume en el 10% del código
Para mejorar el rendimiento del sistema de memoria
La mayoría de las referencias a memoria principal.
GENERALIDADES
- Los sistemas modernos pueden tener distintos niveles de memoria cache en su jerarquía, los que se distinguen como Nivel 1 (L1), Nivel 2 (L2), y aún en ciertos casos Nivel 3 (L3). La memoria cache de Nivel 1, en muchos casos viene incorporada directamente en el mismo circuito integrado de la CPU.
-Tasa de aciertos (%):
Ta : {N° de veces que la palabra buscada se encuentra en la cache / N° Total de accesos a memoria}.100
- Si la memoria caché contiene instrucciones y operandos, esta memoria se denomina memoria unificada.- Se puede mejorar el rendimiento, si se separa la memoria cache en dos, una parte para los datos (se lee más de lo que se escribe), y otra para el código (instrucciones de programa, que solo se leen). En este caso se habla de una memoria cache fragmentada o fraccionada. Este planteo se justifica ya que estadísticamente existe una operación de escritura cada cuatro o más operaciones de lectura.
-Tiempo efectivo (medio) de acceso (nseg):
tea: {(N° aciertos).(tiempo por acierto)+ (N° fallas).(tiempo por falla)} / N° Total de accesos a memoria
ETIQUETA
DIRECCION de MEMORIA
S bits W bits
COMPARADOR
ROTULO-PALABRA
E0
E1
E..
E..
E..
Er-1
B0
B1
B..
B..
Bi..
BIT DE VALIDEZ
BIT DE SUCIEDAD
ACIERTO
L0
L1
L..
L..
L..
Lr-1 B..
B2S-1..
FALLA
MEMORIA CACHE DE ASIGNACION ASOCIATIVA
MEMORIA CACHE 2r
LINEASMEMORIA PPAL 2S BLOQUES
+
Siendo r << s
ETIQUETADIRECCION de MEMORIA
S bits W bits
ROTULO
E0
E1
E..
E..
E..
Er-1
B0
B1
B..
B..
Bi..
L0
L1
L..
L..
L..
Lr-1 B..
B2S-1..
MEMORIA CACHE DE ASIGNACION ASOCIATIVA
MEMORIA PPAL
2S BLOQUES de 2W PALABRAS
BIT DE VALIDEZ
BIT DE SUCIEDAD
ETIQUETAS : 2S ETIQUETAS
LINEAS: 2r LINEAS
TAMAÑO DE LA CACHE = 2R . 2W PALABRAS
MEMORIA CACHE DE ASIGNACION ASOCIATIVA
EXISTEN MAS BLOQUES EN LA MEMORIA PRINCIPAL QUE LINEAS EN LA MEMORIA CACHE
BUSQUEDA DE ETIQUETAS
BLOQUE DE MEMORIA PRINCIPAL
SE CARGA POR PRIMERA VEZ UN PROGRAMA
SE PRODUCE UNA FALLA
SE LIMPIA PREVIAMENTE LA MEMORIA CACHE
SE REALIZA EN PARALELO
PUEDE ASIGNARSE A CUALQUIER LINEA
SE DEBE MODIFICAR UNA LINEA PREVIAMENTE SE ESCRIBE EN MEMORIA PRINCIPAL
SE REUTILIZA CON OTRO BLOQUE
SE UBICA EN MEMORIA PRINCIPAL EL BLOQUEQUE LA CAUSO Y SE LO CARGA EN LA CACHE
ETIQUETA
DIRECCION de MEMORIA
S- Q bits Q bits
COMPARADOR
LINEA
E0
E1
E..
E..
E..
Er-1
B0
B1
B..
B..
Bi..
BIT DE VALIDEZ
BIT DE SUCIEDAD
ACIERTO
L0
L1
L..
L..
L..
Lr-1 B..
B2S-1..
FALLA
MEMORIA CACHE DE ASIGNACION DIRECTA
PALABRA
W bits
+
r =cantidad de líneas de cache,
donde cada línea, posee 2w palabras.
MEMORIA PRINCIPAL
ETIQUETADIRECCION de MEMORIA
S- Q bits Q bits
LINEA
E0
E1
E..
E...
E...
Er-1
B0
B1
B..
B..
B 2 q
BIT DE VALIDEZ
BIT DE SUCIEDAD
L0
L1
L..
L..
L..
Lr-1
B..
B2s-1..
MEMORIA CACHE DE ASIGNACION DIRECTA
PALABRA
W bits
B 2q+1
Tendremos 2 s bloques en memoria principal, 2 q líneas de cache, de 2w palabras cada una y 2 s-q etiquetas.
MEMORIA PRINCIPAL
MEMORIA CACHE
MEMORIA CACHE DE ASIGNACION DIRECTA
EXISTEN MAS BLOQUES EN MEMORIA PRINCIPAL QUE LINEAS EN MEMORIA CACHE
BLOQUE DE MEMORIA PRINCIPAL
LINEA DE MEMORIA CACHE
ASIGNADO A UNA SOLA LINEA
PUEDE RECIBIR MAS DE UN BLOQUE
SE CORRESPONDE CON UN CONJUNTO EXPLÍCITO DE BLOQUES DE MEMORIA PRINCIPAL
SE HACE REFERENCIA A UNA DIRECCION DE MEMORIA PRINCIPAL
EL CAMPO DE LINEA INDICA EN QUE LINEA PUEDE ENCONTRARSE
SI EL BIT DE VALIDEZ ES “1” SE COMPARA EL CAMPO DE ETIQUETAS
SI COINCIDE, LA PALABRA SE TOMA DESDE LA POSICIÓN
ESPECIFICADA EN EL CAMPO DE PALABRA.
VENTAJAS Y DESVENTAJAS
•MENOR TAMAÑO DE LA MEMORIA DE ETIQUETAS.
•NO SE NECESITA EFECTUAR BUSQUEDA ASOCIATIVA
•SE DEBEN EVITAR LAS REFERENCIAS SUCESIVAS A MEMORIA CON SEPARACION MAYOR A 2Q+W (tamaño de la Memoria Cache), CASO CONTRARIO LA REFERENCIA A MEMORIA PRODUCIRA UNA FALLA.
ETIQUETA
DIRECCION de MEMORIA
S- Q bits Q bits
COMPARADOR
CONJUNTO
E0
E1
E..
E..
E..
Er-1
B0
B1
B..
B..
Bi..
BIT DE VALIDEZ
BIT DE SUCIEDAD
ACIERTO
L0
L1
L..
L..
L..
Lr-1 B..
B2S-1..
FALLA
MEMORIA CACHE DE ASIGNACION POR CONJUNTOS
PALABRA
W bits
C0
C..
Cr/2 -1
MEMORIA PRINCIPAL
MEMORIA CACHE
Suponemos para este caso, que un grupo está formado por dos líneas consecutivas de la memoria Cache
+
ETIQUETADIRECCION de MEMORIA
S- Q bits Q bits
CONJUNTO
B0
B1
B..
B..
B 2 q
BIT DE VALIDEZ
BIT DE SUCIEDAD
L0
L1
L..
L..
L..
L r-1 B..
B2S -1..
MEMORIA CACHE DE ASIGNACION POR CONJUNTOS
PALABRA
W bits
B 2 q +1
C 0
C r/2 - 1
C 1
Tendremos 2 s bloques en memoria principal, 2 q
conjuntos de cache y 2 q+1 líneas de cache, de 2w palabras cada una y 2 s-q etiquetas.
Suponemos para este caso, que un grupo está formado por dos líneas consecutivas de la memoria Cache
MEMORIA CACHE DE ASIGNACION POR CONJUNTOS
COMBINA LA SIMPLICIDAD DE LA ASIGNACION DIRECTA CON LA FLEXIBILIDAD DE LA ASIGNACION ASOCIATIVA
SI DOS LINEAS FORMAN UN CONJUNTO
VENTAJAS Y DESVENTAJAS.
SE TIENE UNA MEMORIA ASOCIATIVA DE DOS VIAS
ASIGNACION DE UNA DIRECCION PARA UN CONJUNTO SE UTILIZA EL ESQUEMA DE LA ASIGNACION DIRECTA
DENTRO DEL CONJUNTO SE UTILIZA LA ASIGNACIONASOCIATIVA
•SE INCREMENTA LIGERAMENTE LA MEMORIA DE ETIQUETAS CON RESPECTO A LA ASIGNACION DIRECTA
•EN CADA REFERENCIA SOLO SE DEBEN ANALIZAR DOS ETIQUETAS
POLITICAS DE LECTURA Y ESCRITURA DE MEMORIA CACHE
ESCRITURA INMEDIATA
ESCRITURA DE CACHE
LOS DATOS ESTAN EN MEMORIA CACHE
LOS DATOS NO ESTAN EN MEMORIA CACHE
ESCRITURA DIFERIDA
ESCRITURA CON ASIGNACIÓN
ESCRITURA SIN ASIGNACIÓN
Write through, se realizan dos copias, una en memoria cache y otra en memoria principal.
Write back, se difiere la escritura hasta después de la limpieza de la memoria cache.
Write allocate, se ingresa el bloque en la memoria cache y se lo actualiza.
Write no allocate, se lo actualiza en memoria principal sin involucrar a la memoria cache.
POLITICAS DE LECTURA Y ESCRITURA DE MEMORIA CACHE
LECTURA DE CACHE
LOS DATOS ESTAN EN MEMORIA CACHE
LOS DATOS NO ESTAN EN MEMORIA CACHE
ENVIAR A LA CPU
CARGA INMEDIATA
CARGA DIFERIDA
Load through, la palabra buscada se transfiere a la CPU sin esperar que se complete la transferencia del resto de la línea.
Load back, se actualiza la memoria cache, y luego se lo transfiere a la CPU. La CPU siempre lee desde memoria cache.
POLITICAS DE REEMPLAZO EN MEMORIAS DE ASIGNACION ASOCIATIVA
LRU - Menos Recientemente Usado (least recently used)
- Se actualiza una línea por vez mediante un contador de frecuencia adosado a cada línea, se libera el bloque que muestra la menor tasa de actualización.
LFU - Menos Frecuentemente Usado (least frequently used)
- Se agrega en cada línea una identificación de tiempo, la que se actualiza cada vez que se accede, y se descarta el contenido de la usada menos recientemente.
FIFO - El primero que entra es el primero que sale (first in first out)
- Se reemplazan las líneas en forma ordenada, una tras otra en el orden en el que se encuentran ordenados en la memoria.
ALEATORIA
- Se elige simplemente una línea al azar.