タグ

ブックマーク / yamasa.hatenablog.jp (2)

  • 「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳

    Apple M1についての面白い記事を見かけて、久しぶりにメモリモデル屋(?)の血が騒いだのでブログを書く。 note.com 強いメモリモデル 現代のCPUアーキテクチャでは、x86(64bit, 32bitどちらも)が「強いメモリモデル」を採用しており、それ以外のメジャーなCPUが「弱いメモリモデル」を採用している。この「強いメモリモデル」「弱いメモリモデル」について、まずおさらいしておこう。 以下のように、2つの変数a, bに対して異なるCPUコアが同時にアクセスしたとする。 int a = 0; int b = 0; CPU1: a = 1; b = 1; CPU2: int r1 = b; int r2 = a; (上記はC言語に似た疑似コードを用いているが、実際は機械語命令になっていると考えてほしい。つまり、CPU1は変数a, bの示すメモリアドレスに対するストア命令を実行して

    「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
  • そろそろvolatileについて一言いっておくか - yamasaのネタ帳

    先月、CBUGとわんくまの勉強会にて、アトミック変数とかメモリバリアとかvolatileとかについて話をしてきました。 ちょっと遅くなりましたが、そのときの講演資料を一つにまとめたので、ここで公開しておきます。あと、補足記事も追加していってます。 volatileの実装の詳細について C++0xのメモリバリアについて(その1) C++0xのメモリバリアについて(その2) Double-Checked Lockingについて そろそろvolatileについて一言いっておくかView more presentations or Upload your own.

    そろそろvolatileについて一言いっておくか - yamasaのネタ帳
    masterq
    masterq 2009/09/18
    スレッドによる並列実行の場合の排他について。 C言語でvolatileしても実行順を制御できる訳ではない。
  • 1