応用情報技術者 2011年 春期 午前2 問10
問題文
パイプラインの深さをD, パイプラインピッチをP秒とすると、I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインの各ステージは 1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。
選択肢
ア:(I+D)×P
イ:(I+D-1)×P(正解)
ウ:(I×D)+P
エ:(I×D-1)+P
パイプラインの実行時間計算【午前2 解説】
要点まとめ
- 結論:パイプラインの命令実行時間は「(I + D - 1) × P」で表されます。
- 根拠:最初の命令がパイプラインを通過するのにDピッチかかり、その後は1ピッチごとに命令が完了するためです。
- 差がつくポイント:パイプラインの深さDと命令数Iの関係を正しく理解し、初期のパイプライン充填時間を考慮できるかが鍵です。
正解の理由
パイプラインの深さをD、ピッチをP秒とすると、最初の命令がパイプラインを通過するのにDピッチかかります。2つ目以降の命令は1ピッチごとに完了するため、I個の命令を処理する時間は「(D - 1) + I」ピッチ分となり、これにPを掛けた「(I + D - 1) × P」が正しい式です。
よって、選択肢イが正解です。
よって、選択肢イが正解です。
よくある誤解
パイプラインの深さDを単純に足すだけや、命令数IにDを掛ける誤りが多いです。初期のパイプライン充填時間を正しく理解していないことが原因です。
解法ステップ
- パイプラインの深さDが意味する「ステージ数」を確認する。
- 最初の命令がパイプラインを通過するのにDピッチかかることを理解する。
- 2つ目以降の命令は1ピッチごとに完了するため、追加で(I - 1)ピッチかかると考える。
- 合計ピッチ数はD + (I - 1) = I + D - 1となる。
- これにパイプラインピッチPを掛けて時間を求める。
選択肢別の誤答解説
- ア: (I + D) × P
→ 初期充填時間をDピッチとするが、最後の命令完了までのピッチ数はD + (I - 1)であり、1ピッチ多い。 - イ: (I + D - 1) × P
→ 正解。パイプラインの特性を正しく反映している。 - ウ: (I × D) + P
→ 命令数と深さを掛けているが、パイプライン処理は並列的で掛け算しない。 - エ: (I × D - 1) + P
→ ウと同様に誤った掛け算をしており、さらに-1と+Pの意味が不明確。
補足コラム
パイプライン処理はCPUの性能向上に不可欠な技術です。パイプラインの深さが増えるほど、初期充填時間は長くなりますが、スループットは向上します。ハザード(データ依存や制御依存)がない理想状態での計算が今回の問題の前提です。
FAQ
Q: なぜパイプラインの実行時間はI×Dではないのですか?
A: パイプラインは各ステージが並列処理されるため、命令数と深さを単純に掛ける必要はありません。初期充填時間と命令間のピッチ数を考慮します。
A: パイプラインは各ステージが並列処理されるため、命令数と深さを単純に掛ける必要はありません。初期充填時間と命令間のピッチ数を考慮します。
Q: パイプラインハザードがある場合、時間計算はどう変わりますか?
A: ハザードがあるとパイプラインが停止(ストール)するため、追加の遅延が発生し、実行時間は増加します。
A: ハザードがあるとパイプラインが停止(ストール)するため、追加の遅延が発生し、実行時間は増加します。
関連キーワード: パイプライン、実行時間計算、パイプライン深さ、パイプラインピッチ、CPU性能

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

