ESTRUCTURA DE COMPUTADORES PROBLEMAS DEL TEMA 1

ESTRUCTURA DE COMPUTADORES PROBLEMAS DEL TEMA 1 7.- Un memoria tiene 16 Mbytes de capacidad con palabras de 32 bits y trabaja con una memoria caché ...
1 downloads 1 Views 100KB Size
ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

7.- Un memoria tiene 16 Mbytes de capacidad con palabras de 32 bits y trabaja con una memoria caché de 256 Kb dividida en 256 bloques agrupados en conjuntos de 2. a. ¿Cuántos bits hay en cada uno de los campos de dirección de memoria? b. Si a partir de cierto momento la secuencia de direcciones solicitadas por la CPU es 0x050010, 0x00FE01, 0x108010, 0x000010, 0x00EF00, 0x10801A, 0x1F00F1, 0x0A080F, 0x0FFF25, 0x25EF4F, 0x0ABDE3, 0x0FFF43, 0x0A080F, 0x0080DE. Explicar razonadamente cuál será la evolución de los registros de etiqueta de los bloques de memoria caché afectados suponiendo que el algoritmo de reemplazo usado es el L.R.U.. Especificar la evolución de los contadores de uso de cada uno de estos bloques. Supóngase que inicialmente los bloques afectados de memoria caché están vacíos.

Memoria cache 256 Kb ⇒ 256 bloques de 1Kb. Memoria principal 16 Mb ⇒ 16 K bloques de 1 Kb. Nº de conjuntos = 256/2 = 128 conjuntos de 2 bloques Si el tamaño de palabra es 32 bits las direcciones de memoria serán de 22 bits, o sea tengo una memoria de 4 Mpalabras de 32 bits por palabra El formato de dirección de memoria será: Etiqueta (7 bits)

Conjunto (7 bits)

Palabra (8 bits)

Para las direcciones indicadas tendremos: Dirección 050010H 00FE01H 108010H 000010H 00EF00H 10801AH 1F00F1H 0A080FH 0FFF25H 25EF4FH 0ABDE3H 0FFF43H 0A080FH 0080DEH

Etiqueta 0AH 01H 21H 00H 01H 21H 3EH 14H 1FH 4BH 15H 1FH 14H 01H

Conjunto 00H 7EH 00H 00H 6FH 00H 00H 08H 7FH 6FH 3DH 7FH 08H 00H

Palabra 10H 01H 10H 10H 00H 1AH F1H 0FH 25H 4FH E3H 43H 0FH DEH

Los conjuntos involucrados son: 00H, 08H, 3DH, 6FH, 7EH y 7FH La evolución del contenido de los bloques de la cache es la siguiente:

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

00 08 3D 6F 7E 7F

1 0A 1 1 1 1 1 1 1 1 1 1 1

2 1 2 2 2 2 2 2 2 01 2 2 2

3 2 21 3 3 3 3 3 3 1 3 3 3

4 00 1 4 4 4 4 4 4 2 4 4 4

PROBLEMAS DEL TEMA 1

5 1 2 5 5 5 5 01 5 3 5 5 5

6 2 0 6 6 6 6 6 6 4 6 6 6

7 3E 1 7 7 7 7 2 7 5 7 7 7

8 1 2 14 8 8 8 3 8 6 8 8 8

HOJA Nº 2

9 2 3 1 9 9 9 4 9 7 9 1F 9

10 3 4 2 10 10 10 5 4B 8 10 1 10

11 4 5 3 11 15 11 6 1 9 11 2 11

12 5 6 4 12 1 12 7 2 10 12 0 12

13 6 7 5 14 2 13 8 3 11 13 1 13

14 7 01 6 1 3 14 9 4 12 14 2 14

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

8. Sea un ordenador con una memoria de 1 Mb de capacidad y longitud de palabra de 32 bits. Esta máquina tiene una memoria caché de 16 Kb dividida en bloques de 64 bytes. Supongamos que, a partir de un cierto momento, la secuencia de direcciones solicitadas por la CPU es : 0x01FCA, 0x05FCD, 0x0D7C0, 0xD5C7, 0x027C4, 0x04FCB, 0x155C4, 0x04FC0, 0x077C3, 0x047C0, 0x185C3. Las funciones de mapa que pueden usarse son: i. Correspondencia directa ii. Correspondencia asociativa iii. Correspondencia asociativa por conjuntos de 2 vias c. ¿Cuántos bits tiene cada uno de los campos de dirección en cada caso? d. Comparar las funciones de mapa utilizando el algoritmo de reemplazo LRU

