マルチコアと同期
ARMやRISC-V(RVWMO)のような弱いメモリ一貫性モデルについて正しいものはどれか。
- A異なる番地への読み書きの多くの入れ替えを許し、順番が必要な場所にはプログラムでバリアなどを入れる
- B入れ替えを一切許さないので、バリアの命令は存在しない
- C同じ番地への読み書きの順番さえ保証しない
答えと解説を見る
正解:A. 異なる番地への読み書きの多くの入れ替えを許し、順番が必要な場所にはプログラムでバリアなどを入れる
弱いモデルでは、依存関係のない異なる番地への読み書きを、ハードウェアがかなり自由に入れ替えられます。回路を単純にし、性能や電力の効率を上げやすい反面、ほかのコアとデータを受け渡すときは、fence命令や、取得・解放の意味を持つ読み書きの命令で順番を明示する必要があります。高水準の言語では、アトミック変数を使えばコンパイラが適切な命令を出してくれます。
- A. 正しい。ハードウェアの自由度が高い分、順番の指定は明示的に行います。
- B. RISC-Vにもfence命令があります。
- C. 同じ番地への順番は、コヒーレンシによって保たれます。