Vous êtes sur la page 1sur 6

Clase Practica - cache

Organizacion del Computador 1


Mariano Moscato - Verano 2010
Ejercicio 1 1 Una computadora utiliza una cache de correspondencia directa de 32 lneas de 16
palabras cada una. La memoria principal mide 220 palabras y es direccionable a palabra.
a) cu
antas lneas posee la memoria principal? a cuantos bloques corresponde?
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
La memoria posee 220 palabras. Cada lnea de cache es de 16 (24 ) palabras, entonces la
20
memoria tiene 224 = 216 lneas.
Por otro lado, la cache tiene 32 lneas por lo que la memoria estara dividida en bloques de
16
32 lneas. Si tenemos 216 lneas de memoria y bloques de 32 (25 ) lneas, tendremos 225 = 211
bloques de memoria.

b) Mostrar el formato de una direccion de memoria vista desde la cache (tag, line, index ).
Cu
ales de estos campos deben guardarse en la cache?
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
Como la lnea es de 16 palabras y se utiliza direccionamiento a palabra, el campo index
tendr
a 4 bits.
Teniendo en cuenta que la cache tiene 32 lneas, el campo line tendra 5 bits.
Adem
as sabemos que la memoria esta dividida en 211 bloques, por lo que el campo tag
tendr
a 11 bits.
tag
11 bits

line
5 bits

index
4 bits

S
olo debemos guardar el tag.
A modo de verificaci
on notemos que la suma de los tama
nos de los tres campos da veinte, que
es justamente la cantidad de bits necesaria para asignar direcciones a este tipo de memoria
(de 220 palabras con direccionamiento a palabra).

c) En que lugar de la cache se guarda la palabra que se encuentra en la direccion de memoria


0x0DB63? Mostrar c
omo queda la cache al leer dicha direccion.
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
Primero, analicemos la direcci
on 0x0DB63; que en binario sera 0000 1101 1011 0110 0011.
Escribamos c
omo ve esta direcci
on la cache:
1 Ejercicio

1 del captulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture

tag
0000 1101 101
0x6D

line
1 0110
0x16

index
0011
0x3

Entonces, luego del pedido, la lnea 0x16 de la cache correspondera al bloque 0x6D. En el
ndice 3 de esa lnea estar
a la palabra cuya direccion en memoria principal es 0x0DB63.

Ejercicio 2 2 Una computadora utiliza una cache asociativa de 64 lneas de 32 palabras. La


memoria principal cuenta con 216 palabras y es direccionable a palabra.
a) cu
antas lneas posee la memoria principal?
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
Cada lnea tiene 32 palabras de largo. Entonces la cantidad de lneas de la memoria sera
216
= 211
25

b) Mostrar el formato de una direccion de memoria vista desde la cache (tag, index ). Cuales
de estos campos deben guardarse en la cache?
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
La lnea tiene 32 palabras; luego, alcanzan con cinco bits para el ndice.
En el punto anterior vimos que hay 211 lneas en memoria principal; entonces, bastan con
once bits para el tag.
tag
11 bits

2 Ejercicio

index
5 bits

3 del captulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture

c) En que lugar de la cache se guarda la palabra que se encuentra en la direccion de memoria


0xF8C9? Mostrar c
omo queda la cache al leer dicha direccion.
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
Como antes, comencemos por analizar la direccion 0xF8C9; en binario se escribe como 1111
1000 1100 1001. Utilizando el punto anterior sabemos que para esta direccion el tag es 0x7C6
y que el index es 9.
Entonces, luego de procesar el pedido de la palabra cuya direccion es 0xF8C9, la primer lnea
libre (o marcada como no v
alida) de la cache correspondera a la lnea de memoria principal
0x7C6; donde la palabra pedida ocupa el lugar indicado por el ndice 9. La siguiente figura
muestra un ejemplo en el cual se asume que la cache estaba vaca antes de procesar el pedido.

