マルチコアと同期
コアの数が多いシステムで、スヌーピング方式の代わりにディレクトリ方式のコヒーレンシが使われる理由として正しいものはどれか。
- A各ラインをどのコアが持っているかを記録しておき、関係するコアにだけ通知することで通信を減らせるから
- Bディレクトリ方式ではキャッシュが不要になるから
- Cディレクトリ方式では書き込みのたびにすべてのコアへ通知できるから
答えと解説を見る
正解:A. 各ラインをどのコアが持っているかを記録しておき、関係するコアにだけ通知することで通信を減らせるから
ディレクトリ方式では、各ラインについて、どのコアがコピーを持ち、どの状態かを記録した表(ディレクトリ)を持ちます。書き込みがあると、ディレクトリを見てコピーを持つコアにだけ無効化の要求を送ります。すべてのキャッシュへ一斉に知らせるスヌーピングに比べて通信が少ないので、コアが数十以上あるサーバ向けのCPUなどで使われます。
- A. 正しい。全員に知らせる必要がなくなります。
- B. キャッシュは引き続き使います。
- C. 全員への通知を避けるのが目的です。