2022年 秋期 エンベデッドシステムスペシャリスト 午前 問1

マルチコアプロセッサで用いられるスヌープキャッシュの説明として、適切なものはどれか。

 ア  各コアがそれぞれ独立のメモリ空間とキャッシュをもつことによって、コヒーレンシを保つ。
 イ  共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つ。
 ウ  全てのキャッシュブロックを一元管理するディレクトリを用いて、キャッシュのコヒーレンシを保つ。
 エ  一つのキャッシュを各コアが共有することによって、コヒーレンシを保つ。


答え イ


解説

 ア  各コアがそれぞれ独立のメモリ空間とキャッシュをもつアーキテクチャでは、コアの間でコヒーレンシを保つ必要がありません。(×)
 イ  共有バスを介して、各コアのキャッシュが他コアのキャッシュの更新状態を管理し、コヒーレンシを保つのは、スヌープキャッシュです。(〇)
 ウ  全てのキャッシュブロックを一元管理するディレクトリを用いて、キャッシュのコヒーレンシを保つのは、ディレクトリ方式(Directory-based Protocol)です。(×)
 エ  一つのキャッシュを各コアが共有することによって、コヒーレンシを保つのは、共有キャッシュ(Shared Cache)です。(×)


キーワード
・スヌープキャッシュ
・キャッシュコヒーレンシ

キーワードの解説
  • スヌープキャッシュ(snoop cache)
    マルチコアプロセッサで各コアに接続されたキャッシュコントローラが共有バス上の動作を監視することにより、キャッシュの内容の一致を保証する方式です。
    共有メモリへのアクセスはすべて共有バスを経由するため、共有バスを監視することにより各コアはシステム全体動作を把握することが可能です。
  • キャッシュコヒーレンシ(cache coherency)
    メインメモリとキャッシュメモリのデータにおける一貫性のことです。
    キャッシュメモリを用いた場合、プロセッサがメモリ内容を書き換えてもキャッシュしかデータ変更されず、メインメモリの内容が変わっていないため他のデバイスがメインメモリにアクセスすると期待した結果を読み出せません。
    逆にデバイスがDMAを用いてメインメモリの内容を書換えても、プロセッサがメモリを読み出すときにキャッシュにヒットするとメインメモリからデータを読み出さないため期待する結果が得られません。

もっと、「スヌープキャッシュ」について調べてみよう。

戻る 一覧へ 次へ