Ejercicio 3 3 Se tiene una computadora con 227 palabras de memoria principal. La cache tiene
una capacidad total de 215 lneas de 64 palabras cada una.
a) Mostrar el formato de una direccion de memoria para una cache asociativa por conjuntos de
2 vias.
Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011) La memoria tiene 227
27
palabras. Como cada lnea tiene 64 palabras, la memoria tiene 226 = 221 lneas. La cache tiene
21
2 vias de 214 lneas cada una, entonces la memoria principal se encuentra dividida en 2214 = 27
bloques.
tag
7 bits

line
14 bits

index
6 bits

b) C
omo queda cargada la cache al leer primero la posicion de memoria 0x01178FC y luego
0x03178FC?
3 Ejercicio

5 del captulo 6, L. Null & J. Lobur, Essentials of Computer Organization and Architecture

Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
La primer direcci
on de memoria (000 0001 0001 0111 1000 1111 1100 en binario) sera interpretada por la cache como 0x01 (tag), 0x05E3 (conjunto), 0x3C (ndice). Si en ese conjunto
las dos vas estuvieran libres, la memoria cache podra quedar como se muestra en la siguiente
figura. (Recordar que se carga toda la lnea.)

La segunda direcci
on de memoria (000 0011 0001 0111 1000 1111 1100 en binario) sera interpretada por la cache como 0x03 (tag), 0x05E3 (conjunto), 0x3C (ndice). Siguendo con el
ejemplo de la figura anterior, la cache cambiara como se muestra a continuacion. (Recordar
que se carga toda la lnea.)

Ejercicio 4
Una computadora trabaja con palabras e instrucciones (de tama
no
fijo) de 64 bits, direcciones y registros de 32 bits y direccionamiento
a palabra. Sea el programa mostrado a la derecha, que calcula el
producto escalar de dos vectores (el tama
no de los vectores se indica
en R4).

ciclo:

Sabiendo que la etiqueta ciclo se encuentra cargada en la posicion


de memoria 0x0000 00F0, que las etiquetas de los vectores (v1 y
v2) se encuentran en la posici
on 0xF000 00F0 y 0xFFFF 00F0, y
suponiendo que dicha computadora cuenta con una memoria cache de
16 KB para almacenar datos, analizar la tasa de aciertos para una
cache de correspondencia directa con lneas de 8 palabras.

MOV R0,0
MOV R1,v1
MOV R2,v2
MOV R3,0
ADD R3,[R1]
MUL R3,[R2]
ADD R0,R3
MOV R3,0
INC R1
INC R2
DEC R4
JNZ ciclo

Soluci
on de Mariano M. Moscato. (10 de noviembre de 2011)
Primero veamos c
omo son los campos de acuerdo al tipo de cache con el que estamos trabajando. Como es una cache de correspondencia directa, cada direccion de memoria sera interpretada
utilizando los campos: tag, lnea e ndice.
Como hay 23 palabras en cada lnea y el procesador usa una direccion por palabra, alcanzaran
3 bits para el ndice. Dado que la cache mide 16 KB, y cada palabra 8 bytes (64 bits), caben en ella
211 palabras. Como cada lnea agrupa 23 palabras, en la cache caben 28 lneas. Luego, alcanzan
con 8 bits para el campo lnea. Entonces, como sabemos que las direcciones miden 32 bits, el campo
tag deber
a medir 32 8 3 = 21 bits.
Veamos ahora los pedidos a memoria que vamos a tener a medida que ejecutemos el programa.
Comencemos por las instrucciones anteriores al ciclo.
pedido
1
2
3
4

0000 00EC
0000 00ED
0000 00EE
0000 00EF

instrucci
on
instrucci
on
instrucci
on
instrucci
on

MOV
MOV
MOV
MOV

R0,0
R1,v1
R2,v2
R3,0

vista cache
000000 1D 4
000000 1D 5
000000 1D 6
000000 1D 7

resultado

M
H
H
H

Hasta aqu tenemos cuatro pedidos, de los cuales el primero es un miss, pero provoca que se
cargue la lnea correspondiente a los siguientes tres, que resultaran en sendos hits. La primera
iteraci
on del ciclo provoca los siguientes pedidos.
pedido
5
6
7
8
9
10
11
12
13
14

