¿Cálculos de velocidad de la tubería?

-3

Tengo problemas para encontrar una fórmula para calcular esto ...

El flujo dinámico de nuestro programa contiene 19% de instrucciones de ramificación. El procesador utiliza ramificación diferida con una ranura de demora. Calcule cuántas veces se acelera el programa, si el compilador puede llenar la ranura el 89% del tiempo.

Calcule lo mismo si hay otra ranura que el procesador pueda llenar en el 21% de los casos.

Intenté 0.19 * 0.89 + 1 para el primero, pero una comprobación automática dijo que está mal. Ahora me he quedado sin ideas.

    
pregunta Rando Hinn

1 respuesta

2

No vas a "encontrar una fórmula". Debe pensar sobre lo que está sucediendo y escribir una fórmula.

Comience suponiendo que la ranura de retardo de ramificación nunca está llena. Eso significa que de cada 100 instrucciones ejecutadas en su programa, 81 de ellas se ejecutan a toda velocidad (que requieren 81 ciclos), y 19 de ellas se ejecutan a media velocidad (que requieren 38 ciclos). Las 100 instrucciones requieren 119 ciclos para completarse.

Si un compilador puede llenar el 89% de las ranuras de retardo, eso significa que el 89% de las 19 instrucciones de bifurcaciones se ejecutan a toda velocidad en lugar de la mitad de la velocidad. Ahora, ¿cuántos ciclos de reloj requieren las 100 instrucciones? ¿Qué tan rápido es esto, comparado con el caso anterior?

¿Es esto un consejo suficiente para ponerte en marcha?

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas