因此;在符合v9标准的64位SPARC CPU上,我知道 cas 指令。这适用于单字长度值。
我也在网上看到了 casx 指令 - 但我找不到更多关于它的信息。
我想知道 - 这是一个双字比较和交换吗?
如果没有,一般的问题是;有双字比较和交换吗?
答案 0 :(得分:1)
CASXA。请参阅The SPARC Architecture Manual。
答案 1 :(得分:1)
另请注意,casx
确实存在,但它是casxa
的合成指令(即简化助记符)。请参阅上述SPARC架构手册中的表43 :
Synthetic: casx [regrs1], regrs2, regrd
Instruction: casxa [regrs1]#ASI_P, regrs2, regrd
Description: compare and swap extended
答案 2 :(得分:0)
Sparc64 - 仅在现代CPU中 - 既不实现双宽CAS也不实现LL / SC。因此,实现无锁代码是有问题的。有一个解决方案,但它们是问题的解决方案(ABA),由于它们支持CAS或LL / SC,因此在其他平台上不存在。此外,由于此限制,Sparce无法实现一系列无锁算法。