Universidad Nacional de La Matanza
Sistemas de Computacin I
Arquitectura de Computadoras
Prof. Titular: Ing. Fernando I. Szklanny
Curso lectivo
2010
Bloque de almacenamiento
Memoria
M i cach
h
Autores: Ing. Miriam Prez Berr Ing. Carlos Rodrguez
A.S. Silvia Perrone
Presentacin general del tema
Se plantea la necesidad de mejorar el
rendimiento
di i t ddell sistema
i t fformado
d por lla CPU dde
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 Se corresponden con un
principal. conjunto reducido de locaciones.
Para mejorar el Se sugiere colocar una memoria pequea, pero
rendimiento del sistema de rpida
memoria
Principio de localidad: ell 90% del
d l tiempo
ti dde ejecucin
j i se consume en ell
10% del cdigo
Referencia a una locacin de memoria
Probabilidad de acceso cercano a:
La misma posicin anterior: Posiciones cercanas a la accedida:
Localidad temporal 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
i i iintegradod dde lla C
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).
l ) E En este caso se hhabla
bl dde una memoriai cacheh fragmentada o ffraccionada.
i d E Este planteo
l se
justifica ya que estadsticamente existe una operacin de escritura cada cuatro o ms operaciones
de lectura.
-Tasa de aciertos (Hit rate) (%):
HR : {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 FALLA
ETIQUETA ROTULO-PALABRA
S bits W bits MEMORIA CACHE 2r MEMORIA PPAL
LINEAS 2S BLOQUES
E0 L0 B0
E1 L1 B1
E.. L.. B..
E.. + L.. B..
E.. L.. Bi..
Er-1 Lr-1 B..
B2S-1..
BIT DE SUCIEDAD
COMPARADOR Siendo r << s
BIT DE VALIDEZ
ACIERTO
DIRECCION de MEMORIA ETIQUETA ROTULO
S bits W bits
MEMORIA PPAL
E0 L0 B0
E1 L1 B1
E.. L.. B..
E
E.. L
L.. B
B..
E.. L.. Bi..
Er-1 Lr-1 B..
B2S-1..
LINEAS: 2r LINEAS
2S BLOQUES de 2W
ETIQUETAS : 2S ETIQUETAS PALABRAS
BIT DE SUCIEDAD
TAMAO DE LA
TAMAO DE CACHE = 22R .22W PALABRAS
LA CACHE PALABRAS
BIT DE VALIDEZ
EXISTEN MAS BLOQUES EN LA MEMORIA PRINCIPAL QUE LINEAS EN LA
MEMORIA CACHE
LA BUSQUEDA DE ETIQUETAS SE REALIZA EN PARALELO
UN BLOQUE DE MEMORIA PUEDE ASIGNARSE A CUALQUIER LINEA
PRINCIPAL
CUANDO SE CARGA POR SE LIMPIA PREVIAMENTE LA MEMORIA
PRIMERA VEZ UN PROGRAMA CACHE
SI SE DEBE MODIFICAR UNA PREVIAMENTE SE ESCRIBE EN
LINEA MEMORIA PRINCIPAL
SE REUTILIZA CON OTRO BLOQUE
SI 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 LINEA PALABRA FALLA
S- Q bits Q bits W bits
E0 L0 B0
E1 L1 B1
E.. L.. B..
E.. + L.. B..
E.. L.. Bi..
Er-1 Lr-1 B..
B2S-1..
COMPARADOR BIT DE SUCIEDAD MEMORIA PRINCIPAL
r =cantidad de lneas de cache,
BIT DE VALIDEZ
donde cada lnea, posee 2w
palabras.
ACIERTO
DIRECCION de MEMORIA ETIQUETA LINEA PALABRA
S- Q bits Q bits W bits
MEMORIA
PRINCIPAL
E0 L0 B0
E1 L1 B1
E.. L.. B..
E... L.. B
B..
E... L.. B2q
Er-1 Lr-1 B 2q+1
B..
MEMORIA CACHE
B2s-1..
BIT DE VALIDEZ Tendremos 2 s bloques en memoria principal, 2 q lneas
de cache, de 2w palabras cada una y 2 s-q etiquetas.
BIT DE SUCIEDAD
EXISTEN MAS BLOQUES EN MEMORIA PRINCIPAL QUE LINEAS EN MEMORIA
CACHE
UN BLOQUE DE MEMORIA SE ASIGNA SIEMPRE A UNA SOLA
PRINCIPAL LINEA
UNA LINEA DE MEMORIA SE CORRESPONDE CON UN CONJUNTO EXPLCITO
CACHE DE BLOQUES DE MEMORIA PRINCIPAL
PUEDE RECIBIR MAS DE UN BLOQUE
SI SE HACE REFERENCIA A EL CAMPO DE LINEA INDICA EN QUE LINEA
UNA DIRECCION DE PUEDE ENCONTRARSE
MEMORIA PRINCIPAL
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 DE LA ASIGNACION DIRECTA
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 PUEDE PRODUCIR UNA FALLA.
MEMORIA CACHE DE ASIGNACION POR CONJUNTOS
DIRECCION de MEMORIA
ETIQUETA CONJUNTO PALABRA FALLA
S- Q bits Q bits W bits
E0 L0 B0
C0 B1
E1 L1
E.. L.. B..
C..
B..
E.. + L..
E.. L.. Bi..
Cr/2 -1
Er-1 Lr-1 B..
S
S
B2 -1..
COMPARADOR BIT DE SUCIEDAD MEMORIA CACHE MEMORIA
PRINCIPAL
BIT DE VALIDEZ
Suponemos para este caso, que un grupo
ACIERTO est formado por dos lneas consecutivas
de la memoria Cache
DIRECCION de MEMORIA ETIQUETA CONJUNTO PALABRA
S- Q bits Q bits W bits
L0 B0
C0 L1 B1
L.. B..
C1 L.. B..
B2q
L.. B 2 q +1
C r/2 - 1
L -1 B
B..
B2S -1..
Tendremos 2 s bloques en memoria principal, 2 q
conjuntos de cache y 2 q+1 lneas de cache, de 2w palabras
BIT DE VALIDEZ cada una y 2 s-q etiquetas.
BIT
BIT DE
DE SUCIEDAD
SUCIEDAD S t caso, que un grupo est
t fformado
d
Suponemos para este
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
ASIGNACION DE UNA DIRECCION PARA UN CONJUNTO SE UTILIZA EL
ESQUEMA DE LA ASIGNACION DIRECTA
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
ESCRITURA Write back, se difiere la escritura
DIFERIDA hasta despus de la limpieza de la
LOS DATOS
memoria cache.
ESTAN EN
MEMORIA
CACHE ESCRITURA Write through, se realizan dos
INMEDIATA copias, una en memoria cache y otra
ESCRITURA DE en memoria principal.
CACHE
ESCRITURA Write allocate, se ingresa el bloque
CON en la memoria cache y se lo
LOS DATOS NO
ASIGNACIN actualiza.
ESTAN EN
MEMORIA
ESCRITURA Write no allocate, se lo actualiza en
CACHE
SIN memoria principal sin involucrar a
ASIGNACIN la
l memoria
i cache.
h
LOS DATOS
ESTAN EN ENVIAR A LA
MEMORIA CPU
CACHE
LECTURA DE
CACHE Load through, la palabra buscada
CARGA se transfiere a la CPU sin esperar
INMEDIATA que se complete la transferencia
del resto de la lnea.
LOS DATOS NO
ESTAN EN
MEMORIA Load back, se actualiza la
CACHE CARGA
memoria cache, y luego se lo
DIFERIDA transfiere a la CPU. La CPU
siempre lee desde memoria
cache.
POLITICAS DE REEMPLAZO (EN CASO DE FALLA) 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.