令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問21

パイプラインの深さを DD,パイプラインピッチを PP 秒とすると,II 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで,パイプラインは 1本だけとし,全ての命令は処理に DD ステージ分の時間がかかり,各ステージは 1 ピッチで処理されるものとする。また,パイプラインハザードについては,考慮しなくてよい。

解答・解説

正解: イ. (I+D−1)×P(I + D - 1) \times P

パイプライン処理において、II 個の命令を実行するのに要する時間は、最初の1命令の実行時間と残りの命令の実行時間に分けて計算することができます。

  1. 最初の1命令の実行時間:
    1つの命令は DD ステージに分割されており、各ステージは 11 ピッチで処理されます。したがって、最初の命令が完了するまでには DD ピッチかかります。

  2. 残りの命令の実行時間:
    パイプライン処理では、最初の命令以降は 11 ピッチごとに次の命令が完了します。命令は全部で II 個あるため、残りの命令数は (I−1)(I - 1) 個です。これらが完了するまでには (I−1)(I - 1) ピッチかかります。

したがって、すべての命令を処理し終えるために必要な合計ピッチ数は、D+(I−1)=I+D−1D + (I - 1) = I + D - 1 ピッチとなります。
1ピッチの時間が PP 秒であるため、合計実行時間は (I+D−1)×P(I + D - 1) \times P 秒となります。

各選択肢の解説

  • ア: (I+D)×P(I + D) \times P は、残りの命令数を II 個のまま計算してしまっている(最初の命令の分を重複して数えている)誤りです。
  • イ: 正解です。
  • ウ: (I×D)+P(I \times D) + P は、命令数とステージ数を掛け合わせたものにピッチを足しており、数式の意味や単位が破綻している誤りです。
  • エ: (I×D−1)+P(I \times D - 1) + P も、パイプラインの並列実行を考慮しておらず、実行時間を求める式として誤っています。

Spineチーム