Está en la página 1de 21

JERARQUAS DE

MEMORIA (2/2)

CI-1323 ECCI UCR 1


TCNICAS PARA OPTIMIZACIN DE CACH
5 mtricas tomadas en cuenta:
(La primeras 3 basadas en la frmula
Tiempo prom acceso mem
mem== Tiempo para Hit + tasa de fallos x penalizac
penalizac.. por fallo)

1. Tiempo de hit
2. Tasa de fallos
3. Penalizacin por fallo
4. Ancho de banda de la Cach
5. Consumo de energa

CI-1323 ECCI UCR 2


3 tcnicas optimizacin cach
cach
para
Reduccin del tiempo de hit

1. Cachs pequeas y simples para primer nivel


energa)) CACTI
(baja adems consumo de energa
2. Cachs con extra bits que indican el prximo
bloque a acceder en mapeo directo , o bloque
dentro del conjunto
conjunto..
3. Evitar traduccin de direccin virtual a fsica
durante la indexacin del cach cach.. (uso
(uso de offset
de la pgina
pgina,, lo que restringe el tamao cach a
page size
size * asociatividad
asociatividad))

CI-1323 ECCI UCR 3


REDUCCIN DEL TIEMPO DE HIT
Cachs pequeos y simples
Cachs con extra bits que indican el prximo
bloque a acceder (solo se compara la
etiqueta))
etiqueta
Evitar traduccin de direccin durante la
indexacin del cach (Cach virtual y fsica
fsica))
Diferencia entre etiqueta e ndice de cach
Trace cachs
cachs en ILP (Cach encuentra una
secuencia dinmica de instrucciones determinada
por CPU para cargar en un bloque de cach en
lugar de una secuencia esttica determinada por
memoria.. (Antes en la Pentium IV)
memoria
CI-1323 ECCI UCR 4
BAJA PENALIZACIN POR FALLO

1. Cachs multinivel
2. Buffers de escritura (y vctima)
3. No esperar por bloque completo para
envo de palabra requerida por CPU:
CPU
a. Early restart, (tan pronto se tenga palabra requerida, la CPU
contina)
b. Critical word first wrapped fetch, o requested word first-)

4. Cachs vctima (cach comp. asociativa para


colocar bloques que son reemplazados)
5. Merging write buffer

CI-1323 ECCI UCR 5


TASAS DE FALLOS SEGUN CATEGORIA
Y TAMAO DE CACH (Ya hay de 16 vas)

1 VA
0.10
CONFLICTO
0.09 2 VAS
4 VAS
0.08 8 VAS
CAPACIDAD
0.07
0.06
COMPULSIVA
0.05
0.04
0.00
4 8 16 32 64 128 256 512
TAMAO cach EN KB
CI-1323 ECCI UCR 6
5 tcnicas optimizacin cach para
reduccin de tasas de fallo
1-Aumentar tamao del bloque
reduce fallos compulsivos
puede incrementar fallos por conflicto
aumenta penalizacin por fallo
puede aumentar fallos por capacidad
debe conocerse el punto donde cambia la curva
2-Cachs ms grandes
3-Aumentar asociatividad
asociativa de 8 vas, para efectos prcticos es tan efectiva como
completamente asociativa
un cach con mapeo directo de tamao N tiene casi la misma tasa de
fallos como una cach asociativa por conj
conj.. de 2 vas de tamao N/2
4-Optimizaciones del compilador (organizar datos y cdigo,
intercambio loops
loops,
, bloques en arreglos )
5- Prefetch a cach L1 o a prefetch cach por hardware o
con el compilador (baja penalizacin por fallo si se hace a prefetch
cach)
CI-1323 ECCI UCR 7
Reduccin de penalizacin por fallos o
de tasas de fallo

1. Prefetching de datos e instrucciones por hardware (se


pueden cargar en cach o en un buffer).
prefetch de instrucciones se hace en hardware fuera del cach. El
procesador carga 2 bloques en un fallo. El segundo se coloca en un
stream buffer de instrucciones
Para datos usualmente se utilizan varios stream buffers
Ej. UltraSPARC III usa un esquema de prefetching, en el cual pueden
realizarse hasta 8 prefetches simultneos.
2. Prefetching de datos realizado por compilador
El compilador inserta instrucciones que se encargar de solicitar datos
antes de que sean necesitados. Hay dos modalidades: cargar en registros
o en cach. Tiene sentido si CPU contina trabajando mientras se cargan
los datos (cach de datos no debe bloquear CPU- tcnica indicada
anteriormente))

