Professional Documents
Culture Documents
Teo 3
3.1. Política d’assignació directa
Tenim un sistema de memòria en el que tots els accessos es fan a paraula (no ens importa quina
és la mida d’una paraula). Suposarem que l’espai d’adreces de memòria es descompon en blocs
de 4 paraules i el sistema també disposa d’una memòria cau de 4 línies. Suposem que el sistema
fa servir una política d’assignació directa, de manera que cada bloc de la memòria principal només
es pot portar a una línia determinada de la memòria cau.
1, 2, 13, 14, 26, 27, 28, 29, 36, 37, 38, 39, 40, 3, 10, 11, 12, 13, 14, 15, 30, 8, 12
La següent taula mostra l’estat inicial de la cau, que conté les primeres 16 paraules de la memòria
(organitzades en 4 blocs). Completar la taula per a mostrar l’evolució de la cau durant l’execució
del programa. Per a cada accés cal omplir una columna indicant si es tracta d'un encert o una
fallada.
Línia 27 28 29 36 37 38
Línia 39 40 3 10 11 12
Línia 13 14 15 30 8 12
1 / 4
c) Suposem que el temps d’accés a la memòria cau, o temps d’accés en cas d’encert (te), és de 4
ns i que el temps total d’accés en cas de fallada (tf) és de 20 ns. Considerant la taxa de fallades
obtinguda a la pregunta anterior, quin és el temps mitjà d’accés a memòria (tm ) ?
N ombre d′encerts 15
T e = N ombre d′accessos a la memòria = 23 ≃ 0.652
t m = T f * t f + T e * t e = T f * t f + (1 − T f ) * t e = T f * (t f − t e ) + t e ≃ 9.552
3.2.1 FIFO
L’execució d’un programa genera la següent llista de lectures a memòria:
0, 1, 2, 13, 14, 15, 16, 37, 38, 23, 24, 25, 42, 17, 18, 53, 54, 55, 56, 20, 21, 15, 16
L’estat inicial de la cau es buit i la cau s'omple seqüencialment començant per la línia 0.
a) Completar la taula següent per a mostrar l’evolució de la cau durant l’execució del programa.
Per a cada accés cal omplir una columna indicant si es tracta d'un encert o una fallada.
0 ---- F 0 (0 - 7) E 0 (0 - 7) E 0 (0 - 7) 0 (0 - 7) 0 (0 - 7) 0 (0 - 7) 0 (0 - 7)
1 ---- F 1 (8 - 15) E 1 (8 - 15) E 1 (8 - 15) 1 (8 - 15)
2 ---- F 2 (16 - 23)
Línia 37 38 23 24 25 42 17 18
Línia 53 54 55 56 20 21 15 16
2 / 4
b) Suposem que tenim un vector de dades emmagatzemat a partir de l'adreça de memòria 60,
format per 4 elements (V[0] a V[3]), de 4 bytes cadascun, emmagatzemats de forma consecutiva.
La memòria cau conté els blocs de memòria 2, 3 i 7. Suposeu que la línia de la cau que porta més
temps dins la cau és la línia 2, després la línia 0 i finalment la línia 1 (que és la que porta menys
temps).
Si s'executa dos cops seguits un accés seqüencial a tots els elements del vector:
s=0;
for (k=0;k<4;k++) s=s+V[k];
p=1;
for (k=0;k<4;k++) p=p*V[k];
Líni P 60 64 68 72 S 60 64 68 72
a r e
i g
0 2 m 2 2 (16-23) 2 F 9 o 9 9 9 (72-80) E 9 (72-80)
(16-23) e (16-23) (16-23) (72-80) n (72-80) (72-80)
r
b
1 3 3 3 (24-31) 3 3 F 7 7 7 (56-63) 7 (56-63)
b u
(24-31) u (24-31) (24-31) (24-31) c (56-63) (56-63)
c l
2 7 l E 7 F 8 (64-71) E 8 8 e 8 E 8 E 8 (64-71) 8 (64-71)
(56-63) e (56-63) (64-71) (64-71) (64-71) (64-71)
N ombre d′encerts 3
T e = N ombre d′accessos a la memòria = 8 ≃ 0.375
Per tant, tenim que es produeixen 3 fallades amb una taxa de fallades aproximadament del 37.5%
3.2.2 LRU
Completar la mateixa taula que en l'apartat 3.2.1, però ara assumint que es fa servir un algorisme
de reemplaçament LRU, de manera que traurem de la memòria cau aquell bloc que fa més temps
que no s’ha referenciat.
0, 1, 2, 13, 14, 15, 16, 37, 38, 23, 24, 25, 42, 17, 18, 53, 54, 55, 56, 20, 21, 15, 16
Línia 37 38 23 24 25 42 17 18
Línia 53 54 55 56 20 21 15 16
3 / 4
Lleugera ampliació:
N ombre de f allades 9
Tf= N ombre d′accessos a la memòria
= 23
≃ 0.391
t m = T f * t f + T e * t e = T f * t f + (1 − T f ) * t e = T f * (t f − t e ) + t e ≃ 10.260
Conclusió: amb els algorismes de reemplaçament hi ha més temps mitjà d’accés a memòria, tal i com
s’indica a l’apartat 3.5 dels apunts.
4 / 4