Ejercicios Arquitectura de Computadores

18
Universidad de C´ adiz Escuela Superior de Ingenier´ ıa Arquitectura de Computadores GII Oficial(Nope)

Transcript of Ejercicios Arquitectura de Computadores

Page 1: Ejercicios Arquitectura de Computadores

Universidad de CadizEscuela Superior de Ingenierıa

Arquitectura de Computadores

GII Oficial(Nope)

Page 2: Ejercicios Arquitectura de Computadores

Indice

Problemas del Tema 1 3Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Problemas del Tema 2 7Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Problema 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Problema 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Problemas del Tema 3 13Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Problema 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Problema 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Problemas del Tema 4 17Problema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Problema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2

Page 3: Ejercicios Arquitectura de Computadores

Problemas del Tema 1

Problema 1

Sean dos implementaciones diferentes de un mismo repertorio de instrucciones. Esterepertorio tiene cuatro tipos de instrucciones A, B, C y D donde:

F CPIA CPIB CPIC CPIDCPU1 1,5 GHz 1 2 3 4CPU2 2 GHz 2 2 2 2

Sea un programa con 106 instrucciones donde el 10 % es del tipo A, el 20 % de tipo B, 50 %de tipo C y el 20 % de tipo D.

1.- ¿Que implementacion es mas rapida?

2.- ¿Cual es el CPIglobal de cada implementacion?

3.- ¿Cuantos ciclos tarda el programa en cada implementacion?

Solucion:

NI=106

NI1 = 106 * 0.1 = 100000 NI2 = 106 * 0.2 = 200000

NI3 = 106 * 0.5 = 500000 NI4 = 106 * 0.2 = 200000

a)

TCPU =

n∑i=1

CPIi ∗NIi

F

TCPU1=

105 + 2 ∗ 105 ∗ 2 + 5 ∗ 105 ∗ 3 + 2 ∗ 105 ∗ 4

1,5 ∗ 109=

105(1 + 4 + 15 + 8)

1,5 ∗ 109=

2,8 ∗ 106

1,5 ∗ 109= 1,86ms

b)

CPIglobal =

n∑i=1

CPIi ∗NIi

NI=

2,8 ∗ 106

106=⇒ CPIglobal1 = 2,8 ciclos

=2 ∗ 106

106=⇒ CPIglobal2 = 2 ciclos

c)

CPP =

n∑i=1

CPIi ∗NIi =⇒ CPP1 = 2,8 ∗ 106

=⇒ CPP2 = 2 ∗ 106

3

Page 4: Ejercicios Arquitectura de Computadores

Problema 2

Sea un programa con los siguientes tipos de instrucciones y CPIs:

Aritmeticas Almacenamiento Carga SaltosNo Instrucciones 500 50 100 50

CPI 1 5 5 2

1.- ¿Cual es el tiempo de ejecucion en un procesador de 2 GHz?

2.- Calcula el CPIglobal.

3.- Si el numero de instrucciones de carga se reduce a la mitad, ¿en que factor se incrementala velocidad? ¿cual es el nuevo CPIglobal?

Solucion:

NI = 500 + 50 + 100 + 50 = 700

F = 2 * 109 Hz

a)

TCPU =

n∑i=1

CPIi ∗NIi

F

TCPU =1 ∗ 500 + 5 ∗ 50 + 5 ∗ 100 + 2 ∗ 50

2 ∗ 109=

1350

2 ∗ 109= 6,75 ∗ 10−7 s

b)

CPIglobal =

n∑i=1

CPIi ∗NIi

NI=

1350

700=⇒ CPIglobal = 1,92 ciclos

c)

TCPU′ =

1 ∗ 500 + 5 ∗ 50 + 5 ∗ 50 + 2 ∗ 50

2 ∗ 109=

1100

2 ∗ 109= 5,5 ∗ 10−7 s

TCPUA

TCPUB

=6,75 ∗ 107

5,5 ∗ 107= 1,23 Luego se incrementa la velocidad en un 23 %

CPIglobal′ =

500 + 250 + 250 + 100

650= 1,69 ciclos

4

Page 5: Ejercicios Arquitectura de Computadores

Problema 3

