2009-08-13 4 views
3

So; sur un processeur SPARC 64 bits qui est conforme à la norme v9, il existe une instruction cas. Cela fonctionne sur des valeurs de longueur de mot unique.Est-ce que SPARC v9 a une double comparaison de mot et une instruction d'échange?

J'ai également vu sur le web une référence à une instruction casx - mais je ne trouve rien de plus à ce sujet.

Je me demande - est-ce un double mot de comparaison et d'échange?

Et sinon, la question générale est; Y a-t-il un double mot de comparaison et d'échange?

Répondre

0

Sparc64 - seul parmi les processeurs modernes - met en œuvre ni double largeur CAS ni LL/SC. En tant que tel, la mise en œuvre de code sans verrouillage est problématique. Il y a des solutions, mais ce sont des solutions à un problème (ABA) qui n'existe pas sur d'autres plateformes en raison de leur support pour CAS ou LL/SC. En outre, une gamme d'algorithmes sans verrouillage ne peut pas être implémentée sur Sparce en raison de cette limitation.

+0

En fait, une fois que vous implémentez SMR, tout va bien sur SPARC. –

1
+0

CASA échange les valeurs de 32 bits. CASXA échange les valeurs de 64 bits. Sparc v9 comme je le comprends, c'est un processeur 64 bits. Je suis à la recherche d'un double mot CAS, par exemple 128 bits sur un processeur 64 bits. Je regarde alors comme ça n'existe pas sur Sparc. –

+0

Ah ... l'ancienne ambiguïté de "mot" dans une architecture qui se dilate. – AProgrammer

+1

Oui - j'ai réalisé quand j'ai lu le manuel, Sparc pense du mot comme 32 bits. –

1

Notez également qu'il existe casx, mais il s'agit d'une instruction synthétique (c'est-à-dire un mnémonique simplifié) pour casxa. Voir le tableau 43 dans le manuel mentionné ci-dessus l'architecture SPARC:

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

Ahh - Je * me demandais * ce que Sun voulait dire quand ils disaient l'instruction synthétique. –

Questions connexes