[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