マルチコアと同期
キャッシュコヒーレンシのスヌーピング方式の説明として正しいものはどれか。
- AOSが一定時間ごとにすべてのキャッシュを調べて、食い違いを直す
- B各コアのキャッシュが共有のバスなどに流れる他のコアの読み書きを監視し、自分のラインの状態を変える
- Cプログラマが書き込みのたびに、ほかのコアへ値を手で送る
答えと解説を見る
正解:B. 各コアのキャッシュが共有のバスなどに流れる他のコアの読み書きを監視し、自分のラインの状態を変える
スヌーピング方式では、コアの読み書きの要求がすべてのキャッシュに届き、各キャッシュは自分が同じラインを持っているかを調べて、無効にしたりデータを渡したりします。仕組みが単純で、コアの数が少ないときに向いています。しかしコアの数が増えると、すべての要求をすべてのキャッシュに届ける通信が多くなりすぎるため、大規模なシステムではディレクトリ方式が使われます。
- A. ハードウェアが自動で行います。
- B. 正しい。のぞき見(snoop)する方式です。
- C. プログラマが意識する必要はありません。