令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
テクノロジ/コンピュータ構成要素パイプラインハザード対策に関する記述のうち,アウトオブオーダー実行方式を用いたものはどれか。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
- ア演算に必要なデータがそろうまで実行が待たされている命令によって,後続の命令の実行が待たされることを防ぐために,既にデータがそろっている後続の命令があれば,それを先に実行する。
- イ条件分岐命令の判定結果が分かるまで分岐後の命令実行が待たされることを防ぐために,分岐する確率が高い方の命令を先読みして実行する。
- ウ前の命令の演算結果がレジスタに書き込まれるまで次の命令の実行が待たされることを防ぐために,プロセッサ内にバイパス経路を設け,演算結果を演算器に直接入力して次の命令を実行する。
- エレジスタへのアクセスが競合して後続の命令の実行が待たされることを防ぐために,クロックサイクルを細分化し,サイクル前半を書込み,後半を読出しとすることによって競合なく命令を実行する。
正解:ア
解説
アウトオブオーダー実行は,プログラム上の命令の並び順にとらわれず,実行に必要なデータやリソースがそろった命令から先に実行することで,データハザードによるパイプラインの停止(ストール)を減らす方式です。ある命令が演算に必要なデータのそろうのを待っている間に,後続の命令のうち既に実行可能な(データがそろっている)ものがあれば,それを先に実行することでプロセッサの実行資源を有効に使います。
選択肢ごとの解説
- ア正しい。データがそろうまで待たされている命令を追い越して,既にデータがそろっている後続の命令を先に実行するのが,アウトオブオーダー実行の考え方です。
- イ誤り。分岐する確率が高い方を予測して先読み実行するのは分岐予測(投機実行)の説明であり,命令の実行順序を入れ替えるアウトオブオーダー実行そのものの説明ではありません。
- ウ誤り。演算結果を演算器に直接渡すバイパス経路(フォワーディング)は,データハザードを解消する別の技法であり,命令の実行順序を入れ替えるものではありません。
- エ誤り。クロックサイクルを前半と後半に分けてレジスタへの書込みと読出しを行う方式は,構造ハザード(レジスタアクセスの競合)を解消するための工夫であり,命令の実行順序の入替えとは異なります。