Tamaño bloque 64 bytes ( 24 palabras de 32 bits) ⇒ campo palabra de 4 bits Nº de bloques en caché : 28 bloques Nº de bloques en memoria principal : 214 bloques Entonces tendremos los siguientes formatos : Etiqueta 6 bits Bloque 8 bits Palabra 4 bits



Directa :



Asociativa :



Asociativa por conjuntos de 2 bloques

Etiqueta 14 bits Palabra 4 bits

Etiqueta 7 bits Conjunto 7 bits Palabra 4 bits Vamos a ver la evolución de la caché al ejecutar el programa anterior en los tres supuestos: Directa: Bloques 1 2 3 4 5 6 5C 0D 0D 0D 7C 0D 0D 02 02 FC 01 05 05 05 05 04 Se producen 3 faltas frías y 7 faltas por conflicto.

7 15 02 04

8 15 02 04

9 15 07 04

10 15 04 04

11 18 04 04

Asociativa: en este caso si partimos de la caché vacía se producen 10 faltas frías. Asociativa por conjuntos de 2 vias: Conjunto 1 2 3 4 1ª 5C

5

6 1ª

7 1ª

1ª 2ª 03 03 1A 1A 1A 09 09 7C 0B 0B 0B 04 04 04 En este caso tenemos 4 faltas frías y 6 faltas por conflicto.

HOJA Nº 2

8

9 1ª 2ª 09 04

1ª 2ª 09 0E

10 1ª 2ª 08 0E

11 30 2ª 08 0E

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

9.- Se dispone de un computador con memoria principal de 16 Mpalabras y tiempo de acceso de 100 ns y una memoria caché con organización asociativa por conjuntos con las siguientes características: tiempo de acceso 40 ns, 512 conjuntos, 2 bloques por conjunto, 4 palabras por bloque, política de reemplazo FIFO, lectura siempre a través de la caché y postescritura con ubicación en escritura (escribe primero en la caché y cuando se desaloja el bloque escribe en memoria principal). En un instante determinado se empieza a ejecutar el siguiente fragmento de programa: ADD (R1),(R2) INC R2 ADD (R1),(R2) CALL RUTINA …......... RUTINA: PUSH R3 En ese instante inicial el contenido de los registros y direcciones implicadas es el siguiente: R1= 0x808, R2= 0x814, R3= 0x52, PC= 0x10, SP= 0x1810, RUTINA= 0x1008 En ese instante el contenido de la caché es el siguiente: Conjunto 2 Conjunto 3 Conjunto 4 Etiqueta bloque 1 (*) 8 0 (*) 1 Etiqueta bloque 0 2(*) 2 2

Conjunto 5 1 3 (*)

Donde (*) indica el bloque mas antiguo del conjunto. • •

Generar la traza de este fragmento de programa. Indicar el tiempo que tarda en ejecutarse el fragmento de programa considerado, si tenemos en cuenta que el tiempo que tarda en ejecutar las instrucciones aritméticas es de 10 ns y que todas las instrucciones ocupan una palabra de memoria.

A partir de los datos iniciales tendremos: • • •

Bloque: 4 palabras = 22 ; luego el campo de palabra es de 2 bits Cache: 512 conjuntos = 29 ; luego el campo de conjunto será de 9 bits Memoria principal: 16Mpalabras ⇒ 224 palabras ⇒ 222 bloques ⇒ 213 bloques/conjunto ; luego el campo de etiqueta tiene 13 bits

Etiqueta 13 bits Conjunto 9 bits Palabra 2 bits Vamos a ver como evoluciona la memoria caché al ir ejecutando el programa: Dirección 000010 000808

Etiqueta 0 1

Conjunto 4 2

Palabra 0 0

HOJA Nº 2

Acción Leer instrucción Leer operando (r1)

PC 011 011

ESTRUCTURA DE COMPUTADORES

