Memory Disambiguationとは?

最終更新日 2019年10月11日

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 と呼ぶようです。


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