マルチコアと同期

メモリ一貫性モデル(メモリコンシステンシモデル)が定めているものはどれか。

  1. Aキャッシュのラインの大きさとセットの数
  2. B主記憶のDRAMに使うトランジスタの種類
  3. Cあるコアが行った複数の番地への読み書きが、ほかのコアからどの順番で見えうるか
答えと解説を見る

正解:C. あるコアが行った複数の番地への読み書きが、ほかのコアからどの順番で見えうるか

CPUは性能のために、書き込みをストアバッファにためたり、読み出しを先に行ったりして、メモリ操作の順番を入れ替えることがあります。1つのコアの中では結果が変わらないように作られていますが、ほかのコアからは順番が入れ替わって見えることがあります。メモリ一貫性モデルは、どの入れ替えが起こりうるかを定め、プログラマが正しい同期を書くための約束になります。

  • A. それはキャッシュの構成です。
  • B. 回路の作り方とは関係ありません。
  • C. 正しい。ハードウェアとプログラマの約束です。
この分野を解く 分野ページへ

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

  1. 逐次一貫性(シーケンシャルコンシステンシ)の説明として正しいものはどれか。
  2. 上の2つのスレッドを別々のコアで同時に実行する(コンパイラによる並べ替えはないとする)。逐次一貫性では起こらないが、x86などの実際のCPUでは起こりうる結果はどれか。
  3. x86のメモリ一貫性モデル(TSO、トータルストアオーダー)の特徴として正しいものはどれか。
  4. ARMやRISC-V(RVWMO)のような弱いメモリ一貫性モデルについて正しいものはどれか。
  5. メモリバリア(フェンス)命令の役割として正しいものはどれか。