Back to P4QH8

Since 2005/7/8 - 2006/5/26
AGP2PCI on P4QH8
AGP2PCIは、AGPがPCIバスの上位互換であるところに目をつけ、単純に互換のある信号を電圧変換をはさんで結線した物。
2年以上も前の物で、既に生産は終了、かつ、用途が非常に限定される為、市場に沢山出回る事がなかったブツ。

今となってはジャンク屋ですらその存在は幻?であり、PC98のパワーユーザには垂涎の一品。


→今更ながらメーカーリンク


これが発表された当時、PC/AT互換機では動作しないという制限が公にされて販売されていました。

何故、動作しないのでしょうか?

原因は、AGPカードのデバイス番号にありました。
AGPの仕様書には「AGPデバイスは基本的にデバイス番号0に固定される」と書かれています。(例外もあるラシイ)

一般的なPCIカードでは、BIOSのPOST時のPCIコンフィグレーションにおいて、マザーボードからの指定でデバイス番号を柔軟に設定できるようになっています。 ひとつのPCIバス上に同じデバイス番号が発生しないように、それぞれに番号を割り振る事が出来るのです。 この機構によって、ひとつのPCIバス上に同じ種類のPCIカード(例えばTVチューナー&キャプチャーカードなど)を複数挿しても、それぞれをしっかり識別できるようになっているのです。

一般的なマザーボードならば、CPU−メモリ間をホストバスとして、ノースブリッジがホスト−PCIブリッジとなります。 このホスト直下のPCIバスはバス番号が0になり、バス番号0のPCIバスにサウンドカードやシリアルATAカードなどが乗る事になるのです。

PCIの仕様では、ひとつのPCIバスではデバイス番号は0〜31まで使用出来ることになっているのですが、 大抵のマザーボードでは、バス番号0に挿さるPCIカードにデバイス番号に1〜31を割り当てます。
これはチップセットの仕様で、バス番号0のデバイス番号0は一般的にホスト−PCIブリッジ(ノースブリッジ)に固定されている為です。

さて、このバス番号0上のPCIスロットに、AGP2PCIを介してAGPカードを乗せるとどうなるでしょうか?
当然、デバイス番号0同士のノースブリッジとAGPカードが衝突し、正しくPCIコンフィグレーションが終了出来なくなってしまいます。 そのため、殆どの場合、PCがハングアップするのです。

どちらもデバイス番号がハードウェア的に固定されているので、こればっかりはどうしようもありません。

これが、PC/AT互換機では動作しないとされる主な理由なのです。

しかし、ここで逆に考えると、デバイス番号0で衝突が起こらなければPC/AT互換機では動作しない事もない・・・と言う事になります。 正確には、デバイス番号0のデバイスが存在しないPCIバスに挿せば、この問題を回避できる事になるのです。

つまるところ、一般的なマザーボードより、ワークステーションやサーバ用途のPCIブリッジの乗ったマザーボードの方が、動作させることが出来る可能性が高いとこじつける事ができます。


と、いう訳で、P4QH8でAGPカードを運用すべく検証を始めたのですが・・・一筋縄ではいきませんでした・・・



2005年2月半ば
AGP2PCIをどのようにして入手すべきか・・・
いきなり壁にぶつかりました。前述の通り、店頭から製品が消えてから約2年が経過しています。
とにかくAGP2PCIの情報を漁るしかありません。
PC98パワーユザーのページが幾つかヒットしましたが、その入手に関する情報は古く壊滅的でした。 新品はともかく中古すら出回っているという情報が(2005年3月時点で)皆無という状況だったのです。
2005年2月末
玄人志向のPCIVGAカードGFX5700V-P256C(Geforce5700VE)でなんとかする覚悟をしつつ、未練がましくAGP2PCIの情報を漁り続けておりました。

また、AGP2PCIの構造から、AGP3.3vで確実に動作するVGAも平行して検索を開始。
コノ時点で、3.3vで動作可能な最高峰AGPカードは、ELSAQuadroFX4000である事が判明したのですが、 1枚20万のカードをAGP2PCIで実験する勇気&根性(&資金)はさすがにありませんでした。 (逆に、NV40のVGAカードなら、AGP3.3vに耐えることが可能であると予想も出来る事に・・・)
2005年3月半ば
偶然にも、ネットオークしョンにてCHANGE-AGP2PCIの出品確認。速攻入札!それほど競ることなく落札できました。

動作確認を行ったところ、AGP2PCIの動作としては至極当然な結果になりました。 予想通りIRQの割り当てで異常が発生し、Windowsでまともに動作出来ませんでした。
2005年4月
P4QH8専用ケース自作の為、検証中断。
2005年5月
ようやく、本格的な検証を始めました。


