Encontrar el número de instrucciones

0

La computadora A tiene un CPI general de 1.3 y se puede ejecutar a una velocidad de reloj de 600MHz. La computadora B tiene un CPI de 2.5 y se puede ejecutar a una velocidad de reloj de 750 Mhz. Tenemos un programa en particular que deseamos ejecutar. Cuando se compila para la computadora A, este programa tiene exactamente 100,000 instrucciones. ¿Cuántas instrucciones debería tener el programa cuando se compiló para la Computadora B, para que las dos computadoras tengan exactamente el mismo tiempo de ejecución para este programa?

  (CPUTime)A = (Instruction count)A * (CPI)A * (Clock cycle Time)A
   = (100,000)*(1.3)/(600*10^6) ns

  (CPUTime)B = (Instruction count)B * (CPI)B * (Clock cycle Time)B
   = (I)B*(2.5)/(750*10^6) ns

El resultado debe ser 65000

Sin embargo, no puedo llegar allí.

  The first calculation gives me 0.00022ns = ~2s

  2 = (I) (2.5)/(750*10^6) ns -- I can't solve this to be 65000

¿Qué me estoy perdiendo aquí y cómo puedo simplificarlo?

Gracias

    
pregunta Carlo

3 respuestas

2

Solucionar la primera parte me dio 216.667. Yo revisaría tus matemáticas allí.

$$ 100000 \ cdot 1.3 = 130000 $$ $$ \ frac {130000} {600 \ cdot 10 ^ 6} = 2.167 \ cdot 10 ^ {- 4} $$

El uso de esto te da la solución correcta.

    
respondido por el pwolfsberger
2

Has cometido un error en la primera ecuación: obtengo un tiempo de CPU de \ $ 2.2 \ cdot 10 ^ {- 4} s \ $, o ~ 200 us.

La segunda ecuación se puede volver a trabajar para \ $ I = \ dfrac {f \ cdot T_ {CPU}} {CPI} \ $

    
respondido por el clabacchio
1

Prueba: -

\ $ 100,000 \ times \ dfrac {750 \ times 1.3} {600 \ times 2.5} \ $ = 65,000

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas