マルチコアと同期

キャッシュコヒーレンシとメモリ一貫性モデルの違いとして正しいものはどれか。

  1. Aどちらも同じ意味で、呼び方が違うだけである
  2. Bコヒーレンシは同じ番地の値の食い違いをなくす約束で、一貫性モデルは異なる番地の操作がどの順番で見えるかの約束である
  3. Cコヒーレンシはソフトウェアだけで、一貫性モデルはハードウェアだけで実現する
答えと解説を見る

正解:B. コヒーレンシは同じ番地の値の食い違いをなくす約束で、一貫性モデルは異なる番地の操作がどの順番で見えるかの約束である

コヒーレンシは、ある1つの番地について、すべてのコアが書き込みを同じ順番で見て、最終的に最新の値を読めることを保証します。一方、一貫性モデルは、コア0がxに書いてからyに書いたとき、ほかのコアにxとyの書き込みがどの順番で見えうるかを定めます。コヒーレンシが保たれていても、異なる番地の順番は入れ替わって見えることがあり、そこにバリアが必要になります。

  • A. 扱う問題が違います。
  • B. 正しい。両方がそろって初めて正しい並列プログラムが書けます。
  • C. どちらもハードウェアとソフトウェアの両方に関わります。
この分野を解く 分野ページへ

マルチコアと同期のほかの問題

  1. ハードウェアトランザクショナルメモリの考え方として正しいものはどれか。
  2. 条件変数で「キューが空でなくなるまで待つ」とき、待ちから起きた後に条件をif文ではなくwhile文で確かめ直す理由として正しいものはどれか。
  3. 2つのコアがそれぞれ自分のキャッシュに変数xのコピーを持っている。コア0がxに書き込んだあと、コア1がxを読むときに、キャッシュコヒーレンシの仕組みがなければ起こりうる問題はどれか。
  4. キャッシュコヒーレンシのプロトコルであるMESIの4つの状態の組み合わせとして正しいものはどれか。
  5. MESIプロトコルでキャッシュのラインがModified(M)状態にあるときの意味として正しいものはどれか。