応用情報技術者 2009年 秋期 午前2 問09
問題文
パイプラインの深さを D, パイプラインピッチを P 秒とすると、I 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインの各ステージは 1 ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。
選択肢
ア:(I+D)×P
イ:(I+D-1)×P(正解)
ウ:(I×D)+P
エ:(I×D-1)+P
🔒 解説は解答すると表示されます
パイプライン実行時間【午前2解説】
正解の理由
パイプラインを深さ 、ピッチを 秒とすると、最初の命令が完了するまでに必要な時間は です。以降は各命令が1ピッチごとに完了するため、追加で必要な時間は になります。よって合計は
となり、選択肢のうち イ が正しい式です。
(ここで「最初の命令のレイテンシは ピッチである」ことと、「起動オーバーヘッドは ピッチ分である」ことを用途に応じて区別して扱います。)
(ここで「最初の命令のレイテンシは ピッチである」ことと、「起動オーバーヘッドは ピッチ分である」ことを用途に応じて区別して扱います。)
解法ステップ
- 最初の命令の完了までの時間を考える:パイプラインに ステージがあり各ステージが1ピッチで処理されるため、最初の命令は ピッチかかる。時間は 。
- 2 命令目以降の完了間隔を考える:パイプラインが満たされた後は1命令あたり1ピッチで完了するので、残り 命令に対して 。
- 合計を足す:。
- 整理して最終式:。
簡単な数値例: のとき、時間は 。実際のタイムラインは命令完了がピッチ 5,6,7 秒に来る。
選択肢別の誤答解説
- ア:
最初の命令の完了を ピッチと数えれば、残りは 命令分のピッチで足りるため、 ピッチ分だけ過大評価している(1ピッチ分の二重カウント)。 - イ:
正しい。最初が ピッチ、その後が1ピッチずつで合計 。 - ウ:
命令ごとに ピッチかかる(逐次実行の合計)と仮定している形。だがパイプライン並列化により各命令は並列に進むため、この式は並列効果を反映しておらず過大評価。 - エ:
括弧の位置と意味が曖昧で論理的に成り立たない。もし と解釈しても、上と同様に逐次時間を基にした誤った計算になる。
よくある誤解
- 「初期充填時間は だ」と考える誤解
文脈に注意:最初の命令が完了するまでのレイテンシは明確に ピッチです。 は「最初の命令と2番目以降の命令の差(起動オーバーヘッド)」を指す場合に使う値で、用途を混同すると誤る。 - 各ステージの処理を命令単位で合算する誤解
各命令が逐次に全ステージを通る時間を単純に足すと並列化効果を無視するため実際より大きな値になる。 - ピッチとステージの混同
「ピッチ P がステージごとの時間」だが、問題文を読み違えピッチを「命令間隔」と誤認すると計算を誤る。
補足コラム
- レイテンシとスループットの整理
レイテンシ(ある命令の完了までの時間)= 。スループット(単位時間あたりの完了命令数)は理想的には (1 命令/ピッチ)。総時間はレイテンシ+(命令数−1)×ピッチで与えられるため、 が十分大きい場合はほぼ (スループット主導)になりますが、短いバッチでは起動オーバーヘッド が無視できません。 - ハザードやバブルがある場合
問題ではハザード無視とあるが、実際はバブル(ストール)で「追加のピッチ」が入ると式は のように修正されます。
FAQ
Q: I が1のときはどうなるか?
A: 最初の命令だけなので時間は 。式に代入すると となり一致します。
A: 最初の命令だけなので時間は 。式に代入すると となり一致します。
Q: なぜ起動オーバーヘッドを と言うのか?
A: 最初の命令と2番目の命令の完了時刻の差を考えると、最初は ピッチ、2番目は ピッチで完了するため「追加でかかる分」は と見なせます(言い換えれば、最初の命令を除いた「余分」な準備段階数が だからです)。ここで重要なのは「どの文脈で を使うか」を明確にすることです。
A: 最初の命令と2番目の命令の完了時刻の差を考えると、最初は ピッチ、2番目は ピッチで完了するため「追加でかかる分」は と見なせます(言い換えれば、最初の命令を除いた「余分」な準備段階数が だからです)。ここで重要なのは「どの文脈で を使うか」を明確にすることです。
Q: ステージごとに処理時間が異なる場合は?
A: 各ステージの所要時間が等しくない場合、ピッチ は最も遅いステージ時間に合わせる必要があります。可変ステージでは上式の一般形は維持されますが、 の定義が変わる点に注意してください。
A: 各ステージの所要時間が等しくない場合、ピッチ は最も遅いステージ時間に合わせる必要があります。可変ステージでは上式の一般形は維持されますが、 の定義が変わる点に注意してください。
関連キーワード: パイプライン、初期充填、起動オーバーヘッド、レイテンシ、スループット、バブル、ピッチ、ステージ、命令間隔、ストール

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

