全ての命令が5ステージで完了するように設計された,パイプライン制御のCPUがある。
20命令を実行するには何サイクル必要となるか。
ここで,全ての命令は途中で停止することなく実行でき,パイプラインの各ステージは1サイクルで動作を完了するものとする。
正答3
解説
正解は3です。
パイプラインでは、最初の命令が全ステージを通過するまでに段数分のサイクルがかかります。
その後は1サイクルごとに1命令ずつ完了します。
【計算】
最初の1命令が完了するまでに5サイクルかかります。
残りの19命令は、1サイクルごとに1命令ずつ完了します。
必要なサイクル数=5+(20-1)=24サイクルです。
【選択肢別解説】
1:× 20は命令数そのものです。
最初の命令がパイプラインを満たすまでの時間が含まれていません。
2:× 21は、最初の命令の完了までを2サイクルとした値になっており、5ステージの条件と合いません。
3:○ 上の計算のとおり、5+19=24サイクルです。
4:× 25は、命令数20に段数5を足した値です。
最初の命令の完了サイクルを重複して数えています。
【ポイント】
段数k、命令数nのパイプラインの所要サイクル数は、k+(n-1)で求められます。
パイプラインを使わない場合はk×n=100サイクルかかるので、その差が高速化の効果です。