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の設定が逐次変更出来ますので、結構役に立ちます。
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
ソフトウェア
・Intel 430HX Cache Control ver1.00 [作者 Softhouse333氏]
このソフトは、インテルのチップセット 430HX を使用するマザーボードにおいて、外部キャッシュを制御する
ものです。
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)
2003.02.07 リンクの更新