だから; v9準拠の64ビットSPARC CPUには、cas命令があります。これは、単一ワード長値で動作します。SPARC v9にはダブルワード比較およびスワップ命令がありますか?
私はまた、casx命令のWeb参照にも見ましたが、それ以上のことは何も見つかりません。
私は疑問に思っています - これはダブルワード比較とスワップですか?
それ以外の場合、一般的な質問は次のとおりです。ダブルワード比較とスワップがありますか?
だから; v9準拠の64ビットSPARC CPUには、cas命令があります。これは、単一ワード長値で動作します。SPARC v9にはダブルワード比較およびスワップ命令がありますか?
私はまた、casx命令のWeb参照にも見ましたが、それ以上のことは何も見つかりません。
私は疑問に思っています - これはダブルワード比較とスワップですか?
それ以外の場合、一般的な質問は次のとおりです。ダブルワード比較とスワップがありますか?
のSparc64 - 道具もないダブルワイドCASもLL/SC - だけでは、現代のCPUの中。このように、ロックフリーコードを実装することは問題である。ソリューションはありますが、CASやLL/SCをサポートしているため、他のプラットフォームには存在しない問題(ABA)の解決策です。さらに、この制限のために、Sparceではさまざまなロックフリーアルゴリズムを実装できません。
CASXA。 The SPARC Architecture Manualを参照してください。
CASAは32ビットの値を入れ替えます。 CASXAは64ビット値をスワップします。私が理解しているように、Sparc v9は64ビットCPUです。私はダブルワードCASを探しています。 64ビットCPU上で128ビット。私はSparcにこれが存在しないように見える。 –
ああ...拡大していくアーキテクチャにおける "言葉"の古いあいまいさ。 – AProgrammer
はい - マニュアルを読むと、Sparcは単語を32ビットと考えています。 –
casx
もありますが、それはcasxa
の合成命令(簡略化ニーモニック)です。前述のSPARCアーキテクチャマニュアルに表43を参照してください:
Synthetic: casx [regrs1], regrs2, regrd
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd
Description: compare and swap extended
ああ - 私は、サンが合成命令を言ったときの意味を疑問に思いました。 –
実際に、SMRを実装すると、SPARCでも問題ありません。 –