Sean dos programas diferentes con el siguiente numero de instrucciones:

Aritmeticas Almacenamiento Carga SaltosPrograma 1 1000 400 100 50Programa 2 1500 300 100 100

1.- Suponiendo que las instrucciones aritmeticas necesitan 1 ciclo, las de carga yalmacenamiento 10 ciclos y los saltos 3 ciclos. ¿Cual es el tiempo de ejecucion de cadaprograma en un procesador de 3 GHz?

2.- Suponiendo que las instrucciones de aritmeticas necesitan 1 ciclo, las de carga yalmacenamiento 2 ciclos y los saltos 3 ciclos. ¿Cual es el tiempo de ejecucion de cada programaen un procesador de 3 GHz?

3.- Suponiendo que las instrucciones aritmeticas necesitan 1 ciclo, las de carga yalmacenamiento 10 ciclos y los saltos 3 ciclos. ¿Cual es la aceleracion de un programa siel numero de instrucciones aritmeticas se reduce a la mitad?

Solucion:

F = 3 * 109 Hz

a)

TCPU =

n∑i=1

CPIi ∗NIi

F=

1 ∗ 1000 + (400 + 100) ∗ 10 + 50 ∗ 3

3 ∗ 109=

6150

3 ∗ 109=⇒ TCPU1

= 2,05µs

=1 ∗ 1500 + (300 + 100) ∗ 10 + 100 ∗ 3

3 ∗ 109=

5800

3 ∗ 109=⇒ TCPU2 = 1,9µs

b)

TCPU =

n∑i=1

CPIi ∗NIi

F=

1 ∗ 1000 + (400 + 100) ∗ 2 + 50 ∗ 3

3 ∗ 109=

2150

3 ∗ 109=⇒ TCPU1 = 0,716µs

=1 ∗ 1500 + (300 + 100) ∗ 2 + 100 ∗ 3

3 ∗ 109=

2600

3 ∗ 109=⇒ TCPU2

= 0,866µs

c)

TCPU =

n∑i=1

CPIi ∗NIi

F=

1 ∗ 500 + (400 + 100) ∗ 2 + 50 ∗ 3

3 ∗ 109=

5650

3 ∗ 109=⇒ TCPU1

= 1,833µs

=1 ∗ 750 + (300 + 100) ∗ 2 + 100 ∗ 3

3 ∗ 109=

5050

3 ∗ 109=⇒ TCPU2

= 1,683µs

TCPUA

TCPUB

=2,05

1,833= 1,12 Luego, se incrementa la velocidad en un 12 %

=1,9

1,683= 1,12 Luego, se incrementa la velocidad en un 12 %

5

Page 6: Ejercicios Arquitectura de Computadores

Problema 4

Sea un programa con 106 Problema 4 instrucciones y dos procesadores diferentes:

F CPIglobalCPU1 4GHz 1.25CPU2 3GHz 0.75

1.- Es un error considerar que el procesador de frecuencia mas elevada siempre va a tenermejores prestaciones. ¿Que ocurre en este problema?

2.- Otro error habitual se produce al utilizar la medida MIPS para comprobar las prestacionesde dos procesadores, y considerar que el procesador con el MIPS mas elevado es siempre elque tiene mejores prestaciones. ¿Que ocurre en este problema?

Solucion:

a) En este programa la CPU1 aunque posee mayor frecuencia , al tardar mas ciclos por cadainstruccion el programa se ejecuta mas lentamente

b)

MIPS =F

CPIglobal ∗ 106=

4 ∗ 109

1,25 ∗ 106=⇒MIPSCPU1

= 3200

=3 ∗ 109

0,75 ∗ 106=⇒MIPSCPU2 = 4000

6

Page 7: Ejercicios Arquitectura de Computadores

Problemas del Tema 2

Problema 1

Sea una cache de correspondencia directa con 16KB de datos y bloques de 4 palabras. Lapalabra es de 32 bits.

1.- ¿Cuantos bloques tendra la cache?

2.- ¿Cuantos bits tendra el Indice?

3.- ¿Cuantos bits tendra el campo etiqueta?

