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

Ejercicios

Jerarqua de Memoria
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniera Informtica
Universidad Carlos III de Madrid
Contenidos
1. Memoria cach
CPU
cache
Memoria
principal
Estructura de Computadores
ARCOS @ UC3M 2010-2011 2
2. Memoria virtual
M. virtual
M. principal M. secundaria

lw $t0 vector

Problema 1
Sea un computador cuyo sistema de memoria es
el que se describe a continuacin:
Una memoria principal:
Tiempo de acceso: 200 ns
Una memoria cach:
Tiempo de acceso: 10 ns.
Estructura de Computadores
ARCOS @ UC3M 2010-2011
Tiempo de acceso: 10 ns.
La probabilidad de acierto en cach (h) es del 95%
Se pide:
a) Calcule el tiempo medio de acceso a memoria
en dicho computador
3
Solucin
Tca: tiempo acceso a cach
T
fallo
: tiempo servir un fallo
P
acierto
: tasa de acierto de la cach
P
acierto
1-P
acierto
1.- Casos
Estructura de Computadores
ARCOS @ UC3M 2010-2011 4
T
ca
T
ca
+T
fallo
T
avg
= P
acierto
* T
ca
+ (1-P
acierto
) * (T
ca
+T
fallo
)
2.- Tiempo
Solucin
a) Sustituyendo en la frmula:
T
avg
= P
acierto
* T
ca
+ (1-P
acierto
) * (T
ca
+T
fallo
)
Se tiene:
Estructura de Computadores
ARCOS @ UC3M 2010-2011 5
T
avg
= 0,95 *10 + (1-0,95) * (200 + 10)= 9,5 + 10,5
Por lo que el tiempo medio de acceso en este sistema de
memoria sera:
T
avg
= 20 ns
Problema 2
Sea un computador cuyo sistema de memoria es
el que se describe a continuacin:
Una memoria principal:
Tiempo de acceso: 40 ns
Una memoria cach:
Tiempo de acceso: 10 ns.
Estructura de Computadores
ARCOS @ UC3M 2010-2011
Tiempo de acceso: 10 ns.
Se pide:
a) Calcule la tasa de aciertos de la memoria cach para
que el tiempo medio de acceso a memoria sea,
como mximo de 20 ns.
6
Solucin
Tca: tiempo acceso a cach
T
fallo
: tiempo servir un fallo
P
acierto
: tasa de acierto de la cach
P
acierto
1-P
acierto
1.- Casos
Estructura de Computadores
ARCOS @ UC3M 2010-2011 7
T
ca
T
ca
+T
fallo
T
avg
= P
acierto
* T
ca
+ (1-P
acierto
) * (T
ca
+T
fallo
)
2.- Tiempo
Solucin
a) Sustituyendo en la frmula:
T
avg
= P
acierto
* T
ca
+ (1-P
acierto
) * (T
ca
+T
fallo
)
Se tiene:
Estructura de Computadores
ARCOS @ UC3M 2010-2011 8
20 = x * 10 + (1-x) * (40 + 10) = 10x + 50 50x = 50
40x
Por lo que el porcentaje sera:
x = (50 20) / 40 = 30/40 = 3/4 = 0,75 ~ 75%
Problema 3
Sea un computador cuyo sistema de memoria como
el que se describe a continuacin:
Una memoria principal de tipo DRAM de 512 Mbytes
y un tiempo de acceso de 200 ns
Una memoria cach con las siguientes caractersticas:
Estructura de Computadores
ARCOS @ UC3M 2010-2011
Una memoria cach con las siguientes caractersticas:
Tamao: 16 KBytes
Tamao de la lnea: 64 Bytes.
Funcin de correspondencia: asociativa por conjuntos de 4 vas
Poltica de reemplazo: FIFO (First In, First Out)
Tiempo de acceso: 10 ns.
La probabilidad de acierto en cach (h) es del 95%
9
Problema 3 (cont.)
Se pide:
a) Haga un dibujo de la estructura de la memoria cach
descrita, indicando el nmero de conjuntos y el tamao
de cada conjunto en bytes
Estructura de Computadores
ARCOS @ UC3M 2010-2011 10
Solucin
a) La estructura de la cach sera la siguiente:
La memoria cach tiene un tamao de 16 KB = 2
14
bytes.
Cada lnea tiene 64 bytes = 2
6
bytes.
Cada conjunto tiene 4 lneas, por tanto el tamao de cada conjunto
es de 2
6
x 2
2
= 2
8
= 256 bytes.
El nmero de conjuntos de la cach es de 2
14
/ 2
8
= 2
6
conjuntos.
Estructura de Computadores
ARCOS @ UC3M 2010-2011 11
El nmero de conjuntos de la cach es de 2
14
/ 2
8
= 2
6
conjuntos.
datos etiqueta
datos etiqueta
datos etiqueta

