アウトオブオーダとは?

最終更新日 2019年10月11日

アウトオブオーダとは何か

アウトオブオーダー実行 - 意味・説明・解説 : ASCII.jpデジタル用語辞典 には、アウトオブオーダについて、以下のとおり書かれています。(この記事の更新年月日は2010年4月16日)
マイクロプロセッサーの高速化手法のひとつ。本来の命令の順序に関係なく、依存関係にない命令を複数実行していく手法。
ASCII.jp:命令の実行順を変えて高速化するアウトオブオーダー (1/4)|ロードマップでわかる!当世プロセッサー事情 には、(この記事の公開年月日は2010年9月27日)
 アウトオブオーダーは上に書いたとおり、「与えられた命令を一度展開し、依存関係がない順に順次実行する」方式である。
コンピュータアーキテクチャの話(152) アウトオブオーダ実行とその問題点 | マイナビニュース には、以下のとおり書かれています。(この記事の公開年月日は2009年7月30日)
ということで、プログラムの中での命令の順序を変えて、出来る命令から先にやるというマイクロアーキテクチャが考えられた。この方式は、命令として記述された順序を崩して実行するので「Out of Order(アウトオブオーダ)実行」と呼ばれる。
以上いろいろな記事を見てきましたが、一連の命令を並び替えて、他の命令の実行が終わるまで待つ必要がない命令を先に実行できるようにすることを、アウトオブオーダと呼ぶようです。

例えば、以下の一連の命令があるとします。

1.レジスタ1にデータ1を読み込む
2.レジスタ2にデータ2を読み込む
3.レジスタ1とレジスタ2を足し合わせ結果をレジスタ3に書き込む
4.レジスタ4にデータ3を読み込む
5.レジスタ5にデータ4を読み込む
6.レジスタ4とレジスタ5を足し合わせ結果をレジスタ6に書き込む

1、2、4、5の処理は依存関係がないので、アウトオブオーダを実行し一連の命令を並び替えると以下のとおりになります。

1.レジスタ1にデータ1を読み込む
2.レジスタ2にデータ2を読み込む
3.レジスタ4にデータ3を読み込む
4.レジスタ5にデータ4を読み込む
5.レジスタ1とレジスタ2を足し合わせ結果をレジスタ3に書き込む
6.レジスタ4とレジスタ5を足し合わせ結果をレジスタ6に書き込む


キャンペーン情報
マウスコンピューター
冬のボーナスセール icon
期間限定で大幅値引き!最大60,000円OFF!!(一部モデルのみ)
(11月20日迄)
DELL
・PRE-BLACK FRIDAYセール
Office付き秋の感謝モデルほか、デスクトップ製品がクーポンで最大18%Off
(キャンペーン実施中)
ドスパラ
・最大20%還元 冬のボーナスセール
特価パソコンをはじめ、お買得なパソコンパーツ、周辺機器を多数ご用意
(11月28日迄)
パソコン工房
・Windows 10乗り換え応援セール×総額3億円分早い者勝ち!
BTOパソコンやPCパーツ・周辺機器などがお得な価格
(11月26日迄)

CPUのアウトオブオーダ



マウスコンピューター/G-Tune