Update 1999.11.27

Xv13最強化報告 PC-9821Xv13/W16 の K6-III 400MHz化


 改造に使用した物
  ・電圧変換素子  MELCO MVR-MX2改造済みCore2.2V設定
  ・CPUクーラー 星野金属工業 Windy K6-3
  ・CPU     AMD K6-3 400MHz

 ソフトウェア
  ・AMD K6-2 350MHz対応化プログラム for Windows 95 [作者 藤田氏]
   350MHz以上のCPUで Windows95a (Ver4.00.950) を使うためのストレージ系のパッチプログラムです。

   このプログラムは、OSの問題部分を直接書き換えます。
   (Windows95 OSR2以降は、Microsoftから提供されている AMD社製K6-2用のアップデートプログラム
   使用します)

  ・MELCO Windows95用高速CPU対応ドライバ
   350MHz以上のCPUで Windows95a (Ver4.00.950) を使う時に問題となるCPU命令にウエイトを掛ける
   プログラムです。

   このプログラムは、MELCO社のCPUアクセラレータ(HK6シリーズ)用のものですが、K6-IIIに対して使う
   プログラムであるため、今回の改造に利用できます。「HK6キャッシュコントロールユーティリティ」という
   プログラムの中に同梱されています。

   HK6V200.EXEという自己展開式ファイルの中の「watifix.vxd」というファイルを windowsのsystemフォルダ
   にコピーします。system.iniの[386Enh]のところにwaitfix.vxdを追加します。
      [386Enh]
      device=waitfix.vxd
   以上で、問題のCPU命令にウエイトが掛かり、350MHz以上のCPUでWindows95aを使用した時に問題と
   なる「保護エラー」が回避されます。
   (Windows95 OSR2以降は、Microsoftから提供されている AMD社製K6-2用のアップデートプログラム
   使用します)

  MS-DOS用
  ・AMD-K6 Write Allocate Driver for DOS(フリーソフト) [作者 Softhouse333氏]
   AMD K6のライトアロケート機能を有効にする事ができます。デバイスドライバとしても実行ファイルとしても
   使用できます。DOS用のドライバですが Windows95でも CONFIG.SYSに追加するで使用できます。

  Windows95用
  ・AMD-K6 Write Allocate Driver for Win(シェアウェア) [作者 Softhouse333氏]
   シェアウェアですが、Windows上でK6の設定が逐次変更出来ますので、結構役に立ちます。

  K6-3 400MHz

1.Windows95aを使う場合は、最初に AMD K6-2 350MHz対応化プログラムで、ストレージ系のドライバ
  にパッチを当てるか、あるいは、MELCO Windows95用高速CPU対応ドライバ (Ver.1.00)をwindows
  のsystemフォルダにコピーし、system.iniを書き換えます。

  どちらの方法がいいかは御判断にお任せしますが、私は後者を推薦しますが著作権の絡みがありそうです。

2.MVR-MX2 (改造済み)Core電圧2.2Vに設定して、Cバススロット下のジャンパを 2倍設定(実際
  には6倍動作)
にします。Xv13のセカンドキャッシュメモリ用のスロットにボードを取り付けている場合は外し
  ます。取り付けたままでは起動しません。

  CPUにセカンドキャッシュメモリとして256KBが内蔵されているため、セカンドキャッシュメモリを取り付けなく
  ても、それほど問題にはならないでしょう。
  (K6-3 400MHzのCore電圧は仕様書によれば2.3-2.5Vですが、2.2Vでも問題なく動作しました)

3.K6用のメモリライトアロケート機能を有効にするドライバはフリーソフトで多数出ていますが、私はシンプルに
  仕上げたいので、上記にリストアップしたDOS用のソフトウェアを利用しています。

  私のXv13は、電源を入れると最初にDOSのメニュー(ψmenu)が起動して、Windows95やDOSアプリを選択
  できるようにしています。Windows95を選択すると、HSBにより Rebootが掛かり、別のドライブに入っている
  Windows95が起動します。そのため、Windows95の CONFIG.SYSには手を加えないで、最初に起動した時に
  読み込まれる DOSの CONFIG.SYSに、K6のライトアロケート機能を有効にする「AMD-K6 Write Allocate
  Driver for DOS」を追加して利用しています。

  CPUをリセットしない限り、設定は有効なのでシンプルなCONFIG.SYSで気分もスッキリします。

  この改造を行って顕著に感じた事は、RealPlayer G2のTVニュースがコマ切れ状態からスムーズに流れる
  ようになったこと。いやはや、恐れ入りました。

