プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (3件)

はじめまして。


CPUが3.2GhzのPentium4 ・・という部分はあまり関係ないのですね?

1.4nsが3.2GHzで何クロック?と言う意味なら
1.4/(1/3.2G)=1.4x3.2=4.48です。

ところで、現在のCPUの処理時間を見積もるのは極めて難しいです。
実際に膨大なデータを処理させて実測し見積もるほか手はないと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/21 19:21

a+=1; を 1億回繰り返したとのことですが, アセンブリに落したときに


inc eax
が 1億個並んでいれば確かに 1億回の加算 (というかインクリメント) の時間がわかりますが,
mov ecx, 100000000
inc eax
loop -3
だと分岐に必要な時間も込みになりませんか?

それはともかく, Pentium4 くらいになるとデコードにかなり時間がかかるんですが, inc や add の実行ステージは確か 0.5クロックだったような....
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/21 22:09

1.4nsというのはどうやって調べたのでしょうか?


四則演算一回といっても、加減算と乗除算ではかかる時間も違うはずです。

正確にクロック数を求めるには、命令セットを確認しながらになると思いますが、キャッシュのリプレースや割り込み等が発生した場合には、実際にかかる時間はもっと増えてしまいます。

最終的には何が知りたいのか、また3.2GHzのPentium4を使ったどんなハードウェアかによって、調べ方は変わってくると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/21 19:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!