マルチコアと同期
x86のメモリ一貫性モデル(TSO、トータルストアオーダー)の特徴として正しいものはどれか。
- A読み書きのあらゆる組み合わせの入れ替えを許す、最も弱いモデルである
- B入れ替えを一切許さない逐次一貫性そのものである
- C書き込みの後の別の番地からの読み出しが、その書き込みより先に見えることだけを許す、比較的強いモデルである
答えと解説を見る
正解:C. 書き込みの後の別の番地からの読み出しが、その書き込みより先に見えることだけを許す、比較的強いモデルである
TSOでは、書き込みどうしの順番、読み出しどうしの順番、読み出しの後の書き込みの順番は保たれ、書き込みの後の別の番地への読み出しだけが追い越せます。これはストアバッファがあることをそのまま表したモデルです。多くのプログラムはこの範囲なら直感どおりに動くので、x86ではバリアが必要な場面が比較的少なくなります。
- A. それはARMやRISC-Vのような弱いモデルに近い説明です。
- B. 書き込みと読み出しの入れ替えは起こります。
- C. 正しい。ストアバッファによる入れ替えだけが見えます。