4.- ¿Cual es el tamano total de la cache? Aquı hay que tener presente tanto la capacidaddestinada a datos como la destinada a etiquetas.

Solucion:

a)16KB

4 ∗ 32b=

16KB

4 ∗ 4B=��16 ∗ 210B

��16B= 210 bloques = 1024 bloques

b) El ındice tendra 10 bits ( 210).

c)

El campo etiqueta tendra :

m− n−Blockoffset −Byteoffset = 32− 10− 2− 2 = 18 bits

m : Tamano direccion = 32 bits

n : Bits del ındice = 10 bits

Blockoffset = 4 palabras = 22 =⇒ 2 bits

ByteOffset = 32 bits = 4B = 22 =⇒ 2 bits

d)

Tamano cache = Capacidad de datos+ Tamano etiqueta

Asociativa/Conjuntos︷ ︸︸ ︷(Novıas ∗No ındices/conjuntos)

Tamano cache = 16 KB + 18 bits

7

Page 8: Ejercicios Arquitectura de Computadores

Problema 2

Sea una cache de correspondencia directa con 64 bloques, donde el tamano del bloque es deuna palabra (palabra = 32 bits).

1.- ¿Que capacidad tendra cada bloque de la memoria cache?

2.- ¿Cuantos bits tendra el Indice?

3.- ¿Cuantos bits tendra el campo etiqueta de la memoria cache?

4.- Se esta enviando un bloque de memoria principal a memoria cache: ¿En que posicion dela memoria cache se deberıa emplazar el bloque si la direccion del primer byte en memoriaprincipal es 120010?

5.- La direccion 120010 tiene 32 bits porque el bus de direcciones tiene 32 bits. Escribe esos32 bits e identifica cada una de las partes de la direccion: etiqueta, ındice, BLOCKoffset yBYTEoffset. ¿El valor que has obtenido en la parte que identifica el ındice coincide con elobtenido en la cuestion 4?

6.- Se esta enviando un bloque de memoria principal a memoria cache: ¿En que posicion dela memoria cache se deberıa emplazar el bloque si la direccion de ese bloque en memoriaprincipal es 910?

Solucion:

a)Capacidad bloque = Tamano bloque︸ ︷︷ ︸

1 palabra

∗Tamano palabra = 1 ∗ 32 bits = 4B

b)64 bloques = 26 =⇒ El ındice tendra 6 bits

c)

El campo etiqueta tendra :

m− n−BlockOffset −ByteOffset = 32− 6− 0− 2 = 24 bits

m : Tamano direccion = 32 bits

n : Bits del ındice = 6 bits

Blockoffset : 1 palabra/bloque = 20/bloque =⇒ Blockoffset = 0 bits

Byteoffset : Una palabra = 32 bits = 4B = 22 =⇒ Byteoffset = 2 bits

d)

Direccion bloque =Direccion Byte

No Bytes del bloque=

1200

4= 300 =⇒ 300 MOD 64 = 44

e)

120010 =

Etiqueta︷ ︸︸ ︷. . . 100

Indice︷ ︸︸ ︷101100 ︸︷︷︸

Blockoffset

Byteoffset︷︸︸︷00

Sı. El valor obtenido coincide con lo obtenido en el apartado anterior.

f)

9 MOD 64 = 9

8

Page 9: Ejercicios Arquitectura de Computadores

Problema 3

Sea una cache de correspondencia directa con 64 bloques, donde el tamano del bloque es de cuatropalabras (palabra = 32 bits).

1.- ¿Que capacidad tendra cada bloque de la memoria cache?

2.- ¿Cuantos bits tendra el Indice?

3.- ¿Cuantos bits tendra el campo etiqueta de la memoria cache?

4.- Se esta enviando un bloque de memoria principal a memoria cache: ¿En que posicion de lamemoria cache se deberıa emplazar el bloque si la direccion del primer byte en memoria principales 120010?

5.- La direccion 120010 tiene 32 bits porque el bus de direcciones tiene 32 bits. Escribe esos 32 bitse identifica cada una de las partes de la direccion: etiqueta, ındice, BLOCKoffset y BYTEoffset.¿El valor que has obtenido en la parte que identifica el ındice coincide con el obtenido en la cuestion4?.

6.- Se esta enviando un bloque de memoria principal a memoria cache: ¿En que posicion de lamemoria cache se deberıa emplazar el bloque si la direccion de ese bloque en memoria principal es910?

Solucion:

a)

Capacidad bloque = Tamano bloque︸ ︷︷ ︸4 palabras

∗Tamano palabra = 4 ∗ 32 bits = 4 ∗ 4B = 16B

b)64 bloques = 26 bloques =⇒ El ındice esta compuesto por 6 bits

c)

El campo etiqueta tendra :

m− n−BlockOffset −ByteOffset = 32− 6− 2− 2 = 22 bits

m : Tamano direccion = 32 bits

n : Bits del ındice = 6 bits

Blockoffset : 4 palabras/bloque = 22 =⇒ Blockoffset = 2 bits

Byteoffset : Una palabra = 32 bits = 4B = 22 =⇒ Byteoffset = 2 bits

d)

Direccion bloque =Direccion Byte

No Bytes del bloque=

1200

4B ∗ 4=

1200

16= 75 =⇒ 75 MOD 64 = 11

e)

120010 =

Etiqueta︷ ︸︸ ︷. . . 001

Indice︷ ︸︸ ︷001011

Blockoffset︷︸︸︷00

Byteoffset︷︸︸︷00

Los ındices de los apartados 4 y 5 coinciden.

f)9 MOD 64 = 9

9

Page 10: Ejercicios Arquitectura de Computadores

Problema 4

El procesador tiene que acceder a estas direcciones del sistema de memoria y en este orden:

22, 26, 22, 26, 16, 3, 16, 18

Sea una cache de correspondencia directa con 8 bloques de un byte. La cache inicialmente esta vacıa.Indique, para cada una de estas direcciones, la direccion en binario sabiendo que son direccionesde 5 bits, la etiqueta y el ındice. Indique tambien si en el acceso se produce un fallo o un acierto.Cuando se produzca un fallo hay que especificar el motivo.

Solucion:

8 bloques de 1B = 23 bloques =⇒ El ındice esta compuesto de 3bits

Direccion decimal Direccion binaria Etiqueta Indice F/A22 10110 10 110 F26 11010 11 010 F22 10110 10 110 A26 11010 11 010 A16 10000 10 000 F3 00011 00 011 F16 10000 10 000 A8 10010 10 010 F

10

Page 11: Ejercicios Arquitectura de Computadores

Problema 5

El procesador Intel Core i7 tiene 4 nucleos Nehalem. En este problema vamos a analizar la cacheL1 de instrucciones del procesador Nehalem. Los datos que necesitamos para realizar el problemason:

Capacidad = 32 KB

Tamano del bloque = 64 bytes

Tipo de cache: asociativa por conjuntos de 4 vıas

Tamano de palabra = 64 bits

Direccionamiento a nivel de byte

1.- ¿Cuantos ındices tendra la cache?

2.- ¿Cuantos bits de la direccion se destinan al ındice?

3.- ¿Cuantos bits de la direccion se destinan a la etiqueta?

Solucion:

a)Habra un ındice por cada conjunto, luego habra 128 ındices (512/4).

b)

No de conjuntos =Capacidad cache

Tamano conjunto=

32KB

64B ∗ 4=

2��*7

15B

2�8B= 27 = 128 conjuntos =⇒ El ındice tiene 7 bits

c)

El campo etiqueta tendra :

m− n−BlockOffset −ByteOffset = 64− 7− 3− 3 = 51 bits

m : Tamano direccion = 64 bits

n : Bits del ındice = 7 bits

Blockoffset : 8 palabras/bloque = 23 =⇒ Blockoffset = 3 bits

Byteoffset : Una palabra = 64 bits = 8B = 23 =⇒ Byteoffset = 3 bits

11

Page 12: Ejercicios Arquitectura de Computadores

Problema 6

Sea la cache L3 del procesador AMD Operaton: 2MB de capacidadde datos, asociativa porconjuntos de 32 vıas, bloques de 64 bytes. Palabra de 64 bits.

1.- ¿Cuantos bits tendra el ındice?

