[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Crescendo 300/1M (Re: PM4400)



>                                            千葉市中央区長洲
>                                                    藤原  誠
ずうっと昔の記事ですが、

藤>>cpu0 at mainbus0: 750 (Revision 130.1), ID 0 (primary)
...
藤>>cpu0: L2 cache not enabled
藤>>と言って動いているものです。

To: port-powerpc-ja@jp.netbsd.org
From: Tsubai Masanari <tsubai@iri.co.jp>
Subject: Re: PM4400
Date: Wed, 24 Jul 2002 18:02:14 +0900

椿> これを動いていると言うのならば、ですけど。:-)

椿> なにもしなくても(ブートできれば)基本的には使えます。ただし
椿> バックサイドキャッシュを有効にするには

椿> options		L2CR_CONFIG="いろいろ"

椿> とやってカーネルをつくりなおすか、gdb で l2cr_config の値を
椿> 設定してやる必要があります。"いろいろ" のところには RAM の
椿> 種類とかクロック比率などが入ります。書き方はちょっと検索など
椿> すればでてくるでしょう。

椿> # 私ソースではキャッシュ容量は自動的に調べるようにしたのだけど
椿> # 結局クロック比率などは指定するしかないのでした。

というのがあったのですが、実はいままで試す機会(と知識)がありま
せんでした。最近やっと、
-----------------
include "arch/macppc/conf/GENERIC"

options         INSECURE
options         ZS_CONSOLE_ABORT
options         L2CR_CONFIG="(L2SIZ_512K|L2CLK_20|L2RAM_PIPELINE_BURST)"
-----------------
とだけ書いた L2CR を作って、kernel を作直したところ、起動する時には
cpu0: L2 cache not enabled
だったのが
cpu0: 1MB backside L2 cache
になって、kernel を作るのに

1053.195u 162.689s 20:23.97 99.3%       0+0k 31+5046io 415pf+0w
tty00:makoto@st3240  20:04:48/030517(...compile/L2CR)> 

という時間で済むようになりました。
(GENERIC kernel のままだと 40 分くらい)

でも、次のようなものを使って時間を測ると、
------------------------------------------
#include <stdio.h>
main ( ) 
{
  int i,j,k;
  const int n = 1000;
  for (i = 0 ; i < n ; i++) {
    //    printf(".");
    for (j = 0 ; j < n ; j++)
      for (k = 0 ; k < n ; k++);};
}
------------------------------------------
当然のことだと思いますが、どちらの kernel でも
30 秒くらいです。
tty00:makoto@st3240  20:26:52/030517(~/c)> time ./cpu-clock
30.084u 0.009s 0:30.11 99.9%    0+0k 0+0io 0pf+0w
---
(藤原)