CI-1323 ECCI UCR 8


MEJORAS EN ACCESOS A MEMORIA VA
AUMENTO ANCHO DE BANDA DE CACH
1. Cachs que no bloquean CPU en un fallo (Solo aplicable para
procesadores que manejan finalizacin fuera de orden)
2. Pipelining accesos a cach (varias etapas para el acceso, Ej
Pentium IV tarda 4 ciclos para un hit, o el MIPS R4300 que tarda 3 ciclos)

1. Cachs de mltiples bancos (similar memoria intercalada con


bancos-pero en cach es la manera de repartir bloques) Ej. L2 de
bancos-
Opteron usa 2 bancos, L2 de la SUN Nigara tiene 4 bancos

CI-1323 ECCI UCR 9


1era Tcnica para aumentar el ancho de banda:
Memoria ms ancha
Ancho fsico de memoria: 4 CPU
palabras
bus
Primer bus: 4 palabras
Cach
Cach L2: 4 palabras
L1
Buses de: 1 palabra bus
Cach L1: 1 palabra MUX
Penalizacin por fallo (en cach L2 ) bus bus bus bus
es:
4 + 56 + 4 = 64 ciclos Cach L2
bus
Ancho de banda:
32 bytes en 64 ciclos, o sea Memoria
byte por ciclo
CI-1323 ECCI UCR 10
Memoria intercalada
(en este caso de 4 vas)
4 bancos de memoria de 1 palabra
de ancho
CPU
Palabras de memoria intercaladas
en los bancos: bus
palabra 0, 4, 8,12,... en banco 0
cach
palabra 1,5,9,13... en banco 1...

bus
Ancho cach y capacidad buses:
Banco Banco Banco Banco
1 palabra
Penalizacin por fallo:
0 1 2 3
4 + 56 + 4 x 4 = 76 ciclos
Ancho de banda = 0,4 bytes por
ciclo
CI-1323 ECCI UCR 11
DESEMPEO DE MEMORIA cach (cont.)
Ejercicio : Acabo de comprar este computador ACME:
95% accesos a memoria son hits
Cada bloque de cach tiene 2 palabras y el bloque se lee en un fallo
Procesador enva referencias a su cach a 109 palabras/seg.
25% de esas referencias son escrituras
Suponga que el sistema de memoria puede
soportar 109 palabras/ segundo, lecturas o escrituras
(ancho de banda)
El bus lee o escribe una palabra cada vez ( sist. memoria no puede
leer o escribir un bloque de cach -2 palabras- a la vez)
Suponga que en cualquier instante el 30% de los bloques en el cach
han sido modificados
En un fallo de escritura el cach usa el mtodo de write allocate
Considero aadirle perifricos al sistema y quiero saber cunto del ancho de
banda del sistema de memoria ya est usado.
RESUELVALO PARA cachWRITE BACK Y PARA cach
WRITE THROUGH
CI-1323 ECCI UCR 12
Solucin ejercicio
Parte a) cach write back
En hit de lectura no hay accesos a memoria

En hit de escritura solo se escribe en cach. El bloque


modificado se escribe en memoria solo cuando es
reemplazado.

En un fallo de lectura o escritura se debe traer de memoria el


bloque necesario (2 palabras => 2 accesos a memoria).
Adems:
Si dirty bit del bloque a reemplazar es 1, debe escribirse
el bloque en memoria (2 palabras => 2 accesos a memoria)
Si bloque a reemplazar tiene dirty bit en 0, no se lleva a
memoria. (cont.)
CI-1323 ECCI UCR 13
Solucin ejercicio (cont.)
Parte a) cach write back (cont)
En resumen se tiene que:
. Dirty Bit Frecuencia Accesos a memoria
Hit de lect. o escri. 0 95% x 70% = 66.5% 0
Hit de lect. o escri. 1 95% x 30% = 28.5% 0
Fallo de lec. o escr. 0 5% x 70% = 3.5% 2
Fallo de lec. o escr. 1 5% x 30% = 1.5% 4

El nmero promedio de accesos reales a memoria por acceso a cach se


calcula:
0 x 66.5% + 0 x 28.5% + 3.5% x 2 + 1.5% x 4 = 0.13
Por lo tanto, por cada uno de los 10 9 accesos a cach que realiza el
procesador por segundo, se producen en promedio 0.13 accesos a
memoria principal. O sea, se hacen 10 9 x 0.13 accesos a memoria en un
segundo.. Como memoria soporta 10 9 accesos en un segundo (ancho de
segundo
banda), el porcentaje de este ancho de banda ocupado es:
( 10 9 x 0.13) / 10 9 = 13 %

