スーパスカラプロセッサにおけるアウトオブオーダ(Out-of-Order)実行方式

アウトオブオーダ実行(Out-of-Order Execution) は、プログラムコード内に記述された命令の出現順序(インオーダ)にとらわれず、依存関係のない先行命令がデータ待ち(メモリアクセス待ちや長時間の演算など)で停止している間に、 実行に必要なオペランドデータが既に揃っている後続の命令を追い越して先に実行する プロセッサ高速化技術です。演算器の空き時間を最小化し、命令レベル並列性(ILP)を最大限に引き出します。したがって、正解は ア です。 イ: 分岐先を予測して命令を先読み実行するのは「分岐予測/投機実行」の説明です。 ウ: 演算器の出力をレジスタファイルを経由せず次の演算器入力へ直結するのは「フォワーディング(バイパシング)」の説明です。 エ: 1クロックサイクルの前半と後半でレジスタの読出しと書込みを分離して構造ハザードを回避する手法の説明です。

パイプラインハザード対策に関する記述のうち,アウトオブオーダ実行方式を用いたものはどれか。

出典令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
ア
演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
イ
条件分岐命令の判定結果が分かるまで分岐後の命令実行が待たされることを防ぐために,分岐する確率が高い方の命令を先読みして実行する。
ウ
前の命令の演算結果がレジスタに書き込まれるまで次の命令の実行が待たされることを防ぐために,プロセッサ内にバイパス経路を設け,演算結果を演算器に直接入力して次の命令を実行する。
エ
レジスタへのアクセスが競合して後続の命令の実行が待たされることを防ぐために,クロックサイクルを細分化し,サイクル前半を書込み,後半を読出しとすることによって競合なく命令を実行する。