Memory Disambiguationとは?

最終更新日 2023年09月07日

Memory Disambiguation とは何か

Intel CTOが新アーキテクチャーの詳細を公開 IDF基調講演レポート には、以下のとおり書かれています。(この記事の公開年月日は2006年3月9日)
Memory Disambiguationとは、命令の並列実行、Out-of-Order実行の場合に、ロード命令とストア命令が対象とするアドレスが重複するかどうかを判定するもの。依存関係がないと判明すれば、ロードとストア命令を無関係に実行できる。依存関係がある場合には、ストア命令を先に実行しなければならなくなる。
Intel Coreマイクロアーキテクチャの目指す世界 - @IT には、Memory Disambiguation について、以下のとおり書かれています。(この記事の公開年月日は2006年5月13日)
これは、実行コアにインテリジェントなアルゴリズムを組み込むことによって、先行するストア命令が完了する前に、ロード命令を投機的に実行し、アウト・オブ・オーダー処理の効率を高めるというものだ。
第3回 Coreマイクロアーキテクチャ に迫る[後編] (3/4) - ITmedia PC USER には、以下のとおり書かれています。(この記事の公開年月日は2007年2月1日)
メモリー・ディスアンビギュレーションは、ストア命令の対象アドレスが決定する前に、後続するロード命令のアドレスと重なるかどうかを予測して、重ならない可能性が高い場合は、ストア命令の完了を待たずにロード命令を投機実行します。
メインメモリの某アドレスにあるデータを読み込みレジスタに書き込む命令を、ロード命令と呼びます。

レジスタにあるデータをメインメモリの某アドレスに書き込む命令を、ストア命令と呼びます。

某アドレスが同じでありストア命令の次にロード命令が並んでいる場合、ロード命令ではストア命令によって書き込まれたデータを読み込む必要がありますので、ストア命令を先に実行しロード命令は後に実行する必要があります。

某アドレスが違うなら、ロード命令を先に実行し、後にストア命令を実行できます。

ストア命令が指定するメインメモリのアドレスが、後のロード命令が指定するメインメモリのアドレスと違う可能性が高いなら、ストア命令よりも先にロード命令を実行する機能を、Memory Disambiguation と呼ぶようです。


キャンペーン情報(PR)
マウスコンピューター
・春のパソコンセール
最大70,000円OFF!!
(4月24日迄)
DELL
・今週のおすすめ製品
対象製品が最大20%OFF
(キャンペーン実施中)
パソコン工房
・WEB開催!スプリングセール
ゲーミング・クリエイター向けパソコンなどをご用意
(4月23日迄)