2.- ¿Cuantos bits tendra el campo etiqueta de la memoria cache?

3.- Se esta enviando un bloque de memoria principal a memoria cache: ¿En que posicion de lamemoria cache se deberıa emplazar el bloque si la direccion del primer byte en memoria principales 204810?

4.- Verifica si el ındice obtenido en la cuestion 3 se corresponde con el ındice extraıdo de la direccion204810.

5.- ¿Cual es el tamano total de la cache?

Solucion:

a)

No de conjuntos =Capacidad cache

Tamano conjunto=

2MB

64B ∗ 32=

2��*10

21B

2�11B= 210 = 1028 conjuntos =⇒ El ındice tiene 10 bits

b)

El campo etiqueta tendra :

m− n−BlockOffset −ByteOffset = 64− 10− 3− 3 = 48 bits

m : Tamano direccion = 64 bits

n : Bits del ındice = 10 bits

Blockoffset : 8 palabras/bloque = 23 =⇒ Blockoffset = 3 bits

Byteoffset : Una palabra = 64 bits = 8B = 23 =⇒ Byteoffset = 3 bits

c)

Posicion en memoria =direccion 1er byte

no bytes del bloque=

2048

64= 32

no bloques =221

28= 213bloques

32 MOD 8192 = 32

d)

204810 =

Etiqueta︷ ︸︸ ︷. . . 0000

Indice︷ ︸︸ ︷0000100000

Blockoffset︷︸︸︷000

Byteoffset︷︸︸︷000

Los ındices de los apartados 3 y 4 coinciden.

e)

Tamano cache = Capacidad de datos+ Tamano etiqueta

Asociativa/Conjuntos︷ ︸︸ ︷(Novıas ∗No ındices/conjuntos)

Tamano cache = 2 MB + 48 bits ∗ (32 ∗ 10) = 2MB + 1920B

12

Page 13: Ejercicios Arquitectura de Computadores

Problemas del Tema 3

Problema 1

Se va a ejecutar la instruccion 0x012A5825.

1.- ¿Que entradas recibe la unidad de control?

2.- ¿Que valor/es tiene que decodificar la unidad de control?

3.- ¿Que salidas proporciona la unidad de control?

4.- ¿Para que sirven esas salidas?

5.- ¿Que valores deben tener esas salidas para que se ejecute correctamente la instruccion?

Solucion:

Intruccion 0x012A5825 = 0000 0001 0010 1010 0101 1000 0010 0101

a)

Codigo de instruccion [Bits 31− 26]

Codigo de funcion [Bits 5− 0](solo en instrucciones aritmetico− logicas)

b) La unidad de control decodificara los valores :

Codigo de instruccion [Bits31− 26] = 0000 00 (base 2) = 0(base 10)

Codigo de funcion [Bits 5− 0] = 10 0101 (base2) = 37(base10)

c) RegWrite, RegDst, Alu src, ALU operation, PCsrc1, PCsrc2, MemRead y MemWrite.

d)

• RegWrite = Indica si se va a escribir en el banco de registros , debe estar activa paraque se escriba en el flanco de subida.

• RegDst = Indica de que bits procede la direccion del registro destino ( 0 =¿bits 20-16en instrucciones de carga , 1 =⇒ bits 15-11 en instrucciones Aritmetico-Logicas).

• ALUsrc = Indica la procedencia del 2o operando de la ALU (0 =⇒ bits 15-11 en instrucciones Aritmetico-Logicas , 1 =⇒ bits 15-0 en instrucciones deCarga/Almacenamiento).

• ALUoperation = Indica que operacion realiza la ALU.

• PCsrc1 = Indica si la direccion de la proxima instruccion proviene de un saltoincondicional J.

• PCsrc2 = Indica si la direccion de la proxima instruccion proviene de un salto condicionalBEQ.

• MemRead = Indica cuando se realiza una lectura en la memoria de datos

• MemWrite = Indica cuando se realiza una escritura en la memoria de datos

e)

RegWrite = 1

RegDst = 1

ALUsrc = 0

ALUoperation = 0001

PCsrc1 = 0

PCsrc2 = 0

MemRead = 0

