エンベデッドシステムスペシャリスト 2010年 午前2 問02
問題文
すべての命令が5サイクルで完了するように設計された、パイプライン制御のコンピュータがある。20命令を実行するには何サイクル必要となるか。ここで、すべての命令は途中で停止することなく実行でき、1ステージは1サイクルで動作を完了するものとする。
選択肢
ア:20
イ:21
ウ:24(正解)
エ:25
🔒 解説は解答すると表示されます
パイプライン実行時間の計算【午前2解説】
正解の理由
パイプラインでは、最初の命令が完了するまでに5サイクルかかります。その後は、パイプラインが満たされるため、原則として1サイクルごとに次の命令が完了します。
したがって、20命令の実行に必要なサイクル数は、次のとおりです。
よって、必要なサイクル数は24サイクルであり、ウが正解です。
解法ステップ
- パイプラインのステージ数を確認します。
1ステージが1サイクルで、命令の完了に5サイクルかかるため、ステージ数は5です。 - 最初の命令が完了するまでの5サイクルを数えます。
- 2命令目以降の19命令は、1サイクルごとに完了します。
- 合計は、サイクルです。
一般に、ステージ数を、命令数をとすると、停止や待ち時間がない場合の実行サイクル数は次の式で求められます。
選択肢別の誤答解説
- ア:20
1サイクルごとに命令が完了する点だけを数え、最初の命令が完了するまでの準備時間を考慮していません。 - イ:21
最初の命令が完了するまでのサイクル数と、後続命令が完了する間隔の数え方を誤っています。5ステージ目で最初の命令が完了した後、残り19命令が1サイクルずつ続きます。 - ウ:24
最初の命令に5サイクル、その後の19命令に19サイクルかかるため、適切です。 - エ:25
5ステージ分の時間を20命令それぞれに掛けるような計算になっています。これはパイプラインで命令を重ねて実行する効果を無視した数え方です。
よくある誤解
- 「1命令が5サイクルで完了する」ので、命令数に5を掛ける
これは命令を1つずつ順番に実行する場合の考え方です。パイプラインでは、異なる命令を別々のステージで並行して処理します。 - 20命令なら20サイクルで終わる
1サイクルごとに命令が完了するのは、パイプラインが動き始めてからです。最初の命令が完了するまでの5サイクルも必要です。 - サイクル数はステージ数と命令数を単純に足す
最初の命令の完了後、残りの命令数はです。そのため、式はになります。
補足コラム
パイプラインのレイテンシは、1つの命令が開始してから完了するまでの時間です。この問題では5サイクルです。一方、スループットは、一定時間あたりに処理できる命令数を表します。パイプラインが満たされた後は、この問題の条件では1サイクルに1命令を完了できます。
FAQ
Q. 20命令すべてが5サイクルかかるのではないのですか?
A. 各命令は5ステージを通りますが、パイプラインでは複数の命令が同時に異なるステージで処理されます。そのため、命令ごとに5サイクルを加算する必要はありません。
A. 各命令は5ステージを通りますが、パイプラインでは複数の命令が同時に異なるステージで処理されます。そのため、命令ごとに5サイクルを加算する必要はありません。
Q. 途中で停止や待ち時間がある場合も同じ式ですか?
A. いいえ。この問題は「途中で停止することなく実行できる」という条件です。停止や待ち時間がある場合は、その分のサイクル数を加える必要があります。
A. いいえ。この問題は「途中で停止することなく実行できる」という条件です。停止や待ち時間がある場合は、その分のサイクル数を加える必要があります。
関連キーワード: パイプライン処理、ステージ数、レイテンシ、スループット、実行サイクル数

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

