平成23年度 特別 午前 問10
コンピュータ構成要素
パイプラインに関する問題
パイプラインの深さを D,パイプラインピッチを P 秒とすると,I 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで,パイプラインの各ステージは 1 ピッチで処理されるものとし,パイプラインハザードについては,考慮しなくてよい。
- ア(I + D)×P
- イ(I + D - 1)×P
- ウ(I × D)+P
- エ(I × D - 1)+P
答えと解説を見る
✓ これが正解イ(I + D - 1)×P
解説
重なりを二重に数えないので命令数と深さの和から1を引きます。
式を暗記していなくても、小さい数で表を描けばその場で作り直せます。パイプラインは、一つの命令をいくつかの段に分け、前の命令が次の段へ進んだら空いた段に後続を入れていく仕組みです。設問はパイプラインハザードを考えなくてよいと断っていますので、段が詰まる場面は考えずに、きれいに一つずつずれて流れる姿を描けば足ります。深さを3、命令を4個として、横にピッチを並べ、縦に命令を並べてみます。最初の命令は一番目から三番目のピッチを使います。二番目の命令は一つ遅れて始まり、二番目から四番目を使います。同じように一つずつずらしていくと、四番目の命令は四番目から六番目のピッチを使い、そこで全部が終わります。かかったピッチは6です。命令数と深さを足すと7になりますから、そのままでは一つ多く、1を引いた値が実際と一致します。所要時間は、このピッチ数にピッチ一つ分の秒数を掛けたものですから、正解の式はここから決まります。なぜ1を引くのかも表から読めます。最初の一つが仕上がるまでには深さのぶんだけピッチが必要ですが、そのあとは一ピッチごとに次々と仕上がっていきますので、残りの命令には命令数から1を引いた数のピッチしか必要ありません。この二つを足すと、命令数と深さの和から1を引いた形になります。最初の命令が使うピッチと、二番目以降が始まるピッチが一つ分だけ重なっているので、その重なりを二重に数えないための1です。単位で見分ける手も使えます。求めているのは時間ですから、全体がピッチ数とピッチ一つ分の秒数の積の形になっていなければなりません。
ほかの選択肢はなぜ違うのか
- ア(I + D)×P:命令数と深さをそのまま足しているため、重なっている一ピッチ分を二重に数えています。深さ3で4命令の表に当てると7ピッチとなり、実際の6ピッチより一つ多く出ます。
- ウ(I × D)+P:命令数と深さを掛ける形は、一つの命令を最後まで片付けてから次に取りかかる場合の姿に近く、重ね合わせで速くする仕組みを打ち消しています。さらに秒数を足す形になっており、時間の式として組み上がっていません。
- エ(I × D - 1)+P:こちらも掛け算で組んだうえに最後で秒数を足しており、ピッチの個数に秒を足し合わせる形になっています。全体がピッチ一つ分の秒数との積になっていない時点で、時間を表す式になりません。
出典:平成23年度 特別 応用情報技術者試験 午前 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)