投機的実行 【speculative execution】

概要

投機的実行(speculative execution)とは、コンピュータの処理を高速化する手法の一つで、将来必要になるかもしれない処理を、(必要になると確定する前に)あらかじめい結果を用意しておくこと。

広義には、ソフトウェアが少し先に必要としそうなメモリストレージネットワーク上のデータを先に読み込んでおくプリフェッチプリロード)などを含むが、狭義にはマイクロプロセッサプログラム実行する際に分岐先の命令を先行して実行し始める手法を指す。

現代的なプロセッサパイプライン機構を用いて複数の命令を(実行段階をずらして)並行に実行することができるが、途中に条件分岐命令が含まれると、その命令を実行し終えて分岐先(正確には分岐するかしないか)が確定するまで次の命令がどれになるのか知ることができない。

このような場合に、どちらに分岐するのかを予測(分岐予測)し、予測先の命令を先行してパイプラインに投入して実行し始めてしまうことを投機的実行という。予測が当たれば分岐先の確定を待つより高速に処理を継続できるが、外れた場合は実行途中の命令を破棄して正しい分岐先の命令の実行をやり直す。外れても確定を待つのと同じであるため、投機的実行をしないよりは全体として高速になる。

(2018.11.30更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる