キャッシュの仕組み解説編最後のテーマは、「コヒーレンシ」(Coherency)である。あまり耳にしない単語だが、直訳すると「首尾一貫性」といったところか。キャッシュの場合、この単語は「データの一貫性」「データの整合性」といった意味合いで利用される。これは、前回触れた複数レベルのキャッシュで問題となる場合もあるが、一番大きな問題が起きるのは、マルチプロセッサー/マルチコアCPUの環境である。 マルチプロセッサー環境でキャッシュの整合性を保つ スヌーピングとその方式 例えば図1のような、懐かしいデュアルCPU構造を例にとって見る。ここで「CPU #1」があるデータを書き換えたとする。 すると、図2のように1次/2次キャッシュの更新を経て、最終的にメモリーにそれを反映して終わる。ここまではいい。問題は「CPU #2」である。もしCPU #2が同じアドレスのデータをすでにキャッシュしていたとすると
![マルチコアCPUのキャッシュで問題となるコヒーレンシと解決策 (1/3)](https://cdn-ak-scissors.b.st-hatena.com/image/square/ffdeb658def5c6ec62bc79fa8d796091f74b2090/height=288;version=1;width=512/https%3A%2F%2Fascii.jp%2Fimg%2F2009%2F05%2F22%2F1512003%2Fl%2F3e5970d427835b8b.jpg%3F20200122)