IT用語辞典バイナリ |
アウト・オブ・オーダー実行
アウト・オブ・オーダー実行とは、マイクロプロセッサの処理を高速化するための手法の1つで、プログラムで記述されている順序とは異なる順序でプログラム中の命令を実行することである。
ウィキペディア |
アウト・オブ・オーダー実行
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/05/28 02:55 UTC 版)
アウト・オブ・オーダー実行(-じっこう、英: out-of-order execution)とは、コンピュータ科学でのパラダイムの一つであり、命令実行効率を上げるために、多くのプロセッサで採用している実装手法の1つである。アクロニムの'OoO'あるいは'O-o-O'とも書かれる。「順序を守らない実行」の意。
プロセッサの設計と実装において、命令レベルの並列性(Instruction-level parallelism; ILP)を高めることは1つの目標でありスーパースケーラにより1サイクルあたり2命令を越えることが可能になったが、フォンノイマンアーキテクチャの前提である逐次実行が、並列化を施す上での障壁となっていた。アウト・オブ・オーダー実行(以下、OoO)は、順番を変えて実行することにより、複数命令の同時実行の可能性を広げる最適化手法の1つである。OoOと同時マルチスレッディング(Simultaneous Multithreading; SMT)を併用することで、さらに実行ユニットの稼働率を上げ、ILPを向上することが可能となる。また、OoOプロセッサであることはSMTを実装しやすくする。ただし、OoOであることはSMTプロセッサの必要要件ではない(例:Intel Atom)。
アウト・オブ・オーダー実行に対して、プログラムに書かれた通りに逐次実行することを、イン・オーダー実行と言う。
|
||||||||||||||||||||||||||||
- 1 アウト・オブ・オーダー実行とは
- 2 アウト・オブ・オーダー実行の概要
- 3 処理の実行と結果の書き込みを分離することで、プログラムの再起動が可能になった