5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

x86命令の所要クロック計測スレ

81 :1:05/02/15 11:25:55
>ロードストア
メモリは遅いというイメージが離れないんだよなあ。
整数で汎用レジスタが足りないときはmovdでMMXに退避させたりしたことがあるw
確かにmovはALU食うからロードストアが空いてたらそっちがいいんだよな。

しかしSSE/2の最適化を詰めていくとPM弱いな。
小回りはK8以上だと思うが、メモリ帯域や重い乗算平方根に対して力なし。
AMDの√×÷は神の領域だが、P4にすら負ける細腕PM・・・。


分岐をちょっとやってみた(いつものようにPentiumM)。

ループの中にif〜then〜elseみたいな構造を作り、
条件分岐で分岐してもしなくても3clk/loopのコードを用意した。
0〜7fffhのランダムな整数が閾値以上かどうかで分岐する/しないを決める。

ここで閾値を0や8000hにすると3clk/loop。
4000h(分岐は完全にランダム)にすると12.5clk/loop程度になった。
単純に予測ミスのペナルティを出すと、2回に1回の予測ミスで9.5clkの差なので、
なんと19clkもの損をしていることになる。
これがパイプラインの段数なのかはわからないが、思っていたよりかなり大きい。
短いループなので予測ミスの他、ループ処理にも影響があるだろう。

分岐(する/しない)を交互に繰り返すパターンを食わせると4.5clk。
予測はすべて的中していると思われるが、やはりパイプラインが乱れるのだろうか。
最近のCPUらしく分岐予測ミスは痛いようだ。
(ループなど、完全に予測できる分岐に関してはP6に比べて速くなっている)

80 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)