応用情報技術者試験 令和5年春 午前問9 解説付き過去問
問題
全ての命令が5ステージで完了するように設計された、パイプライン制御のCPUがある。
20命令を実行するには何サイクル必要となるか。
ここで、全ての命令は途中で停止することなく実行でき、パイプラインの各ステージは1サイクルで動作を完了するものとする。
正解
解説
この問題は、パイプライン処理において複数命令を連続実行する際の全体のクロック数(サイクル数)を求めるものです。以下の手順で解説します。
- パイプライン処理の基本
パイプラインとは、1つの命令を複数のステージに分けて、各ステージを独立して動作させることで、複数の命令を並行して実行する仕組みです。
本問では、1命令を5つのステージに分けて実行します(深さ5のパイプライン)。
- 命令数と処理の重なり
1命令目は5ステージすべてを経て完了するため、完了までに5サイクルかかります。
2命令目以降は、前の命令と処理を重ねることができるため、1命令ごとに1サイクルずつ追加で完了します。
- 必要なサイクル数の計算
n命令をdステージのパイプラインで処理する場合、必要なサイクル数は以下のように求められます。 - 参考:公式を使った計算
パイプライン処理時間の一般的な公式として、以下の形もあります。
n + (d − 1)
今回の問題では、命令数 n = 20、パイプラインの深さ d = 5 より、
20 + (5 − 1) = 24 サイクル
(I + D − 1) × P
I:命令数、D:パイプラインの深さ、P:1ステージあたりの処理時間(この問題では1サイクル)
(20 + 5 − 1) × 1 = 24 サイクル