Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3: "System Programming Guide" より
8.2.5「メモリー順序付けモデルの強化または弱体化」
マルチプロセッサ システムの同期メカニズムは、強力なメモリ順序付けモデルに依存する場合があります。ここで、プログラムは XCHG 命令や LOCK プレフィックスなどのロック命令を使用して、メモリに対する読み取り-変更-書き込み操作がアトミックに実行されるようにすることができます。ロック操作は通常、前のすべての命令が完了し、バッファリングされたすべての書き込みがメモリに排出されるまで待機するという点で、I/O 操作のように動作します(セクション8.1.2「バスロック」を参照)。
そして8.1.2から:
ロックされた操作は、他のすべてのメモリ操作および外部から見えるすべてのイベントに関してアトミックです。ロックされた命令を渡すことができるのは、命令フェッチとページ テーブル アクセスのみです。ロックされた命令を使用して、あるプロセッサによって書き込まれたデータと別のプロセッサによって読み取られたデータを同期させることができます。
P6 ファミリ プロセッサの場合、ロックされた操作は、すべての未処理のロードおよびストア操作をシリアル化します (つまり、それらが完了するのを待ちます)。この規則は、1 つの例外を除いて、Pentium 4 および Intel Xeon プロセッサにも当てはまります。弱い順序付けのメモリ タイプ (WC メモリ タイプなど) を参照するロード操作は、シリアル化されない場合があります。