• ベストアンサー

クロックの求め方

CPUが3.2GhzのPentium4なのですが,四則演算一回の処理に1.4nsかかる時,この処理にかかるクロックは何クロックになるのでしょうか?たすきがけでできるというのを見て,1秒→3.2x10^9クロック,1.4x10^(-9)秒→?クロックなので3.2x1.4=4.48クロック,と自分なりにやってみたのですが…これで合っているのでしょうか?ひとつお願いします.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

はじめまして。 CPUが3.2GhzのPentium4 ・・という部分はあまり関係ないのですね? 1.4nsが3.2GHzで何クロック?と言う意味なら 1.4/(1/3.2G)=1.4x3.2=4.48です。 ところで、現在のCPUの処理時間を見積もるのは極めて難しいです。 実際に膨大なデータを処理させて実測し見積もるほか手はないと思います。

wabisabi_2004jp
質問者

お礼

なるほど,やはりその計算でよいのですね. ありがとうございました.

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

a+=1; を 1億回繰り返したとのことですが, アセンブリに落したときに inc eax が 1億個並んでいれば確かに 1億回の加算 (というかインクリメント) の時間がわかりますが, mov ecx, 100000000 inc eax loop -3 だと分岐に必要な時間も込みになりませんか? それはともかく, Pentium4 くらいになるとデコードにかなり時間がかかるんですが, inc や add の実行ステージは確か 0.5クロックだったような....

wabisabi_2004jp
質問者

お礼

回答ありがとうございます.分岐ですか,考えもしませんでした.

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

1.4nsというのはどうやって調べたのでしょうか? 四則演算一回といっても、加減算と乗除算ではかかる時間も違うはずです。 正確にクロック数を求めるには、命令セットを確認しながらになると思いますが、キャッシュのリプレースや割り込み等が発生した場合には、実際にかかる時間はもっと増えてしまいます。 最終的には何が知りたいのか、また3.2GHzのPentium4を使ったどんなハードウェアかによって、調べ方は変わってくると思います。

wabisabi_2004jp
質問者

お礼

補足までつけていただきありがとうございました. 1.4nsは加算です.clock()で時間を計り,a+=1を1億回繰り返してから加算一回の時間を出しました.確かに乗除算したり,実数で計算させるとさらに時間がかかりました.言葉足らずですいませんでした.

関連するQ&A