DOS CONFIG.SYS
 FILES = 30
 BUFFERS= 1,0
 DOS=HIGH,UMB
 DEVICE = C:\DRV\K6MSR.EXE -F -V
 DEVICE = C:\DRV\HSB.EXE VC Y-
 DEVICE = C:\IOS\VMM386.EXE /U=A5-A7,E9-EF /NECID
 DEVICE = C:\DRV\HSB.EXE VU
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:8096 -R:1024 -D:N -V:RAM_DISK
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:64 -D:O -V:環境領域
 DEVICEHIGH = C:\DOS\PRINT.SYS
 DEVICEHIGH = C:\DOS\KKCFUNC.SYS
 DEVICEHIGH = C:\DOS\NECCD.SYS /D:CD_101
 SHELL = C:\COMMAND.COM C:\ /E:512 /P
 LASTDRIVE = Z

Windows95 CONFIG.SYS
 FILES=80
 DOS=HIGH,UMB
 DEVICE=A:\WINDOWS\CPUCHK.SYS
 DEVICE=A:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
 DEVICE=A:\WINDOWS\EMM386.EXE NOEMS /DPMI
 DEVICEHIGH=A:\WINDOWS\COMMAND\HRTIMER.SYS
 DEVICEHIGH=A:\WINDOWS\KKCFUNC.SYS
 DEVICE=A:\WINDOWS\COMMAND\HDWAIT.SYS /t:2
 LASTDRIVE=Z





更なる高速化 NE-XAV512Kの改造

最後の仕上げとして、余ってしまったセカンドキャッシュメモリ
(NE-XAV512K)3番目のキャッシュメモリ
(L3-Cache)
として利用する改造に挑戦しました。
CPU内蔵のセカンドキャッシュメモリ(L2-Cache)256KB
なので、3番目のキャッシュメモリとして256KBより大きい512KBを利用すれば多少は効果が出るはずです。

前述したようにXv13のセカンドキャッシュメモリのスロットに、そのままボードを取り付けたのではパソコンが
立ち上がりません。この打開策として、下記にあげた改造方法と優れたソフトウェアを公開しておられる方が
いらっしゃいます。セカンドキャッシュメモリボードの改造が必要ですが、そんなに難しいものでもありません。

動作原理は、セカンドキャッシュメモリボードの改造により、パソコンのチップセットに対してセカンドキャッシュ
メモリが搭載されていないと見せかけて起動させ、後からソフトウェアでセカンドキャッシュメモリを有効にする
というものです。理にかなったうまい方法ですね。


改造に使用した物
 ・セカンドキャッシュメモリ512KB アイオーデータ機器 NE-XAV512K

  I・O DATA NE-XAV512K

ソフトウェア
 ・Intel 430HX Cache Control ver1.00 [作者 Softhouse333氏]
  このソフトは、インテルのチップセット 430HX を使用するマザーボードにおいて、外部キャッシュを制御する
  ものです。

  PC-9821Xv13/W16 Super


1.まずは、NE-XAV512Kを改造します。改造箇所は、PD1・PD2・PD3・PD4とシルク印刷されたチップ抵抗が
  並んでいる部分があります。このPD4だけをハンダ鏝を使って取り去ります(ただこれだけです)。詳しい
  説明は上記ソフトウェアに同梱されたドキュメントに記載されているので割愛します。

2.CONIFG.SYSの最初のデバイスとして HXCC.EXEを追加します。私の例では以下のようになります。
  Windows95のCONFIG.SYSでも下記の例のように最初のデバイスとして登録します。

DOS CONFIG.SYS
 FILES = 30
 BUFFERS= 1,0
 DOS=HIGH,UMB
 DEVICE = C:\DRV\HXCC.EXE
 DEVICE = C:\DRV\K6MSR.EXE -F -V
 DEVICE = C:\DRV\HSB.EXE VC Y-
 DEVICE = C:\IOS\VMM386.EXE /U=A5-A7,E9-EF /NECID
 DEVICE = C:\DRV\HSB.EXE VU
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:8096 -R:1024 -D:N -V:RAM_DISK
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:64 -D:O -V:環境領域
 DEVICEHIGH = C:\DOS\PRINT.SYS
 DEVICEHIGH = C:\DOS\KKCFUNC.SYS
 DEVICEHIGH = C:\DOS\NECCD.SYS /D:CD_101
 SHELL = C:\COMMAND.COM C:\ /E:512 /P
 LASTDRIVE = Z