000814 000808 000011 000012 000808 000815 000808 013 00180F 001008 00180E

1 1 0 0 1 1 1 0 3 2 3

Conjuntos Inic. 10 2 1 0 3 8 2 4 0 0 2 5 1 3 L

PROBLEMAS DEL TEMA 1

5 2 4 4 2 5 2 4 3 2 3

0 0 1 2 0 1 0 3 3 1 2

808 814 808 11 1 1

Leer operando (r2) Escribir resultado (r1) Leer instrucción Leer instrucción Leer operando (r1) Leer operando (r2) Escribir resultado Leer instrucción Guardar PC en pila Leer instrucción Guardar R3 en pila 12

808 815 808 13 1 1

011 011 012 013 013 013 013 014 01008 01009 01009

180F 1008 180E 2

3 0

0

1 L

L

3

0 1

E

L

L

L

L

E

L

E

L

Para la segunda pregunta tendremos:

Instrucción Dirección ADD 000010 000808 000814

INC ADD

CALL

PUSH

000808 013 00180F

Acción Leer instrucción Leer operando (r1) Leer operando (r2) Sumar Escribir resultado (r1) Leer instrucción Incrementar Leer instrucción Leer operando (r1) Leer operando (r2) Sumar Escribir resultado Leer instrucción Guardar PC en pila

Tiempo 40 40 40 10 40 40 10 40 40 40 10 40 40 40

001008

Leer instrucción

40

Fallo 100+ 100 + 40 (+) Fallo 100 +40

00180E

Guardar R3 en pila Total

40 550 ns +

380 ns

000808 000011 000012 000808 000815

HOJA Nº 2

Observaciones

E

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

(+) Suponemos que en 100 ns se reescribe el bloque descargado en la memoria principal, en otros 100 ns se carga el bloque de memoria principal en la cache. Y luego se vuelve a leer la palabra de nuevo.

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

10.Sea un sistema dotado de memoria cache de código de 8Kpalabras con correspondencia asociativa por conjuntos de dos bloques y 512 bloques de capacidad. El tiempo de acceso a la memoria principal es de 1 μs y el de acceso a la cache de 100 ns. En este sistema se ejecuta un programa cuyo código se extiende desde la dirección 00400H hasta la 03500H. En este programa existen dos bucles anidados; el mas interno se ejecuta 10 veces y comprende desde la dirección 012FDH a la 014E0H; el bucle exterior se ejecuta 2 veces y sus instrucciones se encuentran entre las direcciones 00F00H y 030F0H. Dentro del bucle mas interno se accede a 5 variables dos veces y al principio se accede a estas variables una sola vez. Suponiendo que el código es lineal: • ¿Cuánto tiempo se empleará en la ejecución del programa si no está instalada la memoria cache? • Calcular el índice de aciertos para este programa cuando se instala una memoria cache con el algoritmo FIFO • ¿Cuánto tiempo se empleará en leer las instrucciones del programa con la cache instalada ?

Tenemos 256 conjuntos y bloques de 16 palabras, como las direcciones de memoria principal son de 20 bits, las direcciones de memoria tienen el siguiente formato: Etiqueta (8 bits)

Conjunto (8 bits)

Palabra (4 bits)

La estructura del programa es la siguiente: Inicio:

Bucle:

Bucle1: Fin Bucle1

Fin Bucle

Fin

00400H ----00EFFH 00F00H -----012FCH 012FDH --(10 veces)--014E0H 014E1H ---(2 veces)-030F0H 030F1H ----03500H

El número de instrucciones a ejecutar es: Parte A: Parte B Parte C Parte D Parte E

De 00400H a 00EFFH tenemos : 11x 256 = 2816 instrucciones De 00F00H a 012FCH tenemos : 3FCH = 1020 instrucciones De 012FDH a 014E0H tenemos : 1E3H = 483 instrucciones De 014E1H a 030F0 tenemos : 1C0FH = 7183 instrucciones De 030F1H a 03500H tenemos : 40FH = 1039 instrucciones

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

