2009-08-13 19 views
3

だから; v9準拠の64ビットSPARC CPUには、cas命令があります。これは、単一ワード長値で動作します。SPARC v9にはダブルワード比較およびスワップ命令がありますか?

私はまた、casx命令のWeb参照にも見ましたが、それ以上のことは何も見つかりません。

私は疑問に思っています - これはダブルワード比較とスワップですか?

それ以外の場合、一般的な質問は次のとおりです。ダブルワード比較とスワップがありますか?

答えて

0

のSparc64 - 道具もないダブルワイドCASもLL/SC - だけでは、現代のCPUの中。このように、ロックフリーコードを実装することは問題である。ソリューションはありますが、CASやLL/SCをサポートしているため、他のプラットフォームには存在しない問題(ABA)の解決策です。さらに、この制限のために、Sparceではさまざまなロックフリーアルゴリズムを実装できません。

+0

実際に、SMRを実装すると、SPARCでも問題ありません。 –

1

CASXA。 The SPARC Architecture Manualを参照してください。

+0

CASAは32ビットの値を入れ替えます。 CASXAは64ビット値をスワップします。私が理解しているように、Sparc v9は64ビットCPUです。私はダブルワードCASを探しています。 64ビットCPU上で128ビット。私はSparcにこれが存在しないように見える。 –

+0

ああ...拡大していくアーキテクチャにおける "言葉"の古いあいまいさ。 – AProgrammer

+1

はい - マニュアルを読むと、Sparcは単語を32ビットと考えています。 –

1

casxもありますが、それはcasxaの合成命令(簡略化ニーモニック)です。前述のSPARCアーキテクチャマニュアルに表43を参照してください:

Synthetic: casx [regrs1], regrs2, regrd 
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd 
Description: compare and swap extended 
+0

ああ - 私は、サンが合成命令を言ったときの意味を疑問に思いました。 –

関連する問題