キャッシュコヒーレンシとMESIプロトコルとは?
キャッシュコヒーレンシとMESIプロトコルとは、マルチプロセッサでは各コアが自分のキャッシュに同じ番地の写しを持つため、片方が書き換えると内容が食い違う。これを防いで整合性を保つ仕組みがキャッシュコヒーレンシ制御で、MESIは各ブロックを Modified/Exclusive/Shared/Invalid の4状態で管理する代表的な方式。
きゃっしゅこひーれんしとめしぷろとこる
キャッシュコヒーレンシとMESIプロトコルの意味
マルチプロセッサでは各コアが自分のキャッシュに同じ番地の写しを持つため、片方が書き換えると内容が食い違う。これを防いで整合性を保つ仕組みがキャッシュコヒーレンシ制御で、MESIは各ブロックを Modified/Exclusive/Shared/Invalid の4状態で管理する代表的な方式。
キャッシュコヒーレンシとMESIプロトコルの具体例
コア0がある変数を書き換えるとき、他コアの写しへ無効化(Invalid)を通知し、自分の状態をModifiedにする。この通知はバスの監視(スヌープ)で行うため、複数コアが同じキャッシュラインを頻繁に書き換えると通知が飛び交い、フォルスシェアリングとして性能が落ちる。
キャッシュコヒーレンシとMESIプロトコルは試験でどう引っ掛けられる?
コヒーレンシはハードウェアが自動で保つので、プログラマが明示的に同期しなくても値の食い違いは起きない。ただし実行順序の保証は別問題(メモリオーダリング)であり、排他制御が不要になるわけではない。
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。