コヒーレンシ
【英】cache coherency
コヒーレンシーとは、メインメモリとキャッシュメモリのデータにおける一貫性のことである。
コヒーレンシーは特にマルチプロセッサにおいて重要視される。通常、データがキャッシュメモリに上にあれば、そのキャッシュメモリから内容を読み取る。複数のプロセッサがデータを扱う場合に、メインメモリ上のデータとキャッシュメモリ上のデータに違いがあると、正しい処理が行われなくなってしまう。
コヒーレンシーを保つための技術はいくつかある。例としては、先にキャッシュメモリだけに書き込み、キャッシュから追い出されるときに、メインメモリに書き出すライトバック方式と、メモリ内容をキャッシュメモリとメインメモリに同時に書き込むライトスルー方式などを挙げることができる。なお、DMAコントローラによるメモリ転送のようなプロセッサとは独立したメモリ書き込みがあると、メインとキャッシュメモリ間での内容に不一致が発生する問題がある。この問題を回避するためには、メモリ転送をキャッシュ対象外のメモリに限定する、一時的にキャッシュを無効にする、あるいは監視によりメインメモリからキャッシュメモリにコピーすることで一貫性を取る機構が必要となる。
- cache coherencyのページへのリンク