Вы находитесь на странице: 1из 18

Universidad Nacional de La Matanza

Sistemas de Computacin I
Prof. Titular: Ing. Fernando I. Szklanny

Curso lectivo 2005

Bloque de almacenamiento
Memoria cach
Autores: Ing. Miriam Prez Berr Ing. Carlos Rodrguez 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

La mayora de las referencias a memoria principal. Para mejorar el rendimiento del sistema de memoria Principio de localidad:

Se corresponden con un conjunto reducido de locaciones.


Se sugiere colocar una memoria pequea, pero rpida

el 90% del tiempo de ejecucin se consume en el 10% del cdigo

Referencia a una locacin de memoria

Probabilidad de acceso cercano a:

La misma posicin anterior:


Localidad temporal

Posiciones cercanas a la accedida: Localidad espacial

GENERALIDADES

- Los sistemas modernos pueden tener distintos niveles de memoria cache en su jerarqua, los
que se distinguen como Nivel 1 (L1), Nivel 2 (L2), y an 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. - 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 ms de lo que se escribe), y otra para el cdigo (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 estadsticamente existe una operacin de escritura cada cuatro o ms operaciones de lectura. -Tasa de aciertos (%):
Ta : {N de veces que la palabra buscada se encuentra en la cache / N Total de accesos a memoria}.100

-Tiempo efectivo (medio) de acceso (nseg):


tea: {(N aciertos).(tiempo por acierto)+ (N fallas).(tiempo por falla)} / N Total de accesos a memoria

MEMORIA CACHE DE ASIGNACION ASOCIATIVA DIRECCION de MEMORIA ETIQUETA S bits ROTULO-PALABRA W bits E0 E1 E.. E.. E.. Er-1 BIT DE SUCIEDAD BIT DE VALIDEZ ACIERTO MEMORIA CACHE LINEAS L0 L1 L.. 2r MEMORIA PPAL 2S BLOQUES B0 B1 B.. B.. FALLA

L.. L.. Lr-1

Bi..
B.. B2S-1..

COMPARADOR

Siendo r << s

MEMORIA CACHE DE ASIGNACION ASOCIATIVA DIRECCION de MEMORIA

ETIQUETA
S bits

ROTULO
W bits MEMORIA PPAL

E0

L0

B0

E1
E.. E.. E..

L1
L.. L.. L..

B1
B.. B.. Bi..

Er-1

Lr-1

B..
B2S-1..

LINEAS: 2r LINEAS ETIQUETAS : 2S ETIQUETAS

2S BLOQUES de 2W PALABRAS

BIT DE SUCIEDAD
TAMAO DE LA CACHE = 2R . 2W PALABRAS BIT DE VALIDEZ

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 REALIZA EN PARALELO
PUEDE ASIGNARSE A CUALQUIER LINEA SE LIMPIA PREVIAMENTE LA MEMORIA CACHE

SE DEBE MODIFICAR UNA LINEA

PREVIAMENTE SE ESCRIBE EN MEMORIA PRINCIPAL SE REUTILIZA CON OTRO BLOQUE

SE PRODUCE UNA FALLA

SE UBICA EN MEMORIA PRINCIPAL EL BLOQUE QUE LA CAUSO Y SE LO CARGA EN LA CACHE

MEMORIA CACHE DE ASIGNACION DIRECTA DIRECCION de MEMORIA ETIQUETA S- Q bits LINEA Q bits E0 E1 E.. E.. E.. Er-1 PALABRA W bits L0 L1 L.. B0 B1 B.. B.. FALLA

L.. L.. Lr-1

Bi..
B.. B2S-1..

COMPARADOR

BIT DE SUCIEDAD BIT DE VALIDEZ

MEMORIA PRINCIPAL r =cantidad de lneas de cache, donde cada lnea, posee 2w palabras.

ACIERTO

MEMORIA CACHE DE ASIGNACION DIRECTA DIRECCION de MEMORIA

ETIQUETA
S- Q bits

LINEA
Q bits

PALABRA
W bits

E0 E1 E.. E... E... Er-1

L0 L1 L.. L.. L.. Lr-1 MEMORIA CACHE

MEMORIA PRINCIPAL B0 B1 B..

B..
B2q B 2q+1 B.. B2s-1..

BIT DE VALIDEZ BIT DE SUCIEDAD

Tendremos 2 s bloques en memoria principal, 2 q lneas de cache, de 2w palabras cada una y 2 s-q etiquetas.

MEMORIA CACHE DE ASIGNACION DIRECTA

EXISTEN MAS BLOQUES EN MEMORIA PRINCIPAL QUE LINEAS EN MEMORIA CACHE


BLOQUE DE MEMORIA PRINCIPAL

ASIGNADO A UNA SOLA LINEA


SE CORRESPONDE CON UN CONJUNTO EXPLCITO DE BLOQUES DE MEMORIA PRINCIPAL PUEDE RECIBIR MAS DE UN BLOQUE

LINEA DE MEMORIA CACHE

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 POSICIN


ESPECIFICADA EN EL CAMPO DE PALABRA.

VENTAJAS Y DESVENTAJAS
MENOR TAMAO 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 (tamao de la Memoria Cache), CASO CONTRARIO LA REFERENCIA A MEMORIA PRODUCIRA UNA FALLA.

MEMORIA CACHE DE ASIGNACION POR CONJUNTOS DIRECCION de MEMORIA ETIQUETA S- Q bits CONJUNTO Q bits E0 E1 E.. E.. E.. Er-1 C0 C.. PALABRA W bits L0 L1 L.. B0 B1 B.. B.. FALLA

+
Cr/2 -1

L.. L.. Lr-1

Bi..
B.. B2S-1..

COMPARADOR

BIT DE SUCIEDAD BIT DE VALIDEZ

MEMORIA CACHE

MEMORIA PRINCIPAL

ACIERTO

Suponemos para este caso, que un grupo est formado por dos lneas consecutivas de la memoria Cache

MEMORIA CACHE DE ASIGNACION POR CONJUNTOS DIRECCION de MEMORIA

ETIQUETA
S- Q bits

CONJUNTO
Q bits

PALABRA
W bits

L0
C0 C1 L1 L.. L..

B0 B1 B.. B.. B2q B 2 q +1 B.. B2S -1..

L..

C r/2 - 1

L r-1

BIT DE VALIDEZ BIT DE SUCIEDAD

Tendremos 2 s bloques en memoria principal, 2 q conjuntos de cache y 2 q+1 lneas de cache, de 2w palabras cada una y 2 s-q etiquetas.
Suponemos para este caso, que un grupo est formado por dos lneas 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

SE TIENE UNA MEMORIA ASOCIATIVA DE DOS VIAS


PARA UN CONJUNTO SE UTILIZA EL ESQUEMA DE LA ASIGNACION DIRECTA

ASIGNACION DE UNA DIRECCION

DENTRO DEL CONJUNTO SE UTILIZA LA ASIGNACIONASOCIATIVA

VENTAJAS Y DESVENTAJAS.
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

LOS DATOS ESTAN EN MEMORIA CACHE ESCRITURA DE CACHE LOS DATOS NO ESTAN EN MEMORIA CACHE

ESCRITURA DIFERIDA

Write back, se difiere la escritura hasta despus de la limpieza de la memoria cache. Write through, se realizan dos copias, una en memoria cache y otra en memoria principal. 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.

ESCRITURA INMEDIATA

ESCRITURA CON ASIGNACIN


ESCRITURA SIN ASIGNACIN

POLITICAS DE LECTURA Y ESCRITURA DE MEMORIA CACHE

LOS DATOS ESTAN EN MEMORIA CACHE

ENVIAR A LA CPU

LECTURA DE CACHE CARGA INMEDIATA LOS DATOS NO ESTAN EN MEMORIA CACHE

Load through, la palabra buscada se transfiere a la CPU sin esperar que se complete la transferencia del resto de la lnea.

CARGA DIFERIDA

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 agrega en cada lnea una identificacin de tiempo, la que se actualiza cada vez que se accede, y se descarta el contenido de la usada menos recientemente.
LFU - Menos Frecuentemente Usado (least frequently used) - Se actualiza una lnea por vez mediante un contador de frecuencia adosado a cada lnea, se libera el bloque que muestra la menor tasa de actualizacin. FIFO - El primero que entra es el primero que sale (first in first out) - Se reemplazan las lneas en forma ordenada, una tras otra en el orden en el que se encuentran ordenados en la memoria. ALEATORIA - Se elige simplemente una lnea al azar.