e5-problemas memoria v3

59
Ejercicios  Jerarquía de Memoria Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid

Upload: rey-arturo

Post on 14-Oct-2015

24 views

Category:

Documents


1 download

DESCRIPTION

e5-Problemas Memoria v3

TRANSCRIPT

  • 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