令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問3

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

解答・解説

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

パイプライン処理の実行時間について

パイプライン処理において、II 個の命令を実行するのに要する時間を考えます。

  1. 最初の1命令 が処理を完了するまでには、パイプラインの深さ(ステージ数)分である DD ピッチの時間がかかります。
  2. 続く残りの I−1I - 1 個の命令 は、パイプラインが満たされているため、ハザードがない状態ではそれぞれ 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
    必要なピッチ数よりも1ピッチ分多く計算されています。最初の命令完了までのピッチ数を D+1D+1 と誤解した場合などに導かれる式です。
  • イ: (I+D−1)×P(I + D - 1) \times P
    正解です。 上記の通り、パイプライン処理における正しい実行時間の式です。
  • ウ: (I×D)+P(I \times D) + P
    単位や式の意味が不適切です。パイプラインを用いず逐次処理した場合にかかる実行時間は (I×D)×P(I \times D) \times P となります。
  • エ: (I×D−1)+P(I \times D - 1) + P
    こちらも単位や式の意味が不適切であり、誤りです。

Spineチーム