CI-1323 ECCI UCR 14


Solucin ejercicio
Parte b) cach write through (Se escribe en cach y nivel
inferior)
Clculo nmero promedio de accesos a memoria princ. por acceso a cach.
Accesos a memoria Frecuencia
Hit de lectura 0 95% x 75% = 71.3%
Hit de escritura 1 ( 1 palabra a mem.) 95% x 25% = 23.8%
Fallo de lectura 2 (1 bloque = 2 palabras) 5% x 75% = 3.8%
Fallo de escritura 3 (2 por bloque a cach y 5% x 25% = 1.3%
1 para escribir la palabra)

N. prom. accesos a memoria= 0 x 71.3 + 1 x 23.8 + 2 x 3.8 + 3 x 1.3 = 0.35


Por lo tanto, por cada uno de los 10 9 accesos a cach que realiza el
procesador por segundo, se producen en promedio 0.35 accesos a
memoria principal. O sea, se hacen 10 9 x 0.35 accesos a memoria en un
segundo. Como memoria soporta 10 9 accesos en un segundo (ancho de
banda), el porcentaje de este ancho de banda ocupado es:
( 10 9 x 0.35) / 10 9 = 35 %

CI-1323 ECCI UCR 15


Ejercicio 1
Considere la siguiente descripcin de una mquina:
Tamao del bloque = 1 palabra
Ancho del bus de memoria = 1 palabra
Tasa de fallos 3%
Nm. de referencias de memoria por instruccin = 1.2
Penalizacin por fallo de cach = 32 ciclos de reloj (4
ciclos para envo de direccin + 24 ciclos por tiempo
de acceso de la palabra en memoria + 4 ciclos por el
envo de la palabra)
CPI = 2 ( sin tomar en cuenta los fallos de cach)
a) Calcule el CPI tomando en cuenta fallos de cach
b) Sig. filmina

CI-1323 ECCI UCR 16


Ejercicio 1 (cont.)
b) Se ha decidido aumentar el tamao del bloque a 4 palabras,
lo cual cambia la tasa de fallos a un 1%.

Analice cul de las siguientes posibilidades es mejor en trminos


de CPI. Justifique su razonamiento. EXPLIQUE los trminos
de cada operacin aritmtica antes de simplificar o efectuar
operaciones intermedias:
Uno:: mantener un solo bus con un ancho de 1 palabra y hacer
Uno
memoria intercalada de 4 vas (4 bancos de datos de una
palabra de ancho cada uno)
Dos:: aumentar el ancho de memoria a dos palabras. (sin
Dos
memoria intercalada)

CI-1323 ECCI UCR 17


Ejercicio 2
Suponga que la compaa To2 tiene una computadora que trabaja con las siguientes
caractersticas:
20% de los accesos a memoria son escrituras
Una cach write back, con la estrategia write allocate para fallos .
Bloques de 2 palabras
El bus y la memoria principal : una palabra de ancho.
Este bus tarda 10 ciclos para transferir una palabra entre cach y
memoria principal o viceversa. (direccin y dato => 2 viajes)
Memoria principal tarda 100 ciclos para leer una palabra, y 150 ciclos
para escribir una palabra
Referencias de memoria por instruccin es de 3 (prom)
Tasa de fallos es del 2%
El CPI es de 5,
5, sin tomar en cuenta los ciclos de retraso por accesos a
memoria
En cualquier momento el 30% de los bloques de cach tienen el bit de
suciedad (dirty
(dirty bit)
bit) igual a 1
CI-1323 ECCI UCR 18
Ejercicio 2 (cont)
Un consultor ha convencido a To2 que si lo contratan a l para
cambiar la jerarqua de memoria de la manera que se indica
a continuacin, el desempeo ser mucho mejor :
-Cach write through, con la estrategia non write
allocate (write around, o no asignacin de escritura) para
fallos de escritura
-Memoria intercalada de dos vas,
vas, manteniendo el mismo bus
entre cach y memoria (con su misma velocidad y mismo
ancho)
-Cada banco de memoria es de una palabra de ancho y tarda
15 ciclos para leer una palabra y 20 ciclos para escribir
una palabra
Defienda o ataque la afirmacin del consultor.
CI-1323 ECCI UCR 19
Seis optimizaciones bsicas de cach

CI-1323 ECCI UCR 20


CI-1323 ECCI UCR 21

También podría gustarte