そう; v9 準拠の 64 ビット SPARC CPU では、 cas命令が存在することがわかっています。これは、単一の語長の値に作用します。
casx命令への Web 参照も見ましたが、それ以上のことはわかりません。
私は疑問に思っています-これはダブルワードの比較と交換ですか?
そうでない場合、一般的な質問は次のとおりです。ダブルワードの比較と交換はありますか?
casx
も存在することに注意してください。ただし、これはcasxa
. 前述の SPARC Architecture Manual の表 43を参照してください。
Synthetic: casx [regrs1], regrs2, regrd
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd
Description: compare and swap extended
Sparc64 は、最近の CPU の中で唯一、倍幅の CAS も LL/SC も実装していません。そのため、ロックフリー コードの実装には問題があります。解決策はありますが、それらは CAS または LL/SC をサポートしているため、他のプラットフォームには存在しない問題 (ABA) の解決策です。さらに、この制限により、さまざまなロックフリー アルゴリズムを Sparce に実装することはできません。