平成21年度 秋期 午前 問9
コンピュータ構成要素
パイプラインに関する問題
パイプラインの深さを D,パイプラインピッチを P 秒とすると,I 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで,パイプラインの各ステージは 1 ピッチで処理されるものとし,パイプラインハザードについては,考慮しなくてよい。
- ア(I + D) × P
- イ(I + D - 1) × P
- ウ(I × D) + P
- エ(I × D - 1) + P
答えと解説を見る
✓ これが正解イ(I + D - 1) × P
解説
最初の一つに D ピッチ、残りは 1 ピッチずつ増えます。
パイプラインは、一つの命令の処理を D 個の段に分け、各段をピッチと呼ばれる一定の時間で送り出していく方式です。まず先頭の命令に注目すると、これが最後の段を抜けるまでには、段の数だけ、つまり D ピッチが必要です。二つ目以降の命令は、前の命令の一段後ろにぴったり付いて流れ込むので、一つ増えるごとに掛かる時間は 1 ピッチずつしか伸びません。したがって全体では、先頭ぶんの D ピッチに、残りの I − 1 個ぶんを足した、D + I − 1 ピッチが必要になります。1 ピッチは P 秒ですから、これを掛けて (I + D − 1) × P 秒となります。命令が 1 個だけのときに D × P 秒となり、命令を 1 個増やすたびに P 秒ずつ伸びる、という二つの当たり前の振舞いを両方満たしているかどうかが、式を見分ける手掛かりになります。
ほかの選択肢はなぜ違うのか
- ア(I + D) × P:命令数と段数を足して、そのままピッチを掛ける形です。命令が 1 個だけのときに段数より 1 ピッチ多く掛かる計算になり、先頭の命令が最後の段を抜けたあとに空の 1 ピッチが余分に入ってしまいます。
- ウ(I × D) + P:命令数と段数を掛けたものに、ピッチを足す形です。掛け合わせた値は段を重ねずに一つずつ通したときの延べ段数であり、しかもピッチを一度足しただけなので、全体の所要時間を表す式になっていません。
- エ(I × D - 1) + P:命令数と段数を掛けて 1 を引き、そこへピッチを足す形です。これも延べ段数を基にした値にピッチを一度足しただけで、命令を重ねて流すことで時間が縮む効果を表せていません。
出典:平成21年度 秋期 応用情報技術者試験 午前 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)