MESIプロトコル
複数のCPUコアのキャッシュが、どれがキャッシュラインに書き込めるかについて足並みをそろえるためのプロトコル。共有変数が高くつく理由である。
各キャッシュラインは4つの状態のいずれかを持つ。Modifiedは、このコアが書き換え、他に写しがないことを示す。Exclusiveは、内容が未変更で、ここにしかないことを示す。Sharedは、複数のコアが同じ未変更の写しを持つこと。Invalidは、内容を使ってはならないことを意味する。書き込みには排他性が要るため、コアは他のすべての写しを無効にする要求をブロードキャストする。コストを生むのはこの通信だ。現実的な帰結が、フォルスシェアリングである。たまたま同じ64バイトのラインにある、まったく無関係な変数に別々のスレッドが書き込むと、そのラインを奪い合い、数十倍遅くなることがある。AMDは状態にOwnedを、IntelはForwardを加えて拡張している。