1

CPU には 5 段のパイプラインがあり、1 GHz の周波数で動作します。命令フェッチは、パイプラインの最初の段階で発生します。条件付き分岐命令は、ターゲット アドレスを計算し、パイプラインの 3 番目のステージで条件を評価します。プロセッサは、分岐結果が判明するまで、条件付き分岐に続く新しい命令のフェッチを停止します。プログラムは 10^9 命令を実行しますが、そのうち 20% が条件分岐です。各命令が平均して完了するまでに 1 サイクルかかる場合、プログラムの合計実行時間は次のようになります。

(A) 1.0秒

(B) 1.2秒

(C) 1.4秒

(D) 1.6秒

4

1 に答える 1

0
Total_execution_time = (1+stall_cycle*stall_frequency)*exec_time_each_inst

exec_time_each_inst = 1s [i.e @1ghz need to execute 10^9 inst =>  1 inst = 1 sec]

stall_frequency = 20% = .20

stall_cycle = 2 

[つまり、パイプラインの第 3 ステージでは、分岐結果がわかっているため、2 つのストール サイクルが発生します]

したがって、Total_execution_time = (1+2*.20)*1 = 1.4 秒

私はそれをよりよく説明する方法がわかりませんが、それが少し役立つことを願っています:)

于 2014-12-25T05:12:58.023 に答える