2009-08-13 2 views
3

그래서; v9와 호환되는 64 비트 SPARC CPU에서는 cas 명령을 알고 있습니다. 이것은 단일 단어 길이 값에 대해 작동합니다.SPARC v9에 이중 단어 비교 및 ​​스왑 명령이 있습니까?

나는 또한 casx 명령에 대한 웹 참조에서 보았습니다. 그러나 그것에 대해 더 많은 것을 찾을 수는 없습니다.

궁금한데요 -이 두 단어를 비교하고 바꾸는 건가요?

그리고 그렇지 않다면 일반적인 질문입니다. 더블 워드 비교 및 ​​교환이 있습니까?

답변

0

스팍 - 구현도 두 배 넓은 CAS도 LL/SC - 혼자 현대 CPU를 사이에. 이와 같이, lock-free 코드를 구현하는 것은 문제가있다. 해결책이 있지만 CAS 또는 LL/SC에 대한 지원으로 인해 다른 플랫폼에 존재하지 않는 문제 (ABA)에 대한 해결책입니다. 또한 Sparce에서는 이러한 제한 때문에 잠금없는 알고리즘을 구현할 수 없습니다.

+0

실제로 SMR을 구현하면 SPARC를 사용할 수 있습니다. –

1

CASXA. The SPARC Architecture Manual을 참조하십시오.

+0

CASA는 32 비트 값을 바꿉니다. CASXA는 64 비트 값을 교체합니다. 내가 64 비트 CPU임을 이해하기 때문에 Sparc v9. 두 단어로 된 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

아 - 나는 태양이 합성 명령을했을 때 의미하는 것을 궁금해했다. –