これは、インテルのソフトウェア開発者マニュアル (注文番号: 325384-039US 2011 年 5 月) を参照して、セクション 4.10.4.4「無効化の遅延」で、TLB エントリの無効化の潜在的な遅延について説明しています。変更されました。
ソフトウェア開発者は、ページング構造エントリの変更とセクション4.10.4.2で推奨されている無効化命令の実行の間に、プロセッサが使用する可能性があることを理解する必要があります。ページング構造エントリの古い値または新しい値のいずれかに基づく変換. 次の項目は、遅延無効化の潜在的な結果のいくつかを説明しています: ページング構造エントリが変更され、R/W フラグが 0 から変更された場合1 にすると、このエントリによって変換が制御されるリニア アドレスへの書き込みアクセスで、ページ フォールト例外が発生する場合と発生しない場合があります。 "
線形アドレスのページ構造エントリが変更され (r/w フラグが 0 から 1 に反転)、その後、対応する TBL 無効化命令がすぐに呼び出される単純なケースを考えてみましょう。私の質問は、TLB の無効化の遅延の結果として、TLB の無効化を呼び出した後でも、問題の線形アドレスへの書き込みアクセスが失敗しない可能性があるということです (ページ フォールト)。
または、「遅延無効化」は、ページ構造が変更された線形アドレスの「無効化」命令が発行されていない場合にのみ、予測できない結果を引き起こす可能性がありますか?