En total tendremos: 2816 + 2x(1020 + 10x 483 + 7183) + 1039 = 29921 instrucciones Además tenemos accesos a la memoria para leer las variables , el total de accesos por datos es : 5 + 10x5x2 = 105 accesos a memoria. El nº total de accesos a memoria principal es de 30131 por tanto el tiempo total es 30131 µseg. Para el segundo punto vamos a comprobar la evolución de la memoria caché al ejecutar el programa: Conjunto

Parte A

00

Parte B 01

01

0F

EF

03 02

01

02 03

Parte E

03

03 01

03 02

01

03 02 02

00 01

00

03

02 01

00

00 00

00

FF 176

03 02 01 02 01

00

F0

Fallos

01

Parte D2 02 03

02

3F

50

Parte C2

01

30

4F

Parte B2

02

2F

4E

Parte D 03 02

01

10

40

Parte C

64

31

03 03

02 01 02 01

00

01 02

02 01 449

00 32

01 02 64

0

65

Al comenzar a ejecutar el programa se producen fallos por inicialización hasta llenar la caché (512 fallos) . En ese momento se ha ejecutado hasta la instrucción 023FF, a partir de

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

ahí se producen fallos por conflicto que pondremos en las columnas sucesivas. Al final del bucle externo tendremos en la caché la situación indicada en la segunda columna.

El nº total de fallos es de 949 Nº de referencias = 29921 Indice de aciertos = (29921-949)/29921 = 0,97 En cuanto a la tercera pregunta el tiempo requerido será: 896 * 1 μs + 29921 * 100ns = 3888,1 μs

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

11.- Un computador tiene una memoria principal de 64Kpalabras de 16 bits. También tiene una memoria caché totalmente asociativa de 2Kpalabras y 256 palabras por bloque. Suponemos que la caché está inicialmente vacía y que el algoritmo de reemplazo es MRU (Most Recently Used, más recientemente usado). Suponemos que la CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la dirección 0 a la 2300. Si la caché es 7 veces más rápida que la memoria principal, se pide: a) Formato de direcciones de memoria. b) Calcular el tiempo que se tarda en realizar estos accesos a memoria principal si el computador no tuviera memoria caché. c) Evolución de la memoria caché al ejecutar los bucles. d) Calcular cuántos fallos de caché se producen y sus causas e) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria caché y luego se lee el dato de la caché, calcular el tiempo que tarda la CPU en realizar estos accesos a memoria.

Problemas de estructura y tecnología de computadores. S. Dormido y otros prob. 2-13

a) Las direcciones son de 16 bits al tener 64 Kpalabras. El campo de palabra es de 8 bits porque cada bloque tiene 256 palabras. La memoria principal tiene 256 bloques, por tanto el campo de etiqueta es de 8 bits. Etiqueta (8 bits)

Palabra (8 bits)

b) Si el tiempo de acceso a caché tc , a memoria principal será de 7 tc . Por lo que el tiempo total será : 2301x7 tc x5 c) Vamos a construir una tabla auxiliar para ver los bloques que intervienen en el bucle. Direcciones en decimal 0-255 256-511 512-767 768-1023 1024-1279 1280-1535 1536-1791 1780-2047 2048-2303

Direccional en hexadecimal 0000-00FF 0100-01FF 0200-02FF 0300-03FF 0400-04FF 0500-05FF 0600-06FF 0700-07FF 0800-08FF

Etiqueta de bloque 00 01 02 03 04 05 06 07 08

La caché tiene 8 bloques (2Kpalabras/256 palabras/bloque). Su evolución es la siguiente: Bloque caché 0 1 2 3 4 5 6 7

Bucle 1 0 1 2 3 4 5 6 7/8

Bucle 2 0 1 2 3 4 5 6/7 8

Bucle 3 0 1 2 3 4 5/6 7 8

HOJA Nº 2

Bucle 4 0 1 2 3 4/5 6 7 8

Bucle 5 0 1 2 ¾ 5 6 7 8

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

En el bucle 1 al llegar el bloque 8 desaloja al último que se ha usado que es el 7. En los demás bucles el problema es similar. d) Según la tabla anterior se producen 8 fallos en frío y 5 fallos por capacidad. e) En cada acceso fallido se tiene que cargar la caché con el bloque en cuestión y luego se vuelve a acceder a la caché para leer la palabra. Tendremos pues dos componentes en el tiempo total: • Tiempo de lectura de las 2301x5 palabras en caché = 2301x5xtc • Tiempo de carga de los bloques en cache = 13x256x7tc Tiempo total = (2301x5 + 13x256)xtc

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