0000 00F0
F000 00F0
0000 00F1
FFFF 00F0
0000 00F2
0000 00F3
0000 00F4
0000 00F5
0000 00F6
0000 00F7

instrucci
on
dato
instrucci
on
dato
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on

ADD R3,[R1]
MUL R3,[R2]
ADD R0,R3
MOV R3,0
INC R1
INC R2
DEC R4
JNZ ciclo

vista cache
000000 1E 0
1E0000 1E 0
000000 1E 1
1FFFE0 1E 0
000000 1E 2
000000 1E 3
000000 1E 4
000000 1E 5
000000 1E 6
000000 1E 7

resultado

M
M
M
M
M
H
H
H
H
H

Si bien las ocho instrucciones del ciclo ocupan exactamente la lnea de tag cero y n
umero de
lnea 1E, el pedido de datos de las dos primeras instrucciones provocan que se desaloje (y se vuelva
a alojar) dicha lnea en dos oportunidades sucesivas. Por lo tanto, tenemos diez pedidos mas, los
que se reparten equitativamente entre hits y misses. La segunda iteracion provocara estos pedidos:

pedido
15
16
17
18
19
20
21
22
23
24

0000 00F0
F000 00F1
0000 00F1
FFFF 00F1
0000 00F2
0000 00F3
0000 00F4
0000 00F5
0000 00F6
0000 00F7

instrucci
on
dato
instrucci
on
dato
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on

ADD R3,[R1]
MUL R3,[R2]
ADD R0,R3
MOV R3,0
INC R1
INC R2
DEC R4
JNZ ciclo

vista cache
000000 1E 0
1E0000 1E 1
000000 1E 1
1FFFE0 1E 1
000000 1E 2
000000 1E 3
000000 1E 4
000000 1E 5
000000 1E 6
000000 1E 7

resultado

H
M
M
M
M
H
H
H
H
H

Esta configuraci
on es casi identica a la anterior, la u
nica diferencia es que el primer pedido
no provoca un miss como antes debido a que la lnea ya se encontraba en la cache (por el u
ltimo
pedido de la iteraci
on anterior). Sin embargo, vuelve a repetirse el desalojo sucesivo de la lnea 1E.
Es f
acil ver que esto ocurre porque los pedidos de datos corresponden a lneas con el mismo n
umero
de lnea (1E) que las direcciones de las instrucciones. Dado que los datos pedidos se ubican en el
primer ndice de la lnea y se van pidiendo secuencialmente, esta misma configuracion se repetira en
las siguientes seis iteraciones del ciclo.
La novena iteraci
on provocar
a los siguientes pedidos.
pedido
95
96
97
98
99
100
101
102
103
104

0000 00F0
F000 00F8
0000 00F1
FFFF 00F8
0000 00F2
0000 00F3
0000 00F4
0000 00F5
0000 00F6
0000 00F7

instrucci
on
dato
instrucci
on
dato
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on
instrucci
on

ADD R3,[R1]
MUL R3,[R2]
ADD R0,R3
MOV R3,0
INC R1
INC R2
DEC R4
JNZ ciclo

vista cache
000000 1E 0
1E0000 1F 0
000000 1E 1
1FFFE0 1F 0
000000 1E 2
000000 1E 3
000000 1E 4
000000 1E 5
000000 1E 6
000000 1E 7

resultado

H
M
H
M
H
H
H
H
H
H

A partir de esta iteraci


on ya no tenemos el desalojo de la lnea 1E, mencionado mas arriba, y
logramos aumentar la cantidad de hits a ocho de los diez pedidos que el ciclo realiza.
Entonces:
Si R4 = 1, la tasa de aciertos es de

8
14 ;

Si 1 < R4 8, la tasa de aciertos es de

3+5+6(R41)
4+10(R4) ;

Si 8 < R4 2032, la tasa de aciertos es de

3+5+67+8(R48)
;
4+10(R4)

Preguntas finales:
a) Que pasa si R4 es mayor a 2032?
b) C
omo cambiara el resultado del ejercicio si se utilizara una cache asociativa por conjuntos
de 2 vas con lneas de 8 palabras y algoritmo de reemplazo LRU?

Vous aimerez peut-être aussi