エンベデッドシステムスペシャリスト 2013年 午前2 問04
問題文
マルチコアプロセッサで用いられるスヌープキャッシュの説明として、適切なものはどれか。
選択肢
ア:各コアがそれぞれ独立のメモリ空間とキャッシュをもつことによって、コヒーレンシを保つ。
イ:各コアが一つのキャッシュを共有することによって、コヒーレンシを保つ。
ウ:共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つ。(正解)
エ:全てのキャッシュブロックを一元管理するディレクトリを用いて、キャッシュのコヒーレンシを保つ。
🔒 解説は解答すると表示されます
スヌープキャッシュの整合性管理【午前2解説】
正解の理由
スヌープキャッシュでは、各コアが持つキャッシュの状態を、共有バス上の通信を監視(スヌープ)することで整合させます。
あるコアがキャッシュ上のデータを書き換えると、その更新や無効化のための情報が共有バスに流れます。他のコアのキャッシュはその情報を監視し、必要に応じて該当データを更新したり、無効にしたりします。これにより、複数のキャッシュに同じデータがある場合でも、値の不一致を防ぎます。
この方式を説明しているのは、ウです。
解法ステップ
- 問題文の「スヌープ」に注目します。これは、各キャッシュが共有バス上の通信を監視する仕組みです。
- 共有バスを通じて、各コアの読み書きやキャッシュの状態変更に関する情報が伝わります。
- 各キャッシュが他のキャッシュの動きを監視し、更新や無効化を行う選択肢を選びます。
選択肢別の誤答解説
- ア:各コアが独立したメモリ空間を持つことは、スヌープキャッシュの説明ではありません。独立した空間であればデータを共有しない場合もありますが、キャッシュ間の整合性を保つ仕組みを示していません。
- イ:複数のコアが単一のキャッシュを共有する構成の説明です。スヌープキャッシュは、各コアのキャッシュが共有バスを監視して整合性を保つ方式です。
- ウ:共有バスを介して、各コアのキャッシュが他のキャッシュの動作を監視し、データの整合性を保つ説明です。
- エ:ディレクトリに各キャッシュブロックの所在や状態を記録して管理する、ディレクトリ方式の説明です。スヌープ方式とは異なる管理方式です。
よくある誤解
- 「スヌープ」は、特定のキャッシュが他のキャッシュを直接調べに行くことだと思いがちです。基本的には、各キャッシュが共有バス上の通信を監視します。
- キャッシュコヒーレンシは、複数のキャッシュにある同じデータの値や状態を整合させることです。キャッシュの処理速度をそろえることではありません。
- 共有キャッシュ方式とスヌープ方式を混同しがちです。前者はキャッシュを共有する構成、後者はキャッシュ間の整合性を保つ方式です。
補足コラム
スヌープ方式は、共有バス上の通信を各キャッシュが監視するため、比較的シンプルに実装できます。一方、コア数が増えるとバス上の通信量が増え、監視する負荷も大きくなります。
ディレクトリ方式では、ディレクトリがキャッシュブロックの所在や状態を管理します。共有バス上の全ての通信を各キャッシュが監視する必要がないため、多数のコアを持つ構成に適しています。
FAQ
Q. 「スヌープ」は何を監視するのですか?
A. 共有バス上を流れる、メモリやキャッシュに関する読み書き・状態変更の情報を監視します。
A. 共有バス上を流れる、メモリやキャッシュに関する読み書き・状態変更の情報を監視します。
Q. スヌープ方式とディレクトリ方式は同じものですか?
A. どちらもキャッシュコヒーレンシを保つ方式ですが、管理方法が異なります。スヌープ方式は共有バス上の通信を監視し、ディレクトリ方式は専用のディレクトリでキャッシュの所在や状態を管理します。
A. どちらもキャッシュコヒーレンシを保つ方式ですが、管理方法が異なります。スヌープ方式は共有バス上の通信を監視し、ディレクトリ方式は専用のディレクトリでキャッシュの所在や状態を管理します。
関連キーワード: スヌープキャッシュ、キャッシュコヒーレンシ、共有バス、ディレクトリ方式、マルチコアプロセッサ

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