12.- Un computador tiene una memoria principal de 32Kpalabras de 16 bits. Tiene también una cache de 4K palabras dividida en conjuntos de 4 bloques con 64 palabras por bloque. Suponemos que la cache está inicialmente vacía. El procesador lee palabras de las posiciones 0, 1, 2, … , 4351 en este orden. Entonces repite esta secuencia de lectura 9 veces mas. La cache es 10 veces mas rápida que la memoria principal. Estime la mejora resultante por el uso de la memoria cache, suponiendo una política LRU de reemplazo de bloques.

Problemas de estructura y tecnología de computadores. S. Dormido y otros prob. 2-8

El tamaño del bloque es de 64 palabras = 26 ; luego el campo de palabra es de 6 bits. La caché tiene 4K palabras = 212 ; luego tiene 64 bloques y 16 conjuntos; por tanto el campo de conjunto tiene 4 bits. La memoria principal tiene 32K palabras = 215 ; luego tiene 512 bloques y 32 bloques por conjunto ; por tanto el campo de etiqueta es de 5 bits. El formato de direcciones será pues: Etiqueta (5 bits)

Conjunto (4 bits)

Palabra (6 bits)

Si no tenemos instalada la memoria caché, llamando 10T al tiempo de acceso a memoria principal, tendremos que el tiempo que tarda en ejecutarse el programa es: TMP = 4352 x 10 x 10T = 435.200T Si tenemos memoria caché el tiempo total será el que corresponde a la lectura en memoria caché (suponemos que siempre lee de la caché), mas el tiempo de gestión de fallos . En este sentido podemos suponer que el tiempo de escritura del bloque en la caché se superpone con el de lectura en memoria principal y que el tiempo de búsqueda de etiquetas en la caché es despreciable al tratarse de memoria asociativa.

Conjunto 0

Conjunto 1

Conjunto 2

Conjunto 3

Conjunto

B1 0 /64 16 32 48 1/65 17 33 49 2/66 18 34 50 3/67 19 35 51 4

B2 64/48

B3

B4

etc

16/0/64 32/16 48/32 65/49 17/1/65 33/17 49/33 66/50 18/2/66 34/18 50/34 67/51 19/3/67 35/19 51/35 4

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

4

20 36 52

20 36 52

Conjunto 15

15 31 47 63

15 31 47 63

PROBLEMAS DEL TEMA 1

Las 4352 primeras palabras corresponden a 68 bloques de la caché. Como la caché sólo tiene 64 bloques se llenarán todos ellos y además tendremos que efectuar las lecturas correspondientes a los bloques 64, 65, 66, 67. que reemplazarán a los bloques 0,1,2 y 3 de los conjuntos 0,1,2,3. Suponemos que el tiempo necesario para traer un bloque desde la memoria principal a la caché es la suma del tiempo empleado en traer cada una de las palabras del bloque. El tiempo empleado en este primer bucle será la suma del tiempo que se tarda en traer todos los bloques a la caché, mas el tiempo de lectura de cada palabra en la caché, menos el tiempo de las 68 primeras palabras de cada bloque cuya lectura se superpone con la escritura del bloque en la caché . Tendremos pues:

T1 = 4352 palabras x 10T/palabra + 4352 palabras x 1T/palabra - 68 palabras x 1T/palabra = 47804 T Para los demás bucles como se producen 5 fallos de bloque en 4 conjunto tendremos: T2 = 5x4x64 palabras x 10T/palabra + 4352 x 1T/palabra – 20 palabrasx 1T/palabra = 17132 T Por tanto en total T = 47804 T + 9x 17132T = 201992T Luego la mejora total obtenida es

(435200- 201992) /435200 = 0.538 casi un 54%

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

