平成26年度 秋期 午前Ⅱ 問19
コンピュータ構成要素
パイプラインハザードに関する問題
パイプラインハザード対策に関する記述のうち,アウトオブオーダ実行方式を用いたものはどれか。
- ア演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
- イ条件分岐命令の判定結果が分かるまで分岐後の命令実行が待たされることを防ぐために,分岐する確率が高い方の命令を先読みして実行する。
- ウ前の命令の演算結果がレジスタに書き込まれるまで次の命令の実行が待たされることを防ぐために,プロセッサ内にバイパス経路を設け,演算結果を演算器に直接入力して次の命令を実行する。
- エレジスタへのアクセスが競合して後続の命令の実行が待たされることを防ぐために,クロックサイクルを細分化し,サイクル前半を書込み,後半を読出しとすることで競合なく命令を実行する。
答えと解説を見る
✓ これが正解ア演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
解説
データがそろった後続の命令を先に実行するのが、アウトオブオーダ実行です。
パイプラインでは、前の命令の結果を待つために後ろの命令が進めなくなる停滞が起こり、これをパイプラインハザードと呼びます。アウトオブオーダ実行は、命令をプログラムに書かれた順番どおりに実行することにこだわらず、実行に必要なデータがそろった命令から先に実行する方式です。データ待ちで止まっている命令があっても、それと関係なく実行できる後続の命令に追い越させて処理することで、演算器を遊ばせずに済みます。名前のとおり順番の外で実行する方式なので、命令の実行順序を入れ替えているかどうかを手がかりにすると、他のハザード対策と見分けられます。
ほかの選択肢はなぜ違うのか
- イ条件分岐命令の判定結果が分かるまで分岐後…:条件分岐の判定結果が出る前に、分岐する確率の高い方の命令を先読みして実行するのは、分岐の行き先を予測して待ちを埋める対策です。分岐で生じる待ちへの対処であり、データのそろった命令から順序を入れ替えて実行する方式ではありません。
- ウ前の命令の演算結果がレジスタに書き込まれ…:前の命令の演算結果をレジスタへ書き込むのを待たず、バイパス経路で演算器に直接渡して次の命令を実行するのは、データの受け渡しを近道させる対策です。命令の順序はそのままで、後続の命令に追い越させてはいません。
- エレジスタへのアクセスが競合して後続の命令…:クロックサイクルを前半の書込みと後半の読出しに分けてレジスタへのアクセスの競合を避けるのは、資源の競合による待ちを解く対策です。命令の実行順序を入れ替えるものではないので、アウトオブオーダ実行にはあたりません。
出典:平成26年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問19
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)