PC-9821V233,V200,V166で、オンボードのL2キャッシュを無効にするソフト
[VXL2COFF] 1.5 < IPLware > Copyright(C) 2002,2024 まりも
【このプログラムの目的】
PC-9821 Value Star のV三桁シリーズは、Intel 430VX というchipsetが載っていて、SD-DIMMが使えるという点で共通しています。そのほかXc16Xc200の各機種も同様です。これらの機種に K6-III搭載のアクセラレータ、とくに メルコ製の HK6-N2, N3下駄を使用すると、オンボードのL2キャッシュの存在が災いして、動作不良になりやすいそうです。ならばそのオンボードキャッシュを無効にしてしまえばよいわけです。それには次の方法があります。
1. ハード的に無効にする。ITFのチェック段階で見えないようにする。
2. 起動後なるべく早い段階に、ソフトウェアで無効にする。
このうち1.の方法は、メルコのHK6-N初代下駄やPC/AT用下駄でも動作可能になる、汎用的な方法です。しかしやや高度なハンダゴテ技が必要となり、一般にお勧めできませんし、何かの都合でP55C、P54Cに載せ変えたときにも無効となっていると、パフォーマンス低下が気になります。
2.の方法は、chipset 430VXのあるレジスタ(詳細は後で)をいじればよいことが知られていました。しかしIntelsatなどのソフトでコマンドラインから操作すると、直ちにキャッシュデータ不整合が起こって、ハングアップしたりデータ化けを起こして動作しなくなります。
そこで、キャッシュタグデータをフラッシュしつつ、chipsetを制御して、安全にオンボードL2キャッシュを無効にできないか…ということで、本ソフトを作成しました。
このプログラムは、SDRAM(DIMM)のみを使用しているマシン専用になっています。SIMMを混在使用している場合は、後述の SDRAM Turbo modeに関するchipset動作ができません。実行するとハングアップします。
【基本的使い方】
まずZIP展開しVXL2COFF.COM を取り出して下さい。このプログラムはIPLware アプリケーションですので、別途IPLware.exeも必要です。
なおIPLwareアプリケーションとは、ハードディスクのIPLに組み込んで、OSに無関係に動作させるものです。詳しくは別のソフトウェアである「IPLware」をダウンロードし、その説明書を読んで下さい。組み込みを解除したい場合もIPLware.exeを使用します。
IPLware.exe と VXL2COFF.COM がカレントディレクトリにある状態で、MS-DOS(またはWin9xのDOS起動)のコマンドライン(Windows9xのDOS窓は不可)から、
IPLware VXL2COFF.COMと打ち込みます。あとは、現在最優先ブート位置にあるハードディスクに組み込まれます。2023年に作られたOSFDIPLwareを使えばフロッピーディスク運用でも使用できます。そのときはOSFDIPLW VXL2COFF.COMですが、他のIPLwareアプリケーションを追加することもできます。【実行結果】
組み込まれたら再起動します。起動プロセス中に、1秒間程度メッセージがグラフィック画面に表示され、L2キャッシュが無効にされます。またSDRAMの高速化もなされているはずです。CPUがK6-2,2+およびK6-IIIの場合、Write Allocateの設定も行います。【注意事項】
■ このプログラムでは対象機種(チップセット)およびCPUが限定されます。対象外のときは一切メッセージが出ず、時間待ちもなく、実行は回避されます。IPLwareとして組み込んであることを忘れないようにしてください。
■ 組み込み状況の確認は、
IPLwareの場合 IPLWARE /I OSFDIPLwareの場合 OSFDIPLW /Lです。■ VXL2COFF.COM はMS-DOS上でも試すことはできます。このプログラムは仮想86モードではなく、リアルモードのMS-DOS上から実行して下さい。仮想86モード下(EMM386が組み込まれている状態あるいはWinのDOS窓)では、メッセージなしで即終了となります。
■ L2キャッシュを無効にする程度のソフトなので、とくに問題は発生しないと思いますが、本ソフトを使ったからといって、メルコN3下駄を使って動作不安定になるのを解消することができるとは限りません。これはハードウェアの問題ですので、N3下駄の調整に頼るか、若干遅くても安定なN4下駄を使用するようにしてください(2002年頃の情報)。
【技術的解説】(興味ない方は読み飛ばし可)
このソフトは、ホストブリッジ Intel 82430VXの レジスタ 52hの bit0と1とを操作して、キャッシュを無効にします。bit 7,6の容量指定も、00bに設定します。一旦CPUのL1キャッシュごとオフにして、その後L1キャッシュは有効にします。キャッシュのフラッシュのために、DOSメモリ空間を無駄読みします。その間は割り込みを禁止にしています。それに加え、ホストブリッジレジスタ54h bit0を操作し、SDRAM turbo modeを有効にすることで、DIMMのメモリアクセスは極限まで高速化されます。
CPUがK6-2,2+およびK6-IIIの場合に行うのはWrite Allocateの設定のみです。WriteCombineおよびその他の設定は行いません。
ソースファイルが付属しています。source.zipにアーカイブ化されています。8086アセンブラで書かれています。
【お約束】
本プログラムはフリーソフトですので、コピーや仕様は自由ですが、著作権は作者にあります。許可無く二次配布することは禁止とします。
本プログラムの動作不具合および派生する動作不良に関して、作者は責任は負いません。IPLwareおよびOSIPLwareには、動作を回避する機能は用意してあるので、そちらの説明書もよく読んだ上で使って下さい。
[履歴]
2002. 1.16 新規作成 2002. 1.23 1.1 作成 2002. 2.14 1.1 説明書のみ追加 2007. 4.20 1.1 説明書の改訂と添付版IPLware.exeの削除 2019. 9. 8 1.3 古いi486,80386機でハングアップせず実行中止するようにした 2024.10. 3 1.5 バージョン1.3が全く正しく動作していなかったのを修正