キャッシュコヒーレンシとスヌープ方式とは?きゃっしゅこひーれんしとすぬーぷほうしき
キャッシュコヒーレンシとスヌープ方式とは、マルチプロセッサで各コアが個別に持つキャッシュの内容を、主記憶や他コアの写しと食い違わせないための一貫性制御をキャッシュコヒーレンシという。代表的な実装がスヌープ方式で、キャッシュ制御装置が共有バスを流れるアドレスを常時見張り、他コアが書き換えた番地の写しを自分の側で無効化または更新する。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
キャッシュは主記憶の遅さを隠すために写しをコアの近くへ置く仕組みだが、写しが複数あれば必ず食い違いが生じる。速度のために作った複製が正しさを壊すという矛盾を、ハードウェアの側で吸収するのがこの制御である。コア数が増えるとバスの監視が飽和するため、大規模な構成では写しの所在を表で集中管理するディレクトリ方式へ移る。
具体例
Intelのマルチコアプロセッサは、キャッシュラインにModified・Exclusive・Shared・Invalidの4状態を持たせるMESIプロトコルで写しを管理する。ソケットをまたぐ大規模なサーバでは、AMDのInfinity Fabricのように写しの所在を追跡する仕組みを併用して監視の負荷を抑える。
試験での引っ掛け
別々の変数でも同じキャッシュラインに載ると無効化が相互に飛び交い性能が落ちる(フォルスシェアリング)。またハードウェアが整合性を保つことと、プログラムの排他制御が不要になることは別問題である。コヒーレンシは値の食い違いを防ぐだけで、競合状態そのものは解決しない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。