別の話題でも。
色々調べて思ったのは、同時にμopを発行できる実行ユニットの数を増やすのは大変だということ。
Athlonの、マクロ命令の段階でスケジュールして振り分けてしまうのは、今更ながら感心。
(スケジュールを2段構えにして負荷を軽減)
デュアルコアよりも、実行ユニットを倍に増やしたHTの方がいいじゃん、とか思ってたが
これはOoO周辺を作るのがすごく大変なのだろう。
lp:
addps xmm0,[esi]
addps xmm1,[esi+16]
addps xmm2,[esi+32]
addps xmm3,[esi+48]
add esi,64
dec ecx
jnz lp
これはPMで11clk/loopなのだが、mulps xmm1,[esi+16] を追加挿入すると10clkになる。
まあ、addを全部mulに置換すると理論値の8clk/loopを叩き出すわけだが。
add系が不思議に遅い。