Ejercicio Resuelto

Ejercicio: Suponer que estamos considerando dos alternativas para una instrucción de salto condicional; • CPU(A): una in

Views 258 Downloads 2 File size 21KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ejercicio: Suponer que estamos considerando dos alternativas para una instrucción de salto condicional; • CPU(A): una instrucción de comparación inicializa un código de condición y es seguida por un salto que examina el código de condición. • CPU(B): se incluye una comparación en la instrucción de salto. En ambas CPU, la instrucción de salto condicional emplea 2 ciclos de reloj, y las demás instrucciones 1. En la CPU(A), el 20% de todas las instrucciones ejecutadas son saltos condicionales; como cada salto necesita una comparación, otro 20% de las instrucciones son comparaciones. Debido a que la CPU(A) no incluye la comparación en el salto, su ciclo de reloj es un 25% más rápido que el de la CPU(B). ¿ Qué CPU es más rápida ? Solución: CPU(A) • CPI(A) = ( (0,20*2) + (0,80*1) ) = 1,20 • Luego, Tiempo CPU(A) = 1,20 * Nº instrucciones(A) * Duración ciclo reloj(A) CPU(B) • Como en CPU(B) no se ejecutan instrucciones de comparación, se ejecutarán: • 0,20 * NI(A) instrucciones de salto de la CPU(A) que ahora incluirán una comparación en la CPU(B). NI(A) ≅ Nº instrucciones(A) • 0,60 * NI(A) instrucciones que quedan al restar a la 0,80 * NI(A) de la CPU(A) las 0,20 * NI(A) instrucciones de comparación, ya que había una por cada salto en la CPU(A) • Así, el número de instrucciones que quedan en la CPU(B) son: NI(B) = 0,20*NI(A) + 0,60*NI(A) = 0,80*NI(A) • Y por lo tanto el valor de CPI(B) = ((0,20*2)+(0,60*1)) / 0,80 = (0,40 + 0,60) / 0,80 = 1 / 0,80 • Luego, Tiempo CPU(B)= 0,80 * Nº instrucciones(A) * 1 / 0,80 * 1,25*Duración ciclo reloj(A) = 1,25 * Nº instrucciones(A) * Duración ciclo reloj(A) Bajo esta hipótesis, la CPU(A), con un ciclo de reloj más corto, es más rápida que la CPU(B), que ejecuta un nº menor de instrucciones.