3

所以; 在符合 v9 的 64 位 SPARC CPU 上,存在我知道cas指令。这对单个字长值进行操作。

我还在网上看到了对casx指令的引用——但我找不到更多关于它的信息。

我想知道 - 这是一个双字比较和交换吗?

如果不是,一般的问题是;是否有双字比较和交换?

4

3 回答 3

1

卡萨。请参阅SPARC 体系结构手册

于 2009-08-13T17:51:38.413 回答
1

另请注意,它casx确实存在,但它是casxa. 请参见上述 SPARC 体系结构手册中的表 43 :

Synthetic:   casx [regrs1], regrs2, regrd 
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd 
Description: compare and swap extended 
于 2009-08-13T20:28:44.463 回答
0

Sparc64 - 仅在现代 CPU 中 - 既不实现双宽 CAS 也不实现 LL/SC。因此,实现无锁代码是有问题的。有一个解决方案,但它们是解决问题(ABA)的方法,因为它们支持 CAS 或 LL/SC,所以在其他平台上不存在该问题。此外,由于这个限制,一系列无锁算法无法在 Sparce 上实现。

于 2009-08-15T18:15:47.357 回答