ネットワークスペシャリスト 2013年 午前2 問22
問題文
パイプラインの深さを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-1ピッチ)を正しく理解し、単純な掛け算と混同しないことが重要です。
正解の理由
パイプラインはD段階の処理をP秒のピッチで進めます。最初の命令が完了するまでにDピッチ必要ですが、2つ目以降の命令は1ピッチずつ間隔をあけて完了します。したがって、I個の命令を処理する時間は「最初の命令のDピッチ」+「残りI-1命令の1ピッチずつ」で、合計はとなります。これが選択肢イの式です。
よくある誤解
パイプラインの深さDを単純に命令数Iに掛けてしまい、全体時間をと考える誤りが多いです。初期充填時間を考慮しないと誤答につながります。
解法ステップ
- パイプラインの深さDが示す「段数」を理解する。
- 1命令が完了するまでにDピッチかかることを確認する。
- 2命令目以降は1ピッチずつ間隔をあけて完了することを考慮する。
- 合計時間は「最初の命令のDピッチ」+「残りI-1命令の1ピッチずつ」で計算する。
- 式にまとめてと導出する。
選択肢別の誤答解説
- ア: (I + D) × P
→ 初期充填時間をDピッチとするが、最後の命令完了時点で1ピッチ余計に計算している。 - イ: (I + D - 1) × P
→ 正解。初期充填時間と命令間のピッチを正しく考慮している。 - ウ: (I × D) + P
→ 命令数に深さを掛けてしまい、パイプラインの並列処理効果を無視している。 - エ: (I × D - 1) + P
→ ウと同様に誤った掛け算をしており、さらにピッチの加算も不適切。
補足コラム
パイプライン処理はCPUの命令処理効率を高める基本技術です。パイプラインの深さDはステージ数を示し、各ステージは一定時間Pで処理されます。パイプラインハザード(データ依存や制御依存による遅延)がない理想状態での計算が今回の問題の前提です。実際にはハザード対策が必要ですが、基本理解としてこの計算式は重要です。
FAQ
Q: なぜパイプラインの実行時間はではないのですか?
A: パイプラインは複数の命令を同時に処理するため、命令数に深さを単純に掛けると並列処理の効果を無視してしまいます。
A: パイプラインは複数の命令を同時に処理するため、命令数に深さを単純に掛けると並列処理の効果を無視してしまいます。
Q: パイプラインハザードがある場合、実行時間はどう変わりますか?
A: ハザードがあるとパイプラインが停止(ストール)するため、追加の遅延が発生し、実行時間は今回の理想式より長くなります。
A: ハザードがあるとパイプラインが停止(ストール)するため、追加の遅延が発生し、実行時間は今回の理想式より長くなります。
関連キーワード: パイプライン、実行時間計算、パイプライン深さ、パイプラインピッチ、CPU性能

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

