キャッシュの仕組み解説編最後のテーマは、「コヒーレンシ」(Coherency)である。あまり耳にしない単語だが、直訳すると「首尾一貫性」といったところか。キャッシュの場合、この単語は「データの一貫性」「データの整合性」といった意味合いで利用される。これは、前回触れた複数レベルのキャッシュで問題となる場合もあるが、一番大きな問題が起きるのは、マルチプロセッサー/マルチコアCPUの環境である。 マルチプロセッサー環境でキャッシュの整合性を保つ スヌーピングとその方式 例えば図1のような、懐かしいデュアルCPU構造を例にとって見る。ここで「CPU #1」があるデータを書き換えたとする。 すると、図2のように1次/2次キャッシュの更新を経て、最終的にメモリーにそれを反映して終わる。ここまではいい。問題は「CPU #2」である。もしCPU #2が同じアドレスのデータをすでにキャッシュしていたとすると