マルチコアと同期
キャッシュコヒーレンシとメモリ一貫性モデルの違いとして正しいものはどれか。
- Aどちらも同じ意味で、呼び方が違うだけである
- Bコヒーレンシは同じ番地の値の食い違いをなくす約束で、一貫性モデルは異なる番地の操作がどの順番で見えるかの約束である
- Cコヒーレンシはソフトウェアだけで、一貫性モデルはハードウェアだけで実現する
答えと解説を見る
正解:B. コヒーレンシは同じ番地の値の食い違いをなくす約束で、一貫性モデルは異なる番地の操作がどの順番で見えるかの約束である
コヒーレンシは、ある1つの番地について、すべてのコアが書き込みを同じ順番で見て、最終的に最新の値を読めることを保証します。一方、一貫性モデルは、コア0がxに書いてからyに書いたとき、ほかのコアにxとyの書き込みがどの順番で見えうるかを定めます。コヒーレンシが保たれていても、異なる番地の順番は入れ替わって見えることがあり、そこにバリアが必要になります。
- A. 扱う問題が違います。
- B. 正しい。両方がそろって初めて正しい並列プログラムが書けます。
- C. どちらもハードウェアとソフトウェアの両方に関わります。