以下の記事を読むにあたり、特に記載されていないPCレギュレーションは以下のようになっています。
AGP2PCI運用に寄与した作業 最終的に全く関係なかった作業
IRQルーティング
BIOSでIRQを割り当てられるよう、BIOS改変。
AGP機能を騙して無効にする、AGP2PCIフィルタードライバでも作らないと動作しないのでは?・・・と作業を開始しました。
「Agp2Pci.sys」開発?!・・・〜頓挫まで(ぉ
AGP2PCIの66MHz化
PCI−Xに挿すならば、66MHzで動作出来る方が勿論良い訳で・・・

メインマシン環境を構築し、いざ運用しようという所で問題が発覚しました。
ムーピー再生(Server2003標準のWindows Media Player Ver9)で不具合確認。

動画を再生しようとすると、最初の一コマを表示したっきり画像が変化せず、音のみが正常に再生される現象が・・・
更に、ここで再生停止ボタンを押下しても音声は止まりません。Media Playerを停止しようとクローズボタンを押すと応答しなくなり、 ここで、Crtl+Alt+Delでタスクマネージャを出そうとするとシステムを巻き込んでフリーズしてしまいます。
再生状態でほっておいても再生が終わると結局システムごと止まるので、どうにもなりません・・・

気休めにライトコンバインの設定を無効にしてみたが変化は見られませんでした。
ここで、GFX5700V-P256Cに挿し変えてみると問題なく再生可能なので、チップセットやMedia PlayerではなくVGAドライバーの問題のようです・・・

更に、Radeon9700Proにも少々問題がある事が判明。
IRQルーティングの実験で判っていた「もたつき」は、エクスプローラで作業する際、事ある毎に200Kバイトほどのネットワークアクセスが発生する為に一時的に待たされている事が分かりました。
ウィスルかとも勘ぐりましたが、VGAをGFX5700V-P256C等の(Agp2Pciを介さないVGA)に変更すると、この現象は無くなるのです。 (念の為にウイルスバスターオンラインスキャンでチェックしましたが、怪しい物は発見されませんでした)
Radeon系ドライバに組み込まれた、なんらかのエラーを送信する機能のようですが・・・(根拠無し

AGP2PCIフィルタードライバでなんとかしようと考えるが糸口が在りません。
思いつくままにイロイロやりましたが進展はありませんでした。
「Agp2Pci.sys」開発?!迷走編
GFX5700V-P256Cチューニング
気分を変えて(諦めて?)GFX5700V-P256Cがどれだけ使えそうか真面目に設定を詰めてみる事にしました。
Windows2000AdvancedServerとACPI
この状態で、ふと、Windows2000AdvancedServerを試す事を思いつき・・・
AML
BIOSにAML(Acpi Machine Language)というモノが埋め込まれており、 WindowsのようなACPIを利用するOSがAMLによってデバイスの管理(割り込みや電源、その他)を行うようです。
IRQルーティングのINT線
PCIIRQルーティングテーブル改変で接続していないINT線の指定をしていませんでした。 ここの変更で、なんとか「良く分からないAML」に手をいれずに解決できないかと・・・
AML改変
AMLを弄る為の情報が見つかりました。結局AML改変でACPIがまともに動作するようになりました。

ACPI問題が解決し、かなり安定して動作するようになりました。
が、Radeon系の「もたつき」は依然未解決のままです・・・
ベンチによる性能目安
Radeon9700ProGeforce6800Ultra
FF Bench Ver342814303
FF Bench Ver3 (負荷25%40703929
3D Mark'0321889604
3D Mark'05 Ver1.1Freeze3648
ピクセルシェーダーのような、VGA側の処理で完結するものはさすがに6800の方が強いようです。
シェーダーの実験をしたかった事もあって、このベンチ結果から、6800の使用が決定しました。



改めて、Windows Server 2003 をクリーンインストール。

Server2003 → DirectX9.0c-Runtime → Server2003SP1
の順にインストールしたが、SP1にてDirectXが何故か不安定に。
3DMark2001se等のDirectX8アプリがDirectXのバージョンを正しく認識できなくなる不具合を確認しました。 バージョンをチェックしないアプリ(FFベンチVer3等)は問題なく動くようです。

結局、SP1をアンインストール。
以下の環境で改めてベンチを取ってみました。 結果
3DMark2001se12337
3DMark'039475
3DMark'05 ver1.13732
FF bench Ver34400
AGP2PCIを使っている事とCPUがXeon2GHzである事を考えれば、Dirext3Dのベンチ結果はなかなか妥当な値と言えるでしょう。


Back to P4QH8