エンベデッドシステムスペシャリスト 2023年 午前2 問03
問題文
パイプラインの深さを、パイプラインピッチを秒とすると、個の命令をパイプラインで実行するのに要する時間を表す式はどれか。ここで、パイプラインは1本だけとし、全ての命令は処理にステージ分の時間が掛かり、各ステージは1ピッチで処理されるものとする。また、パイプラインハザードについては、考慮しなくてよい。
選択肢
ア:
イ:(正解)
ウ:
エ:
🔒 解説は解答すると表示されます
パイプライン実行時間【午前2解説】
正解の理由
パイプラインでは、最初の命令が完了するまでに、各ステージを通過する時間として ピッチかかります。その後は、パイプラインが満たされているため、命令が1個完了するごとに次の命令も1ピッチで完了します。
命令が 個の場合、最初の命令の完了後に残る命令は 個です。したがって、必要なピッチ数は
となり、パイプラインピッチ を掛けた実行時間は
です。この式に当てはまるイが正解です。
解法ステップ
-
最初の命令が完了するまでの時間を考えます。
ステージを1ピッチずつ処理するため、 ピッチかかります。 -
2個目以降の命令の完了間隔を考えます。
パイプラインが動作中なら、命令は1ピッチごとに完了します。残りの命令は 個なので、追加で ピッチかかります。 -
合計ピッチ数に を掛けます。
選択肢別の誤答解説
-
ア:
最初の命令の完了に必要な ピッチと、その後の命令に必要な ピッチを足す際に、1ピッチ多く数えています。 -
イ:
最初の命令に ピッチ、残りの 個の命令に追加で ピッチかかることを正しく表しています。 -
ウ:
としているため、各命令がパイプライン全体を通過する時間を命令ごとに加算しています。これはパイプライン処理ではなく、命令を順番に処理する場合に近い考え方です。また、時間の単位も式の中で整合していません。 -
エ:
命令ごとに ステージ分の時間を加算しており、パイプラインによる重ね合わせを考慮できていません。さらに、ピッチ数と時間の単位も適切に扱えていません。
よくある誤解
-
命令数にステージ数をそのまま掛ける
パイプラインでは複数の命令を別々のステージで同時に処理できます。したがって、単純に ピッチとはなりません。 -
最初の命令も1ピッチで完了すると考える
最初の命令は全ステージを通過する必要があるため、完了までに ピッチかかります。 -
最後にもう1ピッチ加える
最後の命令が完了した時点で実行は終了します。完了後の追加ピッチは不要です。
補足コラム
この式は「最初の命令が完了するまでの時間」と「命令が1ピッチごとに完了する状態」を組み合わせたものです。たとえば、、 の場合、最初の命令の完了に4ピッチ、その後の4命令の完了に4ピッチかかるため、合計は8ピッチ、実行時間は です。
FAQ
Q. パイプラインの段数が増えると、実行時間も必ず長くなりますか?
A. この問題の条件では、 が増えると最初の命令が完了するまでの時間が長くなります。一方、パイプラインが満たされた後の命令の完了間隔は、引き続き1ピッチです。
A. この問題の条件では、 が増えると最初の命令が完了するまでの時間が長くなります。一方、パイプラインが満たされた後の命令の完了間隔は、引き続き1ピッチです。
Q. パイプラインハザードがある場合も同じ式ですか?
A. いいえ。ハザードによる停止や待ち時間が発生する場合は、その追加時間も考慮する必要があります。この問題ではハザードを考慮しないため、提示された式で計算できます。
A. いいえ。ハザードによる停止や待ち時間が発生する場合は、その追加時間も考慮する必要があります。この問題ではハザードを考慮しないため、提示された式で計算できます。
Q. 命令が1個だけの場合はどうなりますか?
A. を式に代入すると となり、1個の命令が ステージを通過する時間と一致します。
A. を式に代入すると となり、1個の命令が ステージを通過する時間と一致します。
関連キーワード: パイプライン処理、パイプラインピッチ、パイプラインの深さ、命令実行時間、スループット

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

