バススヌープとは?
バススヌープとは、各キャッシュ制御部が共有バス上のアドレスとトランザクションを常時監視し、自分が保持しているラインに関わる書込みを検知したら、そのラインを無効化または更新する方式。キャッシュコヒーレンシを保つ代表的な手法。
エンベデッドシステムスペシャリスト試験の過去問では4回出題されています(2016年度〜2022年度)。
ばすすぬーぷ
バススヌープの意味
各キャッシュ制御部が共有バス上のアドレスとトランザクションを常時監視し、自分が保持しているラインに関わる書込みを検知したら、そのラインを無効化または更新する方式。キャッシュコヒーレンシを保つ代表的な手法。
バススヌープの具体例
コア1が共有アドレスへ書き込んだことをコア2のキャッシュが検知し、該当ラインを無効化する。
バススヌープは試験でどう引っ掛けられる?
バススヌープは「監視動作」であり、ライトスルー/ライトバックという「書込み方式」とは別の話。選択肢に並べて混同を誘う出題が多い。
バススヌープと関連する用語
バススヌープが出た過去問
図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープは共有バス監視でキャッシュ一貫性を保つ
複数のプロセッサがそれぞれキャッシュを持って主記憶を共有すると、あるプロセッサが書き換えた内容が他方の古いキャッシュに残り、内容が食い違うおそれがある。そこで各キャッシュ制御部が共有バス上のアドレスやトランザクションを常時見張り、自分が保持している行に関わる書込みを検知したら無効化や更新を行う。この監視動作がバススヌープで、キャッシュコヒーレンシを保つ基本的な手法である。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 am2 問1(IPA)図に示すマルチプロセッサシステムにおいて、各MPUのキャッシュメモリの内容を正しく保つために、共有する主記憶の内容が変化したかどうかを監視する動作はどれか。
正解:バススヌープ
要点:バススヌープはバス監視でキャッシュ整合性を保つ動作
複数のMPUがそれぞれキャッシュをもって主記憶を共有すると、あるMPUが書き換えたデータが他方のキャッシュに古いまま残るキャッシュコヒーレンシの問題が起きる。これを防ぐため、各キャッシュ制御回路が共有バス上のアドレスとアクセス種別を常時監視し、自分が保持する行に関係する書込みを見つけたら該当行を無効化または更新する。この監視動作をバススヌープ(スヌーピング)と呼ぶ。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 am2 問2(IPA)マルチコアプロセッサで用いられるスヌープキャッシュの説明として、適切なものはどれか。
正解:共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つ。
要点:スヌープ方式は共有バス監視でキャッシュ整合性を保つ
マルチコアでは各コアが専用キャッシュをもつため、同じ主記憶の内容が複数のキャッシュに重複して存在し、一方の更新が他方に伝わらないと不整合が生じる。スヌープキャッシュは、各キャッシュの制御回路が共有バス上のアクセスを常時監視し、他コアの書込みを検知したら自分の該当ブロックを無効化・更新することで整合性を保つ方式である。バスを共有する比較的少数のコア構成に適している。
出典:令和2年度 10月 エンベデッドシステムスペシャリスト試験 am2 問4(IPA)マルチコアプロセッサで用いられるスヌープキャッシュの説明として、適切なものはどれか。
正解:共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つ。
要点:共有バスを監視して他コアの書換えを検知するのがスヌープ方式
スヌープキャッシュは、各コアのキャッシュコントローラが共有バス上のトランザクションを常時監視(スヌープ)し、他コアが自分の保持するブロックを書き換えたことを検知して無効化や更新を行う方式である。これによりコア間でキャッシュの内容が食い違わないよう一貫性(コヒーレンシ)を保つ。バス監視という仕組み上、共有バス型の小〜中規模マルチコアに適し、コア数が増えるとバス帯域がボトルネックになる。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 am2 問1(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。