[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pbsd-mg2] Re: To-do list
鈴木(康)です。ずいぶん前のメールのリプライですが、
|
| > CPU speed は佐藤さんがやると言っていました。
| いまの sys/arch/mips/mipsのしたのCPU speed 計測関係は
| mips genericな場所においてあるとは信じたくないほど
| pmaxにべったりなのですが、NetBSD/arcとかは
| どう処理しているのかな?
| (ってソースを読めばよいのだけれど)
| できれば(せめて r4xxx)genricな方法で実装したいですよね。
VRxx は単なるパイプラインプロセッサなので、割と計算が楽なようです。
たとえば、次のようなループをコンパイルすると
for (i=0; i< n; i++) {
}
.L8:
slt $2,$3,$4
.set noreorder
.set nomacro
bne $2,$0,.L8
addu $3,$3,1
こんなコードになるんですが、これって 1 loop 3 clock ではないでしょうか。
で、次のようなソースコードを VR4102 で動かしてみたんですが、
だいたい 50 MHz ぐらいの値になりました。
おそらく合っているんではないかと思います。
----
main() {
clock_t s,e;
int cnt = 10000000;
long long tmp;
s = clock();
delay(cnt);
e = clock();
printf("clock = %d ticks = %d\n",e-s,CLOCKS_PER_SEC);
if (e-s != 0) {
tmp = 3 * cnt;
tmp *= CLOCKS_PER_SEC;
tmp /= (e-s);
printf("%d Hz\n",(int)tmp);
printf("%5.3f MHz\n",(float)tmp/1000000.0);
}
}
delay(n) {
int i;
for (i=0; i< n; i++) {
}
}
----------
--
鈴木 康司 @NEC
suz@hpc.bs1.fc.nec.co.jp
TEL 0423-33-5381