ビット演算
■ このスレッドは過去ログ倉庫に格納されています
0028・∀・)っ-●◎○- ◆Pu/ODYSSEY
2005/08/17(水) 23:42:02a ^= b; ・・・(1)
b ^= a; ・・・(2)
a ^= b; ・・・(3)
(2)は(1)の演算が終わるまで、(3)は(2)が終わるまで実行できない。だから3クロックかかる。
これがいわゆる依存関係ってやつで、モダンなCPUアーキテクチャでは好まれない。
t = a; ・・・(1)´
a = b; ・・・(2)´
b = t; ・・・(3)´
これなら、ALUが2個以上有る場合、(1)と(2)、もしくは(2)と(3)を並列実行できるから2クロックほどで済む。
もっとも1インストラクション1クロックという前提の話だけど。
■ このスレッドは過去ログ倉庫に格納されています