令和3年度 春期 午前Ⅱ 問21
コンピュータ構成要素
パイプラインに関する問題
パイプラインの深さをD,パイプラインピッチをP秒とすると,I個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで,パイプラインは1本だけとし,全ての命令は処理にDステージ分の時間がかかり,各ステージは1ピッチで処理されるものとする。また,パイプラインハザードについては,考慮しなくてよい。
- ア(I+D)×P
- イ(I+D−1)×P
- ウ(I×D)+P
- エ(I×D−1)+P
答えと解説を見る
✓ これが正解イ(I+D−1)×P
解説
最初の命令にDピッチ、以後1ピッチずつで(I+D−1)×Pです。
パイプラインでは、命令を幾つかのステージに分け、前の命令が次のステージへ進むと同時に、次の命令が最初のステージに入ります。最初の命令は、D個のステージを通り抜けるのにDピッチかかります。それ以降は、各ピッチの終わりに1個ずつ命令が完了していくので、残りのI−1個の命令には1ピッチずつ、合計I−1ピッチが加わります。したがって、全体ではD+(I−1)=I+D−1ピッチで、1ピッチがP秒なので(I+D−1)×P秒です。例えばD=5、I=10なら14ピッチとなり、ステージの表を描いて数えても同じ値になります。最初の1個はDピッチ、あとは1個につき1ピッチと分けて数えるのが、パイプラインの時間計算の基本です。
ほかの選択肢はなぜ違うのか
- ア(I+D)×P:(I+D)×Pは、正しいピッチ数I+D−1より1ピッチ多く数えた式です。最初の命令のDピッチに残りのI−1個分を足すべきところを、I個分を足しているため、最初の命令を二重に数えています。
- ウ(I×D)+P:(I×D)+Pは、命令の個数とステージ数の積にP秒を足しており、ピッチ数と秒を足し合わせている点で単位がそろいません。I×Dは、命令を重ねずに一つずつ順に実行した場合のピッチ数です。
- エ(I×D−1)+P:(I×D−1)+Pも、ピッチ数にP秒を足しているため、時間を表す式として単位が合いません。I×Dを基にしている点で、命令を重ねて処理するパイプラインの効果も反映されていません。
出典:令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)