3.これで出来上がりです。HXCCはコマンドプロンプトでも実行できますので、その効果をその場でテスト
  できます。ベンチマーク結果を下記に上げておきます。ライトアロケートの効果、L3-Cache 512KBの
  効果がハッキリと確認できますね。


ベンチマーク結果


稼働条件: K6-3 400MHz外部キャッシュメモリなし(ライトアロケート機能OFF)
Memory Access Benchmark ver1.10 Copyright (C) 1998-1999 Softhouse333
Base Address  : 00100000h
Processor     : AuthenticAMD  Family 5, Model 9, Stepping 1
Core Frequency: 397.874MHz ( FSB 66.312MHz )
Access Pattern: Continuous
Access|  Unbuffered Access[MB/sec]  |  Buffered Access[MB/sec]
 Size |   Read      Write    RD/M/WR|   Read      Write    RD/M/WR
------+-----------------------------+-----------------------------
   4K |  113.583    52.746   114.108| 1594.611  1591.497   636.599
   8K |  115.144    52.897   115.299| 1593.052  1591.497   634.615
  16K |  115.885    52.971   115.809| 1592.274  1591.497   635.915
  32K |  116.203    53.010   116.146| 1581.074  1555.050   634.585
  64K |  116.363    53.030   116.263| 1060.006   528.360   541.168
 128K |  116.424    53.040   116.369| 1060.156   397.271   541.207
 256K |  116.474    53.045   116.420| 1060.060   353.408   541.184
 512K |  116.489    53.047    76.959|  116.498    92.252    76.967
1024K |  116.499    53.049    65.808|  116.504    67.363    65.810
2048K |  116.503    53.049    61.363|  116.506    59.356    61.364
4096K |  116.506    53.050    59.358|  116.508    56.026    59.358
8192K |  116.507    53.050    58.404|  116.508    54.497    58.404


稼働条件:K6-3 400MHz 外部キャッシュメモリなし(ライトアロケート機能ON)
Memory Access Benchmark ver1.10 Copyright (C) 1998-1999 Softhouse333
Base Address  : 00100000h
Processor     : AuthenticAMD  Family 5, Model 9, Stepping 1
Core Frequency: 397.872MHz ( FSB 66.312MHz )
Access Pattern: Continuous
Access|  Unbuffered Access[MB/sec]  |  Buffered Access[MB/sec]
 Size |   Read      Write    RD/M/WR|   Read      Write    RD/M/WR
------+-----------------------------+-----------------------------
   4K |  113.212   112.006   113.165| 1594.601  1544.723   636.595
   8K |  114.661   114.320   114.524| 1593.042  1566.249   634.612
  16K |  115.640   115.470   115.589| 1592.264  1578.767   635.912
  32K |  116.079   115.994   115.985| 1536.711  1528.066   627.555
  64K |  116.300   116.257   116.291| 1051.959   902.652   539.250
 128K |  116.393   116.371   116.405| 1056.456   906.024   540.424
 256K |  116.433   116.423   116.427| 1041.965   893.114   536.275
 512K |  116.473    76.974    76.975|  116.474    76.978    76.977
1024K |  116.491    65.823    65.823|  116.491    65.824    65.824
2048K |  116.498    61.377    61.377|  116.501    61.377    61.377
4096K |  116.503    59.371    59.372|  116.504    59.372    59.372
8192K |  116.506    58.417    58.417|  116.506    58.417    58.417


稼働条件:K6-3 400MHz 外部キャッシュメモリ搭載(ライトアロケート機能ON)
Memory Access Benchmark ver1.10 Copyright (C) 1998-1999 Softhouse333
Base Address  : 00100000h
Processor     : AuthenticAMD  Family 5, Model 9, Stepping 1
Core Frequency: 397.871MHz ( FSB 66.312MHz )
Access Pattern: Continuous
Access|  Unbuffered Access[MB/sec]  |  Buffered Access[MB/sec]
 Size |   Read      Write    RD/M/WR|   Read      Write    RD/M/WR
