アプリ版:「スタンプのみでお礼する」機能のリリースについて

アトミックなインクリメントを実現するには、どうすればいいですか。

A 回答 (2件)

MIPSだとLL(Load Linked)命令とSC(Store Conditional)命令の組合せですね。

LL命令でデータをロードする際にそのアドレスを監視しておき、SC命令で書き込むまでの間に同じアドレスへの他からの書き込みがあるとSC命令を失敗させる。これでSCが成功すればLLからSCの間で他からの書き換えが発生していないことを保証できるのでアトミック操作が実現できる。
ただ同時に幾つのLL命令を実行できるか、とか同じアドレスの範囲がキャッシュライン単位とか、色々と実装制約があるようなので、命令の仕様詳細を確認の上で使うことが必要そう。
参考 https://keisanki.at.webry.info/201411/article_1. …
    • good
    • 0

リードモディファイライト命令があれば、それを使う。


無ければ、???
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!