MemWrite = 0

13

Page 14: Ejercicios Arquitectura de Computadores

Problema 2

Se va a ejecutar la instruccion 0x016C6822.

1.- ¿Que tipo de instruccion es?

2.- ¿Cual es el numero de identificacion del registro destino?

3.- ¿Utiliza algun registro como registro fuente? En tal caso, averigua el numero deidentificacion.

4.- ¿Que valores deben tener las senales de control para que se ejecute correctamente lainstruccion?

Solucion:

Instruccion 0x016C6822 = 0000 0001 0110 1100 0110 1000 0010 0010

a)

Codigo de instruccion = 0000 00 =⇒ Instruccion Aritmetico− LogicaCodigo de funcion = 10 0010 =⇒ SUB

b)Rdestino = 0110 1 =⇒ $13

c)

Rfuente1 = 01 011 =⇒ $11

Rfuente2 = 0 1100 =⇒ $12

La instruccion es, por tanto: SUB $13,$11,$12

d)

RegWrite = 1

RegDst = 1

ALUsrc = 0

ALUoperation = 0110

PCsrc1 = 0

PCsrc2 = 0

MemRead = 0

MemWrite = 0

14

Page 15: Ejercicios Arquitectura de Computadores

Problema 3

Se va a ejecutar la instruccion 0x08000028.

1.- Escribe la instruccion en codigo ensamblador.

2.- ¿Que valores deben tener las senales de control para que se ejecute correctamente lainstruccion?

3.- Si antes de ejecutarse la instruccion el contador del programa tiene el valor0xA001E020.¿Que valor tendra despues de ejecutarse la instruccion?

Solucion

Instruccion 0x08000028 = 0000 1000 0000 0000 0000 0000 0010 1000

a)

Codigo de instruccion = 0000 10 =⇒ J

Offset = 00 0000 0000 0000 0000 0010 1000 =⇒ 40

La instruccion es, por tanto: J 40

b)

RegWrite = 0

RegDst = 0

ALUsrc = 0

ALUoperation = 0010

PCsrc1 = 1

PCsrc2 = 0

MemRead = 0

MemWrite = 0

c)

0xA001E020 = 1010 0000 0000 0001 1110 0000 0010 0000

Offset = 00000000000000000000101000 =⇒ 40

PC = 1010 · 00 0000 0000 0000 0000 0010 1000 · 00

El valor del PC tras la ejecucion de la instruccion sera : 0xA00000A0

15

Page 16: Ejercicios Arquitectura de Computadores

Problema 4

Se va a ejecutar la instruccion 0x8D4F0008.

1.- Escribe la instruccion en codigo ensamblador.

2.- ¿Que valores deben tener las senales de control para que se ejecute correctamente lainstruccion?

Solucion

Instruccion 0x8D4F0008 = 1000 1101 0100 1111 0000 0000 0000 1000

a)

Codigo de instruccion = 1000 11 =⇒ LW

Rfuente1 = 01 010 => $10

Rfuente2/Rdest = 0 1111 =⇒ $15

Offset = 0000 0000 0000 1000 =⇒ 8

La instruccion es, por tanto: LW $15,8($10)

b)

RegWrite = 0

RegDst = 0

Alusrc = 1

ALUoperation = 0010

PCsrc1 = 0

PCsrc2 = 0

MemRead = 1

MemWrite = 0

16

Page 17: Ejercicios Arquitectura de Computadores

Pro

ble

mas

del

Tem

a4

Pro

ble

ma

1

Sea

lasi

guie

nte

secu

enci

ad

ein

stru

ccio

nes

:A

DD

$8,

$9,

$10

LW

$11,

4($8

)LW

$12,

8($8

)C

onte

nid

ode

cier

tos

regi

stro

sy

pos

icio

nes

de

mem

oria

:$8

=0

$9=

20$1

0=

12M

EM

[36]

=20

0M

EM

[40]

=10

0

1.-

Ind

ica

las

dep

end

enci

asqu

eex

iste

nen

tre

las

inst

rucc

ion

es.

2.-

Su

pon

gam

osqu

ees

tase

cuen

cia

de

inst

rucc

ion

esse

ejec

