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

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

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

113 :1:05/02/23 10:56:26
>>106の測定結果。
分岐する:15.5clk、分岐しない:30.7clk、ランダム:30.1clk、交互:23.4。
いやピッタリ14.0clkのペナルティです((30.1-(30.7+15.5)/2)*2)。無意識に捏造したな>俺。
これは偶然だが、パイプラインは14〜15段ほぼ決定でいいかな?

俺は106の妄想1が非常に難しく感じられた。パイプラインの長さと一致しないのなら
OoOコアにおけるパイプラインの長さって一体何なんだ、と。
リタイヤはインオーダーだが、命令がリオーダバッファにいる平均clk数を何が規定する?
ひょっとしてリオーダバッファが混んでいるときは実質パイプラインが長くなるのか。
それだと>>81の19clkも納得できる。こじつけ臭いけど。

で、追試。
上の測定はmulを3回、分岐しないと更に3回というコード。mulは実行に時間がかかる命令だ。
そこでこれをadd15回に変えてみた。する:16.3、しない:31.8、ランダム:30.6。
ペナルティ13.1clk(少ないナ)。ここで依存関係をなくすと、ランダム:27.0。30.6-27.0=3.6。
mulの場合は依存関係あり:30.1、なし:27.0だった。差は3.1。
3.6と3.1は、誤差の範囲で一致、だろうか。
mulの方が、長い実行時間中にフェッチ・スケジュールできて差が広がると予想したが外れた。

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

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

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