Ejercicios Jerarqua de Memoria
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniera Informtica
Universidad Carlos III de Madrid
Contenidos
1. Memoria cach
CPU cacheMemoria
principal
Estructura de Computadores
ARCOS @ UC3M 2010-20112
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
Tfallo: tiempo servir un fallo
Pacierto: tasa de acierto de la cach
Pacierto 1-Pacierto
1.- Casos
Estructura de Computadores
ARCOS @ UC3M 2010-20114
Tca Tca+Tfallo
Tavg = Pacierto* Tca + (1-Pacierto) * (Tca+Tfallo)
2.-Tiempo
Solucin
a) Sustituyendo en la frmula:
Tavg = Pacierto* Tca + (1-Pacierto) * (Tca+Tfallo)
Se tiene:
Estructura de Computadores
ARCOS @ UC3M 2010-20115
Tavg = 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:
Tavg = 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
Tfallo: tiempo servir un fallo
Pacierto: tasa de acierto de la cach
Pacierto 1-Pacierto
1.- Casos
Estructura de Computadores
ARCOS @ UC3M 2010-20117
Tca Tca+Tfallo
Tavg = Pacierto* Tca + (1-Pacierto) * (Tca+Tfallo)
2.-Tiempo
Solucin
a) Sustituyendo en la frmula:
Tavg = Pacierto* Tca + (1-Pacierto) * (Tca+Tfallo)
Se tiene:
Estructura de Computadores
ARCOS @ UC3M 2010-20118
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 Mbytesy 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-201110
Solucin
a) La estructura de la cach sera la siguiente:
La memoria cach tiene un tamao de 16 KB = 214 bytes.
Cada lnea tiene 64 bytes = 26 bytes.
Cada conjunto tiene 4 lneas, por tanto el tamao de cada conjunto es de 26 x 22 = 28 = 256 bytes.
El nmero de conjuntos de la cach es de 214 / 28 = 26 conjuntos.
Estructura de Computadores
ARCOS @ UC3M 2010-201111
El nmero de conjuntos de la cach es de 214 / 28 = 26 conjuntos.
datosetiqueta
datosetiqueta
datosetiqueta
datosetiqueta
datosetiqueta
datosetiqueta
Va 0 Va 1
datosetiqueta
datosetiqueta
datosetiqueta
Va 2
datosetiqueta
datosetiqueta
datosetiqueta
Va3
26 - 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 1F000y 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-201113
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
Solucina) 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-201114
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.
Solucina) 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-201115
Solucina) 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-201116
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.
Solucina) 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-201117
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-201118
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 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: beq $t0 $t1 fin_bucle
Estructura de Computadores
19
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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-201121
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 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
ARCOS @ UC3M 2010-2011
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
1 +
2
= 6 + 100 * 5 +1 + 2 = 509
ARCOS @ UC3M 2010-2011
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
Fallo de cach
Acierto de cach
ARCOS @ UC3M 2010-2011
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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-201129
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: beq $t0 $t1 fin_bucle
sw $t0 ($t2)
Calcular Pd:
30
sw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
ARCOS @ UC3M 2010-2011
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
Qu hace esa instruccin?
ARCOS @ UC3M 2010-2011
Solucin:li $t0 0li $t1 100la $t2 vectormul $t3 $t1 4addu $t2 $t2 $t3subu $t2 $t2 4bucle: 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 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10syscall
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-201133
N instrucciones = Tamao lnea / Tamao integer = 16/4 = 4 elementos del vector
Solucin:
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10
04812
1620
24
2832
36
401) sw $t0 ($t2) #$t2=64
34
40444852
5660
64
6872
76
1) sw $t0 ($t2) #$t2=64
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10
04812
1620
24
2832
36
401) sw $t0 ($t2) #$t2=64
35
40444852
5660
64
6872
76
1) sw $t0 ($t2) #$t2=64Fallo de cach
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
04812
1620
24
2832
36
40
36
1) sw $t0 ($t2) #$t2=64Fallo de cach
2) sw $t0 ($t2) #$t2=60Fallo de cach
40444852
5660
64
6872
76
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
04812
1620
24
2832
36
40
37
1) sw $t0 ($t2) #$t2=64Fallo de cach dir. 64-79
2) sw $t0 ($t2) #$t2=60Fallo de cach dir: 60-75
40444852
5660
64
6872
763) sw $t0 ($t2) #$t2=56Fallo de cach dir: 56-71
ARCOS @ UC3M 2010-2011
Solucin:
bucle: beq $t0 $t1 fin_buclesw $t0 ($t2)subu $t2 $t2 4addi $t0 $t0 1b bucle
fin_bucle: li $v0 10
1) sw $t0 ($t2) #$t2=64
n
24
2832
36
40
38
1) sw $t0 ($t2) #$t2=64Fallo de cach dir. 64-79
2) sw $t0 ($t2) #$t2=60Fallo de cach dir: 60-75
40444852
5660
64
6872
763) sw $t0 ($t2) #$t2=56Fallo 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-201139
primero
Tasa de fallos = 100% fallo
Contenidos
1. Memoria cach
CPU cacheMemoria
principal
Estructura de Computadores
ARCOS @ UC3M 2010-201140
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-201142
log2(2k) = 11 bits32-11 = 21 bits23
Nmero mximo de pginas:
Con 21 bits se pueden identificar hasta 221 pginas,es decir 220 * 21 , 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?
216 -> 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-201144
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-201145
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 memoriavirtual?
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-201146
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 0000101 0 0000011 0 0001101 1 0000001 0 0001001 0 000011
P M marco/bloque
Estructura de Computadores
ARCOS @ UC3M 2010-201147
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 0000110 0 0001000 0 0000100 0 0001101 0 0001010 0 0000001 0 0001110 0 0000110 0 0001010 0 0000011 1 000111
Solucin
a) Calcule el tamao de cada pgina y el nmero de marcos de pgina.
Si hay 64 KB de espacio virtual (216 bytes) y como mximo hay 512 (29) pginas por proceso, el tamao de la pgina ser de 216/29 = 27 bytes = 128 bytes.
Estructura de Computadores
ARCOS @ UC3M 2010-201148
b) Cuntas pginas tiene asignadas el proceso en ejecucin?
Como el tamao de marco es igual al de la pgina y hay 8 KB (213) de memoria fsica, el nmero de marcos ser de 213/27 = 26 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-201149
El formato de la direccin virtual quedara as:
Como el tamao de la pgina es de 128 bytes = 27 bytes, el nmero de pginas ser 216/27 = 29 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 25810 = 1000000102 , el desplazamiento son los 7 ltimos bits (0000010) y el resto es el nmero de pgina (102=210). Esta direccin se corresponde con la pgina 2. El contenido de la entrada nmero 2 de la tabla de pginas (la tercera fila) es 0001102 la direccin fsica se obtiene concatenando el marco de pgina con los ltimos 7 bits de la direccin:
Estructura de Computadores
ARCOS @ UC3M 2010-201150
concatenando el marco de pgina con los ltimos 7 bits de la direccin:
00011000000102= 77010 = 30216
Dir. Virtual 197310= 111101101012, el desplazamiento son los 7 ltimos bits (0110101) y el resto el nmero de pgina (11112= 1510). Esta direccin se corresponde con la pgina 15 del proceso, la ltima entrada de la tabla cuyo marco de pgina asignado es 0001112 la direccin fsica quedara:
00011101101012= 94910 = 3B56
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-201151
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-201152
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-201153
Primero obtenemos el formato de la direccin virtual.
32 bits
Id. de pgina desplazamiento
Log2(8 KB) = 13 bits32-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-201154
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-201155
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-201156
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.
Log2(8 KB) = 13 bits32-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-201157
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-201158
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
Top Related