datos etiqueta
datos etiqueta
datos etiqueta

Va 0 Va 1
datos etiqueta
datos etiqueta
datos etiqueta

Va 2
datos etiqueta
datos etiqueta
datos etiqueta

Va3
2
6
- 1
1
0
Problema 4
Sea un computador de 32 bits con una memoria cach para datos
de 64 KB. El tamao de la lnea es de 32 bytes. La cach es
asociativa por conjuntos de 2 vas. La memoria principal tiene 1
MB de tamao. Considere el siguiente fragmento de cdigo:
for (int i = 0; i < 1000; i++){
a[i] = b[i] + a[i];
c[i] = 5;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011
Donde a, b y c representan vectores de 1000 nmeros enteros. El
vector a se almacena en la direccin 0F000, b en la direccin 1F000
y c en la direccin 2F000.
Se pide:
a) Calcular la tasa de aciertos de memoria cach asumiendo que se
emplea un algoritmo de reemplazo LRU durante las dos
primeras iteraciones.
12
Solucin
a) El formato de la direccin es el siguiente:
Desplazamiento
log2(Linea) = 5
Conjunto = log2 (N conjuntos)
El nmero de lneas es = Tamao cach / Tamao lnea = 64 KB / 32 =
2^6*2^10/2^5 = 2^11 lneas
Estructura de Computadores
ARCOS @ UC3M 2010-2011 13
2^6*2^10/2^5 = 2^11 lneas
El nmero de conjuntos de la cach es = Numero de lneas / Nmero de vas
= 2^11/2^1 = 2^10 conjuntos
Id. Conjunto = log2(2^10) = 10 bits
Etiqueta = 20 5 10 = 5 bits
Solucin
a) En la primera iteracin:
a[0] = 0F000 0000 1111 0000 0000 0000
0000 1111 0000 0000 0000
El acceso a a[0] supone un fallo de cach. Se accede a MP y nos transferimos un bloque de
32/4=8 elementos del vector (a[0]..a[7]). Dado que la cach es asociativa por conjuntos,
este bloque va al mismo conjunto 111 0000 000 (896). Como la cach tiene dos vas, va a la
va no ocupada por el vector b
b[0] = 1F000 0001 1111 0000 0000 0000
for (int i = 0; i < 1000; i++){
a[i] = b[i] + a[i];
c[i] = 5;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 14
b[0] = 1F000 0001 1111 0000 0000 0000
0001 1111 0000 0000 0000
El acceso a b[0] supone un fallo de cach. Se accede a MP y nos transferimos un bloque de
32/4=8 elementos del vector (b[0]..b[7]). Dado que la cach es asociativa por conjuntos,
este bloque va al conjunto 111 0000 000 (896), a cualquiera de las dos vas.
a[0] = 0F000 0000 1111 0000 0000 0000
0000 1111 0000 0000 0000
El acceso a a[0] supone un acierto de cach. Se busca en el conjunto 896 el bloque 0 que
efectivamente ya se encuentra en cach.
Solucin
a) En la primera iteracin:
c[0] = 2F000 0010 1111 0000 0000 0000
0010 1111 0000 0000 0000
El acceso a c[0] supone un fallo de cach dado que se busca en el conjunto 896 el bloque 2
de MP. Por tanto se transfieren 8 elementos del vector desde c[0] a c[7]. Adems dado el
algoritmo de expulsin LRU se va a eliminar el bloque correspondiente al vector b porque
fue el menos recientemente usado.
for (int i = 0; i < 1000; i++){
a[i] = b[i] + a[i];
c[i] = 5;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 15
Solucin
a) En la segunda iteracin:
a[1] = 0F004 0000 1111 0000 0000 0100
0000 1111 0000 0000 0100
El acceso a a[1] supone un acierto de cach.
b[1] = 1F004 0001 1111 0000 0000 0100
0001 1111 0000 0000 0100
for (int i = 0; i < 1000; i++){
a[i] = b[i] + a[i];
c[i] = 5;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 16
0001 1111 0000 0000 0100
El acceso a b[1] supone un fallo de cach dado que en el conjunto 111 0000 000 (896) se
encuentra un bloque de a y otro de c. Se accede a MP y nos transferimos un bloque de
32/4=8 elementos del vector (b[1]..b[8]) que se almacenan en el conjunto 896 y en la lnea
menos recientemente utilizada, correspondiente al vector c.
a[1] = 0F004 0000 1111 0000 0000 0100
0000 1111 0000 0000 0100
El acceso a a[1] supone un acierto de cach. Se busca en el conjunto 896 el bloque 0 que
efectivamente ya se encuentra en cach.
Solucin
a) En la segunda iteracin:
c[1] = 2F004 0010 1111 0000 0000 0100
0010 1111 0000 0000 0100
El acceso a c[1] supone un fallo de cach dado que se busca en el conjunto 896 el bloque 2
de MP. Por tanto se transfieren 8 elementos del vector desde c[1] a c[8]. Adems dado el
algoritmo de expulsin LRU se va a eliminar el bloque correspondiente al vector b porque
fue el menos recientemente usado.
for (int i = 0; i < 1000; i++){
a[i] = b[i] + a[i];
c[i] = 5;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 17
Solucin
Elemento Direccin Acceso Conjunto Va Acierto/Fallo
a[0] 0F000 Lectura 111 0000 000 0 Fallo
b[0] 1F000 Lectura 111 0000 000 1 Fallo
a[0] 0F000 Escritura 111 0000 000 0 Acierto
c[0] 2F000 Escritura 111 0000 000 1 Fallo
Estructura de Computadores
ARCOS @ UC3M 2010-2011 18
c[0] 2F000 Escritura 111 0000 000 1 Fallo
a[1] 0F004 Lectura 111 0000 000 0 Acierto
b[1] 1F004 Lectura 111 0000 000 1 Fallo
a[1] 0F004 Escritura 111 0000 000 0 Acierto
c[1] 2F004 Escritura 111 0000 000 1 Fallo
Conclusin:
Si el bloque No est en cach 1 acierto por iteracin
Si el bloque est en cach 2 aciertos por iteracin
Problema 5
Dado el siguiente cdigo escrito en el ensamblador de MIPS.
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
Estructura de Computadores
19
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Considere que se ejecuta en un computador con una memoria cach de 64
KB y tamao de lnea de 16 bytes.
ARCOS @ UC3M 2010-2011
Problema 5 (cont.)
NOTA: Para los accesos a memoria debido a datos slo contabilice los
accesos al vector. Considere que la cach est inicialmente vaca.
Se pide:
Indique la tasa de aciertos de cach debido a instrucciones (Pi)
Indique la tasa de aciertos de cach debido a datos (Pd).
Estructura de Computadores
20 ARCOS @ UC3M 2010-2011
Solucin
Tamao de lnea = 16 bytes
Nmero de instrucciones que se transfieren cuando
ocurre un fallo de cach
Una instruccin ocupa 4 bytes
Estructura de Computadores
ARCOS @ UC3M 2010-2011 21
N instrucciones = Tamao lnea / Tamao instruccin = 16/4 =
4 instrucciones
Nmero de instrucciones que se transfieren cuando
ocurre un fallo de cach
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de accesos a MP
debido a instrucciones
22
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero total de accesos a
MP debido a instrucciones
6 +
n iteraciones bucle * n
instrucciones en bucle +
1 +
23
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
1 +
2
= 6 + 100 * 5 +1 + 2 = 509
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de fallos de cach
debido a instrucciones
1. li $t0 0 Fallo de cach
24
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Fallo de cach
Acierto de cach
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de fallos de cach
debido a instrucciones
1. li $t0 0 Fallo de cach
Accedo a MP y transfiero un
bloque de 4 instrucciones
2. li $t1 100 Acierto de cach
25
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
2. li $t1 100 Acierto de cach
3. la $t2 vector
4. mul $t3 $t1 4
Fallo de cach
Acierto de cach
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de fallos de cach debido a
instrucciones
1. li $t0 0 Fallo de cach
Accedo a MP y transfiero un bloque
de 4 instrucciones
2. li $t1 100 Acierto de cach
3. la $t2 vector Acierto de cach
4. mul $t3 $t1 4 Acierto de cach
26
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
4. mul $t3 $t1 4 Acierto de cach
5. addu $t2 $t2 $t3 Fallo de cach
Accedo a MP y transfiero un bloque
de 4 instrucciones
6. subu $t2 $t2 4 Acierto de cach
7. bucle: beq $t0 $t1 fin_bucle
Acierto de cach
8. sw $t0 ($t2) Acierto de cach
Fallo de cach
Acierto de cach
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de fallos de cach
debido a instrucciones
9. subu $t2 $t2 4 Fallo de cach
Accedo a MP y transfiero un
bloque de 4 instrucciones
10. Addi $t0 $t0 1 Acierto de cach
11. B bucle Acierto de cach
27
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Fallo de cach
Acierto de cach
11. B bucle Acierto de cach
12. Bucle: beq $t0 $t1 fin_bucle
Acierto de cach
13. sw $t0 ($t2) Acierto de cach
14. Acierto
15.
508. fin_bucle: li $v0 10 Acierto de
cach
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pi
Nmero de fallos de cach
debido a instrucciones
9. subu $t2 $t2 4 Fallo de cach
Accedo a MP y transfiero un
bloque de 4 instrucciones
10. Addi $t0 $t0 1 Acierto de cach
11. B bucle Acierto de cach
28
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Fallo de cach
Acierto de cach
11. B bucle Acierto de cach
12. Bucle: beq $t0 $t1 fin_bucle
Acierto de cach
13. sw $t0 ($t2) Acierto de cach
14. Acierto
15.
508. fin_bucle: li $v0 10 Acierto de
cach
509. Syscall fallo de cach
ARCOS @ UC3M 2010-2011
Solucin
Pi
509 accesos a MP
De los cuales hay fallo en instrucciones 1, 5, 9 y 13 = 4 fallos
El resto son aciertos = 504 aciertos Pi = 99,01%
Estructura de Computadores
ARCOS @ UC3M 2010-2011 29
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pd:
30
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pd:
Nmero de accesos a MP
debido a datos
Instrucciones que acceden a MP
para leer o escribir datos
Qu hace esa instruccin?
31
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Qu hace esa instruccin?
ARCOS @ UC3M 2010-2011
Solucin:
li $t0 0
li $t1 100
la $t2 vector
mul $t3 $t1 4
addu $t2 $t2 $t3
subu $t2 $t2 4
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pd:
Nmero de accesos a MP
debido a datos
Instrucciones que acceden a MP
para leer o escribir datos
Qu hace esa instruccin?
Almacena el ndice del
32
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
syscall
Almacena el ndice del
vector (0.. 99) en el
elemento i-simo de un
vector (referenciado por
$t2)
El vector se recorre en
orden inverso desde el
ltimo elemento hasta el
primero
ARCOS @ UC3M 2010-2011
Solucin
Tamao de lnea = 16 bytes
Nmero de elementos del vector que se transfieren
cuando ocurre un fallo de cach
Un elemento del vector es un integer y ocupa 4 bytes
Estructura de Computadores
ARCOS @ UC3M 2010-2011 33
N instrucciones = Tamao lnea / Tamao integer = 16/4 = 4
elementos del vector
Solucin:
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
0
4
8
12
16
20
24
28
32
36
40
1) sw $t0 ($t2) #$t2=64
34
40
44
48
52
56
60
64
68
72
76
1) sw $t0 ($t2) #$t2=64
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
0
4
8
12
16
20
24
28
32
36
40
1) sw $t0 ($t2) #$t2=64
35
40
44
48
52
56
60
64
68
72
76
1) sw $t0 ($t2) #$t2=64
Fallo de cach
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
0
4
8
12
16
20
24
28
32
36
40
36
1) sw $t0 ($t2) #$t2=64
Fallo de cach
2) sw $t0 ($t2) #$t2=60
Fallo de cach
40
44
48
52
56
60
64
68
72
76
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
0
4
8
12
16
20
24
28
32
36
40
37
1) sw $t0 ($t2) #$t2=64
Fallo de cach dir. 64-79
2) sw $t0 ($t2) #$t2=60
Fallo de cach dir: 60-75
40
44
48
52
56
60
64
68
72
76
3) sw $t0 ($t2) #$t2=56
Fallo de cach dir: 56-71
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
subu $t2 $t2 4
addi $t0 $t0 1
b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
n
24
28
32
36
40
38
1) sw $t0 ($t2) #$t2=64
Fallo de cach dir. 64-79
2) sw $t0 ($t2) #$t2=60
Fallo de cach dir: 60-75
40
44
48
52
56
60
64
68
72
76
3) sw $t0 ($t2) #$t2=56
Fallo de cach dir: 56-71
n) sw $t0 ($t2) #$t2=final (i*4)
Fallo de cach dir
ARCOS @ UC3M 2010-2011
Solucin
Pd
100 accesos a MP debido a la instruccin sw
De los cuales hay fallo en todos los elementos del vector, dado
que la aplicacin recorre desde el ltimo elemento hasta el
primero
Estructura de Computadores
ARCOS @ UC3M 2010-2011 39
primero
Tasa de fallos = 100% fallo
Contenidos
1. Memoria cach
CPU
cache
Memoria
principal
Estructura de Computadores
ARCOS @ UC3M 2010-2011 40
2. Memoria virtual
M. virtual
M. principal M. secundaria

lw $t0 vector

Problema 6
Sea un procesador con memoria virtual paginada
de direcciones virtuales de 32 bits y pginas de 2 KB.
Estructura de Computadores
ARCOS @ UC3M 2010-2011
de direcciones virtuales de 32 bits y pginas de 2 KB.
Se pide:
a) Indique el formato de la direccin virtual, as como el
nmero mximo de pginas que puede tener un programa
en ejecucin en este computador
41
Solucin
Formato de la direccin virtual:
32 bits
Id. de pgina desplazamiento
1
Estructura de Computadores
ARCOS @ UC3M 2010-2011 42
log
2
(2k) = 11 bits 32-11 = 21 bits
2
3
Nmero mximo de pginas:
Con 21 bits se pueden identificar hasta 2
21
pginas,
es decir 2
20
* 2
1
, 2 megapginas
Problema 7
Si un computador trabaja con direcciones de 16 bits,
y posee pginas de tamao 2 KB
Qu tamao de memoria virtual podremos direccionar?
Cuntas pginas tendr la memoria virtual?
Cul ser el tamao del marco de pgina?
Estructura de Computadores
ARCOS @ UC3M 2010-2011
Cul ser el tamao del marco de pgina?
Suponiendo que la memoria fsica es de 8 KB,
cuntos marcos tendremos?
Cuntos bits de la direccin de memoria virtual
se utilizan para seleccionar entradas en la tabla de pginas
si esta es de nico nivel?
Para que emplearemos los bits restantes de la
direccin de memoria virtual?
Cuntas entradas tendr la tabla de pginas?
43
Solucin
Computador con direcciones de 16 bits y pginas de 2 KB
Qu tamao de memoria virtual podremos direccionar?
2
16
-> 64 KB
Cuntas pginas tendr la memoria virtual?
Para el desplazamiento en pginas de 2KB se necesitan 11 bits
Estructura de Computadores
ARCOS @ UC3M 2010-2011 44
Para el desplazamiento en pginas de 2KB se necesitan 11 bits
Para identificar una pgina se tienen 16 11 = 5 bits -> 32 pginas
Cul ser el tamao del marco de pgina?
2 KB (Igual que el de pgina puesto que el marco de pgina es la pgina en memoria fsica)
Solucin
Computador con direcciones de 16 bits y pginas de 2 KB
Suponiendo que la memoria fsica es de 8 KB, cuntos marcos
tendremos?
8 (tamao total de memoria fsica) / 2 (tamao de marco) = 4 marcos
Cuntos bits de la direccin de memoria virtual se utilizan para
Estructura de Computadores
ARCOS @ UC3M 2010-2011 45
Cuntos bits de la direccin de memoria virtual se utilizan para
seleccionar entradas en la tabla de pginas si esta es de nico nivel?
Los que sirven para identificar a una pgina -> 5 bits
Para que emplearemos los bits restantes de la direccin de memoria
virtual?
Para identificar el byte dentro de una pgina (desplazamiento en la pgina)
Cuntas entradas tendr la tabla de pginas?
Una por pgina (con la informacin propia de cada pgina) -> 32 entradas
Problema 8
Dado un hipottico computador con memoria virtual
paginada con un espacio de direcciones virtuales de
64 KB, una memoria fsica de 8 KB. En este
computador, que direcciona la memoria por bytes, el
nmero de pginas por proceso es como mximo de
Estructura de Computadores
ARCOS @ UC3M 2010-2011 46
nmero de pginas por proceso es como mximo de
512. En un instante de tiempo dado, la tabla de
pginas del proceso en ejecucin contiene la siguiente
informacin:
Problema 8 (cont.)
Se pide:
Calcule el tamao de cada pgina y el nmero de
marcos de pgina.
Cuntas pginas tiene asignadas el proceso en
ejecucin?
Para qu se utiliza el bit M?
Indique el formato de las direcciones virtuales
1 0 000010
1 0 000001
1 0 000110
1 1 000000
1 0 000100
1 0 000011
P M marco/bloque
Estructura de Computadores
ARCOS @ UC3M 2010-2011 47
Indique el formato de las direcciones virtuales
especificando el tamao de los campos y el
significado de cada uno.
Indique las direcciones fsicas, en decimal y
hexadecimal, correspondientes a las direcciones
virtuales 258 y 1973 expresadas ambas en decimal.
Por qu una referencia a la memoria virtual suele
requerir dos accesos a memoria fsica? Conoce
alguna tcnica para evitar duplicar el tiempo de
acceso en esquemas de memoria virtual?
1 0 000011
0 0 000100
0 0 000010
0 0 000110
1 0 000101
0 0 000000
1 0 000111
0 0 000011
0 0 000101
0 0 000001
1 1 000111
Solucin
a) Calcule el tamao de cada pgina y el nmero de marcos de pgina.
Si hay 64 KB de espacio virtual (2
16
bytes) y como mximo hay 512 (2
9
)
pginas por proceso, el tamao de la pgina ser de 2
16
/2
9
= 2
7
bytes =
128 bytes.
Estructura de Computadores
ARCOS @ UC3M 2010-2011 48
b) Cuntas pginas tiene asignadas el proceso en ejecucin?
Como el tamao de marco es igual al de la pgina y hay 8 KB (2
13
) de
memoria fsica, el nmero de marcos ser de 2
13
/2
7
= 2
6
marcos de
pgina.
El nmero de pginas asignado al proceso coincide con el nmero de
entradas que hay en la tabla de pginas, que es de 16.
Solucin
c) Para qu se utiliza el bit M?
El bit M se utiliza para indicar si la pgina ha sido modificada o no.
d) Indique el formato de las direcciones virtuales especificando el tamao de
los campos y el significado de cada uno
Estructura de Computadores
ARCOS @ UC3M 2010-2011 49
El formato de la direccin virtual quedara as:
Como el tamao de la pgina es de 128 bytes = 2
7
bytes, el nmero de
pginas ser 2
16
/2
7
= 2
9
pginas. Por tanto, se necesitan 9 bits para
direccionar el nmero de pgina y 7 para direccionar el byte dentro de la
pgina.
N pgina (9 bits) Desplazamiento (7 bits)
Solucin
e) Indique las direcciones fsicas, en decimal y hexadecimal, correspondientes a
las direcciones virtuales 258 y 1973 expresadas ambas en decimal
Dir. Virtual 258
10
= 100000010
2
, el desplazamiento son los 7 ltimos bits
(0000010) y el resto es el nmero de pgina (10
2
=2
10
). Esta direccin se
corresponde con la pgina 2. El contenido de la entrada nmero 2 de la tabla
de pginas (la tercera fila) es 000110
2
la direccin fsica se obtiene
concatenando el marco de pgina con los ltimos 7 bits de la direccin:
Estructura de Computadores
ARCOS @ UC3M 2010-2011 50
concatenando el marco de pgina con los ltimos 7 bits de la direccin:
0001100000010
2
= 770
10
= 302
16
Dir. Virtual 1973
10
= 11110110101
2
, el desplazamiento son los 7 ltimos bits
(0110101) y el resto el nmero de pgina (1111
2
= 15
10
). Esta direccin se
corresponde con la pgina 15 del proceso, la ltima entrada de la tabla cuyo
marco de pgina asignado es 000111
2
la direccin fsica quedara:
0001110110101
2
= 949
10
= 3B5
6
Solucin
f) Por qu una referencia a la memoria virtual suele requerir dos accesos a
memoria fsica? Conoce alguna tcnica para evitar duplicar el tiempo de
acceso en esquemas de memoria virtual?
En principio toda referencia a memoria virtual requiere dos accesos a la
memoria fsica: uno para acceder al elemento de la tabla de pginas y
otro para acceder a la memoria fsica. Para evitar este inconveniente se
Estructura de Computadores
ARCOS @ UC3M 2010-2011 51
otro para acceder a la memoria fsica. Para evitar este inconveniente se
utiliza una cache especial para los elementos de la tabla de pginas
llamada TLB (Traslation Lookaside Buffer).
Problema 9
Sea un computador que utiliza pginas de 8 KB y que
direcciona la memoria por bytes. Dada la direccin virtual de
0x20018004 indicar el tamao de la direccin virtual as como
el nmero de pgina y el desplazamiento dentro de la pgina a
la que hacen referencia.
Estructura de Computadores
ARCOS @ UC3M 2010-2011 52
Solucin
a) tamao de la direccin virtual
Este computador tiene direcciones de 32 bits por tanto el tamao de la
direccin virtual es de 32 bits
b) pgina y desplazamiento en la direccin virtual 0x20018004
Primero obtenemos el formato de la direccin virtual.
Estructura de Computadores
ARCOS @ UC3M 2010-2011 53
Primero obtenemos el formato de la direccin virtual.
32 bits
Id. de pgina desplazamiento
Log
2
(8 KB) = 13 bits 32-13 = 19 bits
Solucin
b) pgina y desplazamiento en la direccin virtual 0x20018004
Ahora separamos en binario los bits del desplazamiento y de la pgina
0x20018004 0010 0000 0000 0001 1000 0000 0000 0100
0010 0000 0000 0001 1000 0000 0000 0100
Desplazamiento: 0 0000 0000 0100 = 4
Estructura de Computadores
ARCOS @ UC3M 2010-2011 54
Desplazamiento: 0 0000 0000 0100 = 4
Identificador de pgina: 0010 0000 0000 0001 100 = 65548
Problema 10
Considere un computador que emplea direcciones virtuales de
32 bits con pginas de 8 KB.
Se pide:
Formato de la direccin virtual
Nmero mximo de entradas que puede tener una tabla de pginas
de un nico nivel
Estructura de Computadores
ARCOS @ UC3M 2010-2011 55
de un nico nivel
Dado el siguiente fragmento de cdigo:
y suponiendo que no hay ninguna pgina en memoria fsica y que los datos e
instrucciones se almacenan en pginas distintas, indicar el nmero mnimo de
fallos de pgina que se produce cuando se ejecuta dicho fragmento.
int a[1000000]
for(j=1; j < 890000; j++){
a[j]=a[j-1]+1;
}
Solucin
a) Formato de la direccin virtual
Este computador tiene direcciones de 32 bits y tamao de pgina de 8KB
32 bits
Id. de pgina desplazamiento
Estructura de Computadores
ARCOS @ UC3M 2010-2011 56
b) Nmero de entradas en la tabla de pginas.
Si la tabla de pginas es de un solo nivel debe existir tantas entradas como
pginas virtuales existan. Por tanto, dado hay 19 bits para identificar la
pgina hay 2^19 pginas, y por tanto 2^19 entradas.
Log
2
(8 KB) = 13 bits 32-13 = 19 bits
Solucin
c) Nmero mnimo de fallos de pgina
c.1 ) Debido a datos
int a[1000000]
for(j=1; j < 890000; j++){
a[j]=a[j-1]+1;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 57
c.1 ) Debido a datos
El cdigo accede a 890000 elementos de tipo int y cada int ocupa 4 bytes.
Por tanto el tamao total de los datos accedidos es 890000*4 = 3560000
bytes
Cada pgina ocupa 8 KB lo que quiere decir que cada vez que hay un fallo
de pgina se transfiere desde disco a MP una pgina de 8KB. El nmero de
pginas que se necesita para almacenar los elementos a[0]..a[889999] es:
Tamao datos / Tamao pgina = 3560000 / 8192 = 434,57 ~ 435 pginas.
Solucin
c) Nmero mnimo de fallos de pgina
c.2 ) Debido a instrucciones
int a[1000000]
for(j=1; j < 890000; j++){
a[j]=a[j-1]+1;
}
Estructura de Computadores
ARCOS @ UC3M 2010-2011 58
c.2 ) Debido a instrucciones
Con la primera instruccin se produce un fallo de pgina. En cada fallo de
pgina nos transferimos 8192 B / 4B = 2048 instrucciones. Dado que el
cdigo tiene muy pocas instrucciones mquina, el resto de instrucciones no
producen fallos de pgina. Por tanto 1 fallo de pgina debido a
instrucciones.
N total de fallos = Fallos debido a Instrucciones + Fallos debido a datos =
435 + 1 = 436
Ejercicios
Jerarqua de Memoria
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniera Informtica
Universidad Carlos III de Madrid

Вам также может понравиться