13.- Un computador tiene una memoria principal de 64Kpalabras de 16 bits y una caché de 8K palabras con correspondencia asociativa por conjuntos de 4 líneas de 16 palabras cada una. La CPU ejecuta un programa que comienza en la dirección 4352 y termina en la dirección 12591 repitiendo la secuencia del programa 5 veces mas. Teniendo en cuenta que el algoritmo de reemplazo es el FIFO y que la memoria principal tiene un tiempo de acceso de 200 ns y la caché de 40 ns y además está vacía inicialmente. Se pide: a) Calcular el nº de bits que utiliza cada campo del registro de direcciones de la memoria principal. b) Calcular el nº de palabras que tiene el programa c) Calcular la cantidad de bloques que tiene el programa y los números de bloque que le corresponden en la memoria principal. d) Calcular la dirección de inicio y la dirección final de los primeros y los dos últimos bloques del programa, tal y como se encuentra ubicado en memoria principal. e) Calcular la correspondencia entre cada bloque de la memoria principal y el conjunto de la caché. f) Calcular el tiempo que tarda en ejecutarse el programa si no hubiera memoria caché. g) Calcular el tiempo que tarda en ejecutarse el programa con memoria caché. h) Calcular el % de mejora que supone la utilización de memoria caché. Nota: La primera palabra de cada bloque se transmite directamente a la CPU a la vez que se transmite el bloque entero a la memoria caché.

Estructura de computadores A. Soriano y otros pag. 168 a) Tenemos 16 palabras por bloque luego el campo de palabra es de 4 bits. El nº de bloques de la caché es de 213/16 = 29 = 512 . Luego el nº de conjunto es de 128 y por tanto el campo de conjunto es de 7 bits. Por último, el nº de bloques de memoria principal es 216/16 = 212 y a cada conjunto le corresponden 32 bloques por lo que el campo de etiqueta es de 5 bits. Etiqueta (5 bits) Conjunto (7 bits) Palabra (4 bits) b) Comienza en la 4352 y termina en la 12591 por tanto son 8240 palabras c) La dirección inicial es 4352 que es la palabra 0 del bloque 272 (dividiendo 4352 entre 16 se obtiene de cociente 272 y de resto 0). La dirección final es 12591 que es la palabra 15 del bloque 786. En total tiene 515 bloques. d) Las direcciones pedidas son: inicio272 = nº bloque X 16 = 272 x16 = 4352 final272 = nº bloque x 16 + 15 = 272x16+15 = 4367 inicio273 = 4368 final273 = 4383 inicio785 = 12560 final785 = 12575 inicio786 = 12576 final786 = 12591 HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

e) La correspondencia es asociativa por conjuntos luego a cada bloque de memoria principal se le asocia un bloque del conjunto que se obtiene calculando el resto de la división entera del nº de bloque de memoria principal y 128. f) En ausencia de caché el tiempo será = 8240x6x200 = 9888000 ns = 9.888 ms g) Tenemos que calcular los fallos de bloque al ejecutar el programa. En el primer bucle se rellena la caché como se indica en la primera columna de la tabla siguiente: Conjunto 0

15

16

17

18

19

127

Bucle1 384 512 640 768

Bucle 2 384 512 640 768

399 527 655 783 272/784 400 528 656 273/785 401 529 657 274/786 402 530 658 275 403 531 659

399 527 655 783 784/656 400/272/784 528/400 656/528 785/657 401/273/785 529/401 657/529 786/658 402/274/786 530/402 658/530 275 403 531 659

383 511 639 767

383 511 639 767

Bucle 3

Bucle 4

Bucle 5

Bucle 6

donde vemos que se comienza a llenar por el bloque 272 en el conjunto 16 y llena la cache totalmente y produce 3 fallos por conflicto en los bloques 784,785 y 786.

HOJA Nº 2

ESTRUCTURA DE COMPUTADORES

PROBLEMAS DEL TEMA 1

En el bucle 2 y los siguientes tenemos 5 fallos de bloque en 3 conjuntos . Por lo tanto los tiempos empleados serán : T1 = Tfallos + Taciertos = 8240 x 200 ns + (8240 x 40 ns – 515x40 ns) = 1,957 ms T2 = Tfallos + Taciertos = 5 x 3 x 16 x 200 ns + (8240 x 40 ns -5 x 3 x 40 ns) = 377μs Luego en total T = T1 + 5xT2 = 3.842 ms

h) Luego el porcentaje de mejora es (9.888-3.842)/9.888 = 0.6114 o sea el 61,1%

HOJA Nº 2