全ての命令が5ステージで完了するように設計された、パイプライン制御のCPUがある。
20命令を実行するには何サイクル必要となるか。
ここで、全ての命令は途中で停止することなく実行でき、パイプラインの各ステージは1サイクルで動作を完了するものとする。
答え ウ
【解説】
パイプライン処理のときの、命令n 個の処理サイクル数F(n )は、1つの命令の処理に必要なサイクル数をaとすると、下の式になる。
F(n ) = n + a - 1
この式に、a = 5、n = 20を代入すると、F(20) = 24(ウ)になる。
現実には、
- すべての命令が同じサイクル数では完了しない。
- メモリアクセスが1サイクルでは完了しない。
- 分岐命令でパイプラインの次の命令を実行しない(パイプラインハザード)。
などがあるので、上記の式どおりにはならない。