uta

enu

np

roce

sad

or

MIP

S-3

2se

gm

enta

do

CO

Nu

nid

add

ed

etec

cion

de

ries

gos

(blo

qu

eos)

yu

nid

ad

de

anti

cipaci

on.

Rep

rese

nta

ren

un

dia

gram

aqu

esu

ced

een

cad

aci

clo

de

ejec

uci

on

.

12

34

56

7$8

00

00

0/32

32

32

$920

2020

20

20

20

20

$10

1212

1212

12

12

12

$11

XX

XX

XX

/200

X/200

$12

XX

XX

XX

X/100

EX

/ME

MX

XX

32

136

40

40

ME

M/W

BX

XX

X32

200

100

AD

D$8

,$9

,$1

0M

IID

$9=

20$1

0=12

AL

UE

X/M

EM←

20+

12=

32

MD

ME

M/W

B←

EX

/M

EM

ME

M/W

B←

32

RE

G$8←

ME

M/W

B=

32–

LW

$11,

4($

8)–

MI

ID$8

=0

1

4

AL

UE

X/M

EM←

321

+4=

36

MD

ME

M/W

B←

ME

M[3

6]

ME

M/W

B←

200

RE

G$11←

ME

M/W

B$11←

200

LW

$12,

8($

8)–

–M

IID

$8=

02

8

AL

UE

X/M

EM←

32

1+

8=

40

MD

ME

M/W

B←

ME

M[4

0]

ME

M/W

B←

100

RE

G$12←

ME

M/W

B$12←

100

Com

enta

rio

––

1L

ectu

raer

ron

ea

1A

nti

cip

aci

on

2L

ectu

raer

ron

ea1A

nti

cip

aci

on

con

ME

M/W

B–

17

Page 18: Ejercicios Arquitectura de Computadores

Pro

ble

ma

2

Sea

lasi

guie

nte

secu

enci

ad

ein

stru

ccio

nes

:LW

$8 ︸︷︷︸,4(

$9)

ADD

$11,

$8 ︸︷︷︸,$1

0SUB

$12,

$12,

$12

Con

ten

ido

de

cier

tos

regi

stro

sy

pos

icio

nes

de

mem

oria

:$8

=3

$9=

16$1

0=

2$1

2=

1M

EM

[20]

=20

0

1.-

Ind

ica

las

dep

end

enci

asqu

eex

iste

nen

tre

las

inst

rucc

ion

es.

2.-

Su

pon

gam

osqu

ees

tase

cuen

cia

de

inst

rucc

ion

esse

ejec

uta

enu

np

roce

sad

or

MIP

S-3

2se

gm

enta

do

CO

Nu

nid

adde

det

ecci

on

de

ries

gos

(blo

qu

eos)

yu

nid

ad

de

anti

cip

acio

n.

Rep

rese

nta

ren

un

dia

gram

aqu

esu

ced

een

cad

aci

clo

de

ejec

uci

on

.

12

34

56

78

$83

33

33/

200

200

200

200

$11

XX

XX

XX

X/2

00200

$12

11

11

11

1/0

1E

X/M

EM

XX

X20

20202

00

ME

M/W

BX

XX

X200

200

202

202

LW

$8,

4($9

)M

IID

$9=

164

AL

UE

X/M

EM←

16+

4=

20

MD

ME

M/W

B←

EX

/M

EM

ME

M/W

B←

20

RE

G$8←

ME

M/W

B=

20

––

AD

D$1

1,

$8

$10

–M

IID

$8=

31

$10

=2

AL

UE

X/M

EM←

200

1+

2=

202

MD

ME

M/W

B←

EX

/M

EM

ME

M/W

B←

202

RE

G$1

1←

ME

M/W

B$1

1←

202

SU

B$12

,$12

($12)

––

MI

ID$12

=1

AL

UE

X/M

EM←

1-1

=0

MD

ME

M/W

B←

EX

/ME

MM

EM

/W

B←

0

RE

G$1

2←

ME

M/W

B$1

2←

0C

om

enta

rio

––

1L

ectu

raer

ron

ea1A

nti

cip

acio

nco

nM

EM

/WB

––

18