令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
テクノロジ/コンピュータ構成要素マルチコアプロセッサで用いられるスヌープキャッシュの説明として,適切なものはどれか。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問1
- ア各コアがそれぞれ独立のメモリ空間とキャッシュをもつことによって,コヒーレンシを保つ。
- イ共有バスを介して,各コアのキャッシュが他コアのキャッシュの更新状態を管理し,コヒーレンシを保つ。
- ウ全てのキャッシュブロックを一元管理するディレクトリを用いて,キャッシュのコヒーレンシを保つ。
- エ一つのキャッシュを各コアが共有することによって,コヒーレンシを保つ。
正解:イ
解説
スヌープキャッシュは,マルチコアプロセッサや対称型マルチプロセッサ(SMP)において,各コアが自分のキャッシュに対する他コアからのバスアクセス(書込みなど)を共有バス上で監視(スヌープ)し,他コアが保持する同じアドレスのキャッシュラインの更新を検知して自コアのキャッシュを無効化又は更新することで,コヒーレンシ(一貫性)を保つ方式です。小~中規模のマルチコアで広く用いられています。
選択肢ごとの解説
- ア誤り。各コアが独立したメモリ空間とキャッシュをもち,互いに関知しない構成では,共有データの整合性を保証できません。むしろコヒーレンシ制御が不要な非対称な構成の説明に近い記述です。
- イ正しい。共有バスを介して他コアのキャッシュの更新状態を監視し,コヒーレンシを保つ方式がスヌープキャッシュ(バススヌーピング方式)です。
- ウ誤り。全キャッシュブロックの状態を一元管理するディレクトリを用いる方式は,ディレクトリ方式(ディレクトリベースのキャッシュコヒーレンシプロトコル)の説明であり,多数のコアをもつ大規模システムで用いられます。
- エ誤り。一つのキャッシュを複数のコアで共有する構成(共有キャッシュ)は,コヒーレンシの問題自体が生じにくい構成であり,スヌープによる監視の説明ではありません。