令和3年度 秋期 午前Ⅱ 問1
プロセッサ
アウトオブオーダ実行の問題
パイプラインハザード対策に関する記述のうち,アウトオブオーダ実行方式を用いたものはどれか。
- ア演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
- イ条件分岐命令の判定結果が分かるまで分岐後の命令実行が待たされることを防ぐために,分岐する確率が高い方の命令を先読みして実行する。
- ウ前の命令の演算結果がレジスタに書き込まれるまで次の命令の実行が待たされることを防ぐために,プロセッサ内にバイパス経路を設け,演算結果を演算器に直接入力して次の命令を実行する。
- エレジスタへのアクセスが競合して後続の命令の実行が待たされることを防ぐために,クロックサイクルを細分化し,サイクル前半を書込み,後半を読出しとすることによって競合なく命令を実行する。
答えと解説を見る
✓ これが正解ア演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
解説
準備のできた後続命令を先に実行するのがアウトオブオーダ実行です。
アウトオブオーダ実行は、プログラムに書かれた順番どおりではなく、実行の準備が整った命令から先に処理する方式です。見分ける軸は、命令の実行順序そのものを入れ替えているかどうかです。データがそろうまで待たされている命令がある間に、すでにデータのそろった後続の命令を先に実行するという記述は、順序を入れ替えてパイプラインの空きを埋めているので、この方式に当たります。ほかの記述は、分岐先の先読み、演算結果を直接渡す経路、レジスタアクセスの時間分割によって待ちを減らす工夫で、命令の順番は入れ替えていません。順序を入れ替えるかどうかで仕分けると見分けやすくなります。
ほかの選択肢はなぜ違うのか
- イ条件分岐命令の判定結果が分かるまで分岐後…:条件分岐の結果を待たずに、分岐する確率が高い方の命令を見込んで先に実行する記述です。条件分岐が原因で起きる制御ハザードへの対策であり、準備のできた命令から順序を入れ替えて実行する仕組みとは狙いが違います。
- ウ前の命令の演算結果がレジスタに書き込まれ…:演算結果をレジスタへ書き込む前に、バイパス経路で次の命令の演算器へ直接渡す記述です。前の命令の結果を待つ時間を短くする工夫で、命令は書かれた順番のまま実行されるので、アウトオブオーダ実行には当たりません。
- エレジスタへのアクセスが競合して後続の命令…:1クロックサイクルを前半の書込みと後半の読出しに分け、同じレジスタへのアクセスがぶつからないようにする記述です。資源の取り合いによる構造ハザードへの対策であり、後続の命令に追い越させる方式ではありません。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)