ex ac is problemas junio 2012 13 solucion
TRANSCRIPT
CUESTIÓN 4. (1 punto) La siguiente tabla muestra las características de dos procesadores, P1 y P2, que se quieren comparar. Para ello, se va a usar el
mismo programa formado por una secuencia de 106 instrucciones.
Procesador Frecuencia de reloj CPI
P1 4 GHz 1.25
P2 3 GHz 0.75
Responda Verdadero o Falso a las siguientes preguntas, justificando sus respuestas con los cálculos oportunos, para el caso de los procesadores P1 y
P2:
a) ¿El procesador con la frecuencia más elevada es el que tiene mejores prestaciones? FALSO.
tcpu = nciclos x tciclos = (ninst x CPI) / fclk
t1 = (106 x 1,25) / 4x109 s-1 = 0,3125 ms
t2 = (106 x 0,75) / 3x109 s-1 = 0,25 ms
Prestacion2/ Prestacion1= t1 / t2= 1,25
=> f1 > f2 pero Prestacion1<Prestacion2
b) ¿El procesador con un MIPS más elevado es el que tiene las mejores prestaciones?. VERDADERO
MIPS = ninst / ( tcpu x 106 ) = ninst / [ ((ninst x CPI) / fclk )x 106 ] = fclk / (CPI x 106)
MIPS1 = 4x109 / (1,25 x 106 ) = 3200
MIPS2 = 3x109 / (0,75 x 106 ) = 4000
=> MIPS2 > MIPS1 y Prestacion2 > Prestacion1
CUESTIÓN 5. (2 puntos) Para el siguiente código escrito en ensamblador:
et1: lw $t2, 1000($t1)
beq $t2, $zero, et2
addiu $t2, $t2, 32
sw $t2, 1000($t1)
addiu $t1, $t1, 1
slti $t3, $t1, 500
bne $t3, $zero, et1
et2: sw $t1, 2000($t1)
Considere que la memoria a partir de la posición 1000 contiene los siguientes valores en base 10: 83,85,69,82,84,69,0; y que los registros $t1 y $t2
inicialmente tienen valor 0.
a) Indique cuál es el valor contenido en el registro $t1 al final de la ejecución del código. (RESPUESTA $t1 = 6)
b) Realice la traza de ejecución de la primera iteración indicando los bloqueos y desvíos que se producen cuando es ejecutado en un procesador MIPS.
Enumere los distintos tipos de bloqueos, indicando por qué se producen; y los distintos desvíos especificando las etapas origen y destino de cada
desvío.
c) Calcule el número medio de ciclos por instrucción (CPI) empleados en la ejecución completa del programa dado.
et1: lw $t2, 1000($t1)
beq $t2, $zero, et2
addiu $t2, $t2, 32
sw $t2, 1000($t1)
addiu $t1, $t1, 1
slti $t3, $t1, 500
bne $t3, $zero, et1
et2: sw $t1, 2000($t1)
et1: lw $t2, 1000($t1)
IF ID EX MEM WB
IF - - ID EX MEM WB
IF ID EX MEM* WB
IF ID EX MEM* WB
IF ID EX* MEM WB
IF ID EX* MEM WB
IF - ID* EX MEM WB
IF aborted
IF ID EX MEM WB
Bypass: Entre la instrucción 3 y 4 de MEM-MEM; entre la instrucción 5 y 6 de EX - EX; entre la instrucción 6 y 7 de EX - ID
Nº de instrucciones = 7x6(iteraciones) + 3(ultima iteración)=45
Ciclos bloqueos de datos = 3x6(iteraciones) + 2(ultima iteración) = 20
Ciclos bloqueos de control = 1x6(iteraciones) + 1(ultima iteración)=7
CPImedio= (4 + 45 + 20 + 7) /45 = 1,688