マルチコアと同期
コヒーレンシのプロトコルには無効化型と更新型がある。多くのCPUが無効化型を採用している理由として最も適切なものはどれか。
- A同じコアが同じラインに何度も書き込むとき、最初の1回の無効化だけで済み、通信が少ないから
- B更新型では、ほかのコアが古い値を読んでしまうから
- C無効化型ではキャッシュの容量が2倍になるから
答えと解説を見る
正解:A. 同じコアが同じラインに何度も書き込むとき、最初の1回の無効化だけで済み、通信が少ないから
更新型は書き込みのたびに新しい値をほかのコアのコピーへ送るので、ほかのコアがすぐ読むなら有利ですが、1つのコアが続けて書き込む場合は毎回通信が発生します。無効化型なら最初の書き込みでほかのコピーを無効にした後、M状態のラインには通信なしで書き込めます。実際のプログラムでは続けて書き込むことが多いので、無効化型が一般的です。
- A. 正しい。更新型は書き込みのたびに値を送ります。
- B. 更新型も正しい値を保てます。問題は通信の量です。
- C. 容量は変わりません。