------+-----------------------------+-----------------------------
   4K |  113.227   112.578   113.180| 1597.726  1547.655   637.092
   8K |  114.669   114.617   114.823| 1594.599  1567.754   634.858
  16K |  115.644   115.474   115.592| 1593.040  1579.530   636.035
  32K |  116.081   115.996   116.062| 1537.072  1528.422   627.615
  64K |  116.301   116.258   116.254| 1052.043   902.714   539.272
 128K |  116.412   116.371   116.405| 1056.497   906.054   540.435
 256K |  116.433   116.422   116.427| 1051.311   900.998   539.292
 512K |  116.473    95.747    95.748|  326.128   201.905   194.976
1024K |  116.490    68.857    68.857|  116.493    68.858    68.858
2048K |  116.498    60.376    60.375|  116.500    60.376    60.376
4096K |  116.503    56.873    56.873|  116.504    56.873    56.873
8192K |  116.505    55.270    55.270|  116.506    55.270    55.270





K6-IIIによるグラフィック描画の更なる高速化

 Model 8,Stepping 8以降の K6では Write Combineや UnCacheというメモリ属性が追加されました。
この属性を駆使することでビデオ周りが高速化されます。DirectDrawなどの描画性能は、前述の改造を
行ったXv13で、
なんと!60%以上の高速化が確認されました。

 この設定を行うには、最初にリストアップしたソフトウェア(AMD-K6 Write Allocate Driver for DOS
あるいは
AMD-K6 Write Allocate Driver for Win)が必要です。

 設定方法は、先ずソフトウェアのドキュメントを参照して下さい。ドキュメントに記載されていない補足事項と
して、ディスプレイアダプタのBIOSのあるレジスタではなく、Frameのあるレジスタだけに適用します。ビデオ
アダプタの全てのレジスタに適用すると、Windows95が立ち上がらないことがあります。これに気が付くのに
少し時間を要しました。

 このレジスタ設定は、何がどこのレジスタを使っているのか意味が理解できていないと非常に危険です。
私のXv13は、Matrox MGA-Millennium/4N 4MB を搭載し、使用しているレジスタが 20004000-20007FFF
と20800000-20FFFFFFであり、このうちFrame部分は後者の8MBなので、この部分だけを有効にしてやれば
ビデオ性能がK6-IIIの恩恵により激速になります。
私のXv13の設定をAMD-K6 Write Allocate Driver for Winで確認

AMD-K6 Write Allocate Driver for DOSを使った場合は、CONFIG.SYSが以下のような記述になります。

DOS CONFIG.SYS

 FILES = 30
 BUFFERS= 1,0
 DOS=HIGH,UMB
 DEVICE = C:\DRV\HXCC.EXE
 DEVICE = C:\DRV\K6MSR.EXE -F -V -WC 2080 FF80 -WO BEST
 DEVICE = C:\DRV\HSB.EXE VC Y-
 DEVICE = C:\IOS\VMM386.EXE /U=A5-A7,E9-EF /NECID
 DEVICE = C:\DRV\HSB.EXE VU
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:8096 -R:1024 -D:N -V:RAM_DISK
 DEVICEHIGH = C:\DRV\XRDISK.EXE -X:64 -D:O -V:環境領域
 DEVICEHIGH = C:\DOS\PRINT.SYS
 DEVICEHIGH = C:\DOS\KKCFUNC.SYS
 DEVICEHIGH = C:\DOS\NECCD.SYS /D:CD_101
 SHELL = C:\COMMAND.COM C:\ /E:512 /P
 LASTDRIVE = Z

 このレジスタの設定は、ディスプレイアダプタや環境により全て異なるので、自分のパソコンの状態を熟知
している必要があります。間違ってもSCSIアダプタのレジスタを有効にしてはいけません。ハードディスクが
クラッシュする危険があります。

ベンチマーク結果
 GBench Ver2.0 [ 解像度 1024*768 (HighColor) ]
  ディスプレィアダプタのFrameレジスタを Write Combine指定するかしないかで以下のような差が出ました。
    
825 → 1135 (Frames/10sec)

TopPage

2003.02.07 リンクの更新