ホーム > システムアーキテクト試験 > 2021年
システムアーキテクト試験 2021年 午前2 問21
パイプラインの深さをD、パイプラインピッチをP秒とすると、I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインは1本だけとし、全ての命令は処理にDステージ分の時間がかかり、各ステージは1ピッチで処理されるものとする。また、パイプラインハザードについては、考慮しなくてよい。
ウ:(I × D) + P
エ:(I × D - 1) + P
ア:(I + D) × P
イ:(I + D - 1) × P(正解)
解説
パイプラインの実行時間計算式【午前2 解説】
要点まとめ
- 結論:パイプラインの実行時間は「(I + D - 1) × P」で表されます。
- 根拠:最初の命令がパイプラインを通過するのにDピッチかかり、その後は1命令ごとに1ピッチずつ完了するためです。
- 差がつくポイント:パイプラインの深さDと命令数Iの関係を正しく理解し、初期のパイプライン充填時間を考慮できるかが重要です。
正解の理由
パイプラインはD段階の処理を持ち、各ステージはP秒で処理されます。最初の命令が完了するまでにDピッチかかり、その後は1命令ごとに1ピッチずつ完了します。したがって、I個の命令を処理する時間は「(I + D - 1) × P」となります。
この式は、パイプラインの「立ち上げ時間(D-1ピッチ)」と「命令数I分の処理時間」を合算したものです。
この式は、パイプラインの「立ち上げ時間(D-1ピッチ)」と「命令数I分の処理時間」を合算したものです。
よくある誤解
パイプラインの深さDを単純に足すだけで「I + D」とする誤りや、命令数と深さを掛け合わせる「I × D」と考える誤解が多いです。
解法ステップ
- パイプラインの深さDが示すのは、1命令が完了するまでに必要なステージ数であることを確認する。
- 各ステージの処理時間がパイプラインピッチP秒であることを理解する。
- 最初の命令が完了するまでにDピッチかかるため、初期遅延はDピッチ分と考える。
- 2つ目以降の命令は1ピッチごとに完了するため、I個の命令完了までにIピッチかかる。
- したがって、合計時間は「(I + D - 1) × P」となる。
選択肢別の誤答解説
- ア: (I + D) × P
→ 初期遅延をDピッチと考えず、1ピッチ分多く見積もっている。 - イ: (I + D - 1) × P
→ 正解。パイプラインの初期充填時間と命令数に基づく正しい式。 - ウ: (I × D) + P
→ 命令数と深さを掛け合わせてしまい、パイプラインの並列処理効果を無視している。 - エ: (I × D - 1) + P
→ ウと同様に掛け算を用い、さらに単位が合わない形で表現している。
補足コラム
パイプライン処理はCPUの性能向上に不可欠な技術で、複数の命令を同時に異なる段階で処理します。パイプラインハザード(データ依存や制御依存による遅延)がない理想状態を想定すると、命令のスループットが大幅に向上します。今回の問題はハザードを考慮しないため、単純な計算式で表現可能です。
FAQ
Q: なぜ「I + D - 1」なのですか?
A: 最初の命令がDピッチかかり、2つ目以降は1ピッチずつ完了するため、合計は「I + D - 1」ピッチとなります。
A: 最初の命令がDピッチかかり、2つ目以降は1ピッチずつ完了するため、合計は「I + D - 1」ピッチとなります。
Q: パイプラインハザードがある場合はどうなりますか?
A: ハザードがあるとパイプラインが停止または遅延し、実行時間はさらに長くなります。今回の式は理想的な場合の計算です。
A: ハザードがあるとパイプラインが停止または遅延し、実行時間はさらに長くなります。今回の式は理想的な場合の計算です。
関連キーワード: パイプライン, 実行時間計算, パイプラインピッチ, パイプライン深さ, CPU性能, 命令処理