CAC Examen 2016/07 Pregunta 1

CAC Examen 2016/07 Pregunta 1

de Sofia Carolina Boffano -
Número de respuestas: 2

Hola, 

Alguien tiene la solución de esta pregunta? 

Yo lo que hice para calcular la frecuencia fue suponer la ejecución de X cantidad de instrucciones. 

Con eso calcule el Tiempo de CPU de cada programa para cada CPU distinto. 

De la formular -> Tiempo de CPU  = ciclos de reloj de CPU por programa * duración del ciclo, despeje la duración del ciclo y luego calcule la frecuencia con eso. 

Ese razonamiento es correcto ? me genera dudas, porque la frecuencia del CPU sin pipeline me da = 25 Mhz y la frecuencia CON pipeline me da 20 Mhz. 

Gracias! 

Saludos.

En respuesta a Sofia Carolina Boffano

Re: CAC Examen 2016/07 Pregunta 1

de Federico Rivero -

Estimada:

No me queda claro cuál fue el procedimiento. De la fórmula en cuestión no tenés ningún dato! Lo que sí, es claro que no te puede dar que sin pipeline se obtiene mejor rendimiento que con pipeline.Y otra cosa, no se pide frecuencia de CPU, se pide frecuencia de ejecución de instrucciones.

El ejercicio apunta a que si el procesador no tiene pipeline, una instrucción pasa secuencialmente por todas las etapas antes de iniciar la siguiente, por lo tanto se ejecuta cada instrucción en 200ns. Por lo tanto la frecuencia de ejecución de instrucciones es 1/ 200 * 10-9 =  (1 / 200) * 109 = 0.5 * 107 = 5 millones de instrucciones por segundo.

Por otro lado, en el caso del pipeline, la duración del ciclo de reloj es igual a la etapa más lenta (ver teórico), es decir que cada instrucción se ejecuta en 250ns, con un ciclo de reloj de 50ns. Luego, en el caso ideal se completa la ejecución de una instrucción cada 50ns, Esto da 20 millones de instrucciones por segundo.

Saludos,

      Federico

En respuesta a Federico Rivero

Re: CAC Examen 2016/07 Pregunta 1

de Sofia Carolina Boffano -
pufff .. me entreveré nomas entonces, como tu dices no me cerraba que el rendimiento fuera mejor sin pipeline que con pipeline. 

arranque razonando eso mismo que tu dices. 

Caso sin pipeline: 

Una instrucción se ejecuta en 200 ns.

Caso con pipeline. 

La etapa mas costoso en tiempo, marca la duración del ciclo de reloj = 50 ns. 

Creo que mi confusión vino en que me estaban pidiendo la frecuencia del CPU. Y lo que hice fue partir de un supuesto, que tenia un programa con 4 instrucciones y lo ejecutaba con pipeline y sin pipeline. Por eso me fui por esa formula..

Ahora entiendo que la frecuencia de ejecución de instrucciones es: 1 / tiempo de ejecución de una instrucción.

 1 / 200 ^10-9  (sin pipeline)

 1 / 50^ 10-9  (con pipeline) 

Muchas gracias! 

Saludos.