問題 No.5741
プロセッサの高速化技術であるアウトオブオーダー実行に関する記述として、不適切なものはどれか。
【正解の解説】
プログラムの記述順序通りに命令を実行し、後続の命令が前の命令の結果を待たずに処理を進めることで処理効率を向上させる。
アウトオブオーダー実行とは、プログラムの記述順序をあえて無視して、準備ができた命令から順番に処理を進める仕組みです。レストランの厨房で、調理に時間がかかるスープを煮込んでいる間に、すぐできるサラダの盛り付けを先に終わらせるようなものであり、順番通りに実行するというのは逆の意味になります。
スポンサーリンク
【その他の選択肢の解説】
プログラムの依存関係を動的に解析し、実行可能な命令から順次処理を行うことでプロセッサの稼働率を高める。
この選択肢はまさにアウトオブオーダー実行の定義そのものを述べています。料理の注文がバラバラに入ってきても、材料が揃っているものから次々と調理していく手際の良いシェフのように、CPUが待ち時間を無くして効率よく動くための仕組みを表しています。
プログラムの記述順序通りに命令をフェッチし、データ依存性のない後続命令を先に処理することで全体の実行時間を短縮する。
フェッチ(命令の読み込み)は順番通りに行いますが、中身を実行する段階で前の命令の計算結果を待たなくてよいものを見つけ、先に片付けてしまうのがこの技術のキモです。順番に縛られず、今できることを探してスイスイ進めることで全体の待ち時間を大幅に短縮できます。
プログラムの記述順序に従って命令を直列に処理し、ハードウェア側で制御の複雑さを軽減することでクロック周波数を向上させる。
直列に処理してしまうと、前の命令が止まったときに後ろの命令もすべて足止めを食らってしまいます。ハードウェア側であえて順番を入れ替えて効率化を図るのがアウトオブオーダー実行の最大の特徴であるため、直列に処理するという記述は技術の目的と完全に矛盾しています。