キャッシュコヒーレンシとは?
キャッシュコヒーレンシとは、複数のプロセッサがそれぞれキャッシュを持ちながら主記憶を共有するとき、同じアドレスに対して各キャッシュが矛盾した値を持たないように保つこと。ハードウェアのプロトコル(MESIなど)で無効化または更新を行う。
エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2016年度〜2018年度)。
きゃっしゅこひーれんし
キャッシュコヒーレンシの意味
複数のプロセッサがそれぞれキャッシュを持ちながら主記憶を共有するとき、同じアドレスに対して各キャッシュが矛盾した値を持たないように保つこと。ハードウェアのプロトコル(MESIなど)で無効化または更新を行う。
キャッシュコヒーレンシの具体例
あるコアが共有変数を書き換えたら、他コアのキャッシュ上の同じ行を無効化して、次のアクセスで最新値を読み直させる。
キャッシュコヒーレンシは試験でどう引っ掛けられる?
DMA転送も一貫性の破壊要因になる。DMAで書き換えた領域はキャッシュを無効化、DMAで読み出す前はキャッシュをフラッシュする必要がある。
キャッシュコヒーレンシと関連する用語
キャッシュコヒーレンシが出た過去問
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープは共有バス監視でキャッシュ一貫性を保つ
複数のプロセッサがそれぞれキャッシュを持って主記憶を共有すると、あるプロセッサが書き換えた内容が他方の古いキャッシュに残り、内容が食い違うおそれがある。そこで各キャッシュ制御部が共有バス上のアドレスやトランザクションを常時見張り、自分が保持している行に関わる書込みを検知したら無効化や更新を行う。この監視動作がバススヌープで、キャッシュコヒーレンシを保つ基本的な手法である。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 am2 問1(IPA)図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープはバス監視でキャッシュ整合性を保つ動作
複数のMPUがそれぞれキャッシュをもって主記憶を共有すると、あるMPUが書き換えたデータが他方のキャッシュに古いまま残るキャッシュコヒーレンシの問題が起きる。これを防ぐため、各キャッシュ制御回路が共有バス上のアドレスとアクセス種別を常時監視し、自分が保持する行に関係する書込みを見つけたら該当行を無効化または更新する。この監視動作をバススヌープ(スヌーピング)と呼ぶ。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 am2 問2(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。