第1回・RaII23のPCIバスを増設する!

PCIバスの増設。
それは、我々98ユーザーに残された最後のフロンティア(※1)

PCIバスの数が少ないということは、98ユーザーにとって長年悩みの種(※2)であった。
PCIデバイスの増設を考えたとき、あと1つか2つのPCIスロットがあれば・・・と思うのである。

しかし、人類の英知はついにこれを可能にしたのだ!
98ユーザーの中でもハードウェアに関するクラスがマスタークラスな先人(※3)たちが、その腕を
存分に振るった結果、突破されたのである!

そこで我がRaII23のPCIも増設してしまおう!ということで改造を行うことになった。
増設に関しての注意点などは、これら先人たちのWebpageを参照して欲しい。

んで、作成するものは、抜いちゃ駄目ボードを取り外し、そこに増設用ライザーカードを取り付ける
というものである。

PCIユニバーサルボードを用意し、そこにPCIコネクタを取り付ける。
のだが、PCIコネクタを取り付けようとして、気がついた。

「む? はいらん」

PCIコネクタは千鳥ピッチ、つまりよたよたと右左と足が出ているのである!
PCIユニバーサルボードはそのようなピッチで穴があいてはいない。

「い、いかん。このままではPCIコネクタを指すことすらできん」(※4)

そこで、一部の足を基板にさすのをあきらめ、31*4列のうち、入らない2列を水平に伸ばすことにした。
これがそう。2列が横に伸ばされているのだが、
みにくい写真である^^;
図説するとこう

これで強引にさすことができた。
多少(かなり)配線しにくくなってしまうが、ま、細かいことは気にしない。

んで、実際に作成してみたものがこれ。
PCIスロット実装面
配線面

根性を入れただけあって、なんとかそれなりのものが完成した。

で、実験してみるが、一番下の抜いちゃ駄目ボード用スロットはきちんと認識するも、上に用意した
スロットが認識しない。調べた結果、線が1本外れていることが判明。
はんだ付けしなおし、結線するが、こんどは両スロットともまったく認識しなくなってしまった。
あれこれと調べた結果、配線そのものはすべてうまくいっている。
ふとスロットに押し込むときに、配線の上に手を当てて押し込んだ(※5)ときにうまくいったこと
を思いだし、やってみる。
なんときちんと認識するではないか。

・・・どうやら、クロックラインが弱かったことが原因らしい。
線を曲げたことにより、微妙な具合でOKになったようだ。
とりあえず、V200マザーで抜いちゃ駄目+UIDE98をさしてみて見事成功したので、RaII23につけて見
ることにする。

が、ここでPCIユニバーサルボードの大きさがでかいことに気がつく。
抜いちゃ駄目ボードの代わりに付けるのだが、抜いちゃ駄目の1.25倍くらいでかい(※6)
そう、PentiumIIに「ガツンとぶつかるフォーエバー」である!

「くっ、PCIユニバーサルボードまでぎこぎこと加工せねばらならぬのか・・・」

と心配したのだが、なんとかぎりぎりでさすことができた。
ただし取り付けるときなどにCPUに接触する。

そして、Cバス空間にPCIが刺さることになるので、Cバス周りを取り除くことにする。
のだが、Xa13/W以降に共通する筐体(※7)では、のきなみごそっとはずさねばならない。

苦労(※8)してCバス周りを軒並み取り外すことにする。

が、取り付けようとしたときに衝撃の事実が発覚した!
待て次号!



※1
なんとなく、スタートレックネクストジェネレーションズ風。
カーク艦長の帰還が映画化されないものか。

※2
少ないPCIバスを何とかしてやりくりするというパズル的な要素が楽しめるという意見あり。
いろいろな機能を併せ持つ、複合カードがあればいいのだが、そんなものはほとんどない。
単にすべてをパラレルで配線してもよいCバスとは違って、安定動作のためにPCIブリッジなどをかま
さなければならないためだ。

※3
かぴばら氏、AtoG氏、いーとん氏、まりも氏、他(抜けてるかも)

※4
その前に気がつけよ。俺 ^^;;

※5
配線が外れてしまいそうだったので、次からは配線に触れぬようにPCIカードを抜き差ししていた。

※6
これでもPCIユニバーサルボードはハーフサイズを購入したのだ。
この上にフルサイズのボードが合ったのだが、これを買っていたら、スロットにさすこともできない
ところであった。

※7
外見からでは、フロッピーディスクが2段組になるのではなく、横に増設するタイプの筐体。
CDROMドライブが以前のものに比べて上に上がり、標準搭載HDDがその下に配置されている。
このタイプの筐体は、Cバス空間だけはずすということができない。
筐体の一番前から一番後ろまでのびている支柱が2本あり、この2本の間にCバスライザーや、HDD増設
用金具等がつく形になる。

※8
ご存知のようにこのマシンには増設ファンやらなにやらついているのだ。
HDD増設紙具なども含めて、すべて筐体の後ろから前までつづいている金具に頼っていることになる。
これをはずさないと、Cバス空間まで続く道が無い。
あ、そうそう、スピーカーもここにくっついている。





第2回・続RaII23のPCIバスを増設する!

前回までのあらすじ(1回しかやってないのだが^^;;)

世界中を旅して手に入れたPCI増設用部品。
敵の妨害は熾烈を極めたが、からくもPCIユニバーサルボードの作成に成功する。
しかし、取り付けるためには多大な犠牲を払わねばらぬことがわかった。
犠牲を払うことも省みず立ち向かうのだが、そこには衝撃の事実が待っていた・・・


PCI増設用ユニバーサルボードを抜いちゃ駄目スロットが刺さっていた場所にさす。
ここに今まで刺さっていた抜いちゃ駄目ボードを指せば完成だ。
だが、抜いちゃ駄目ボードが刺さることは無かった・・・
なんと、抜いちゃ駄目ボードを指すスロットの位置が下すぎて、バックボードに
ぶつかるのである!

「ぬぉっ!ぬかったわ!」

このような罠が待ち構えていたとは・・・
バックボードを取り去ることは、筐体に納めないということに等しい。
とりあえず、この増設ボードは実証用実験ボードとして使用することにしたのであった・・・

続く!のか?

この回が非常に短いようなので、PCI増設に当たっての基本的なことを書くことにする。
これらの内容は、先人たちの内容とかぶってしまうがご容赦願いたい。
私流に解釈した結果である。

PCIを増設するにあたって、基本的な事柄や注意事項をいかに示す。

・PCIバスは、ほとんどの線がパラレルで結線してよい。

これは、信号線の大部分をしめる、アドレス・データバスやコマンド信号線、エラー信号線、電源線
などは、各PCIスロットで共通であるためである。
まあ、バスというくらいであるからそうなのだが。

・デバイス番号は各スロットに1つ割り当てられる。

各PCIデバイスはデバイス番号がわりふられ、区別される。
デバイス番号は、一般的にPCIスロットによって決まる。

・デバイスの初期化により設定が行われる。

PCIデバイスはインテリジェントであり、最低でも256バイトのレジスタ空間を持つ。
そのうち64バイトは規格により決まっており、共通である。
これ以上のPCIレジスタ空間を持つときは、アクセス時にファンクション番号などで振り分ける。
もちろん、どのファンクション番号が追加されているか等はそのカードの設計者以外知りようがない
のだが、そもそもそこを操作するのは各デバイスを制御するドライバであるため問題ない。
システムが操作するのは、ファンクション0番の共通空間である。

・パラレルにしてはいけない信号線

一部の信号線は、個別配線としなければならない。
これらの配線は、重要な役割を担っているので、適当にパラレルつないではいけない。

以下のような信号線がある。これについての解説もあわせて示す。

1.CLK クロック信号
PCIデバイスはクロック信号に同期して各バスにつながったデバイスが動作する。
そのため、パラレルにつないでしまった場合、信号線長の問題から、動作が遅れるデバイスが出てき
てしまう。そのため、クロックラインは、分配用回路を通して、すべてのデバイスに等長で到達しな
ければならない。のだが、増設に関してはそんな余裕は残されていない。
少しくらいなら動作に支障はないので、なるべく短く、近所のPCIデバイスからパクってくるしかない。
この信号線は非常にノイズに敏感であるようなので、結線は間違っていないのに、うまく動作しない
時には、この線の取り回しなどを疑ってみることをお勧めする。
33MHzは伊達ではないのだ。そもそも手配線で動くことが奇跡である。

2.REQ#,GNT# バスマスタ信号
PCIデバイスがバスマスタ動作する際に必要な信号線である。
CPUから送るときには関係がない。
この線はPCIチップセットから個別配線である。つまり、PCIチップセットにはREQ#0〜n等と、nセット
用意されている。この数を超えてバスマスタ動作するデバイスは簡単にはつけられない。
PCIバスマスタ動作しないものなら配線しなくてもよい。

3.IDSEL デバイスセレクト信号
PCIデバイスがセレクトされていることを通知する信号線である。使用されるのは初期化段階で、初期
化後は使用されないようだ。
なお、入力信号線であるが、PCIチップセットから配線しない。この信号は自分で作る必要がある。
アドレスから各デバイスが有効となるように、アドレスデコーダを使用するのだが、PCIデバイスの数
はそんなに大量につくわけではないため、アドレス信号線から1本パクってきてつなげるという方式が
取られていることが多いようだ。
この場合アドレス信号線1本につき、1つのPCIデバイスがマッピングされるという構造になる。
たとえば、AD29からパクれば、デバイス番号18番にデコードされて見える。
ただし、どの線でもいいわけではない。下位ビットは使用できない。また、予約されているデバイス
番号もある。既に本体内蔵のPCIデバイスで使用されている番号もあるので、増設する際にはこれらが
使用していない番号になるよう配線すること。

4.INT 割り込み信号線

割り込みを制御する信号線。INT A〜Dまでがある。
1つのカードで複合デバイスなどの時にB以降が使われるようだ。通常のPCIカードでは、Aしか結線し
ていないことが多い。

PCIの割り込みを管理しているのはサウスブリッジであるが、IRQ0〜3までしか割り込み信号線がない。
そのため、インタラプト信号線デコーダなどを用意して、各デバイスがどの割り込みラインにつなが
っているか等を検査し、割り込みを掛けてきたデバイスを特定しなければならない。
のだが、数もそんなにないし、回路が複雑になりやすいので、単純に、デバイスaのINTAはIRQ0、デバ
イスbのINTAはIRQ1...と配線するようだ。
つまり、各スロットにたどり着くINTは、
デバイスa A B C D
デバイスb D A B C
デバイスc C D A B
デバイスd B C D A
デバイスe A B C D
などと配線している。

一般的に、割り込みはいつかかるかわからないので、同時に複数のPCIデバイスから要求がかかること
もある。(回路的には高速性が犠牲になるが、出力がぶつかってもかまわない回路設計になっている)
この場合、デバイスaとデバイスeが同じであるが、デバイスaとeの区別は、同時に割り込みを掛けるこ
とがないだろうということで、割り込み許可信号を出したときに、割り込みを要求したほうが応答する
という単純な構成になっているのではないだろうか。
そのせいか、ボードによってはシェアすると具合が悪いことがある。

ところで、デバイスaと書かれているが、実際にはデバイス番号である。
n番のデバイスの割り込みがどのように結線されているかという情報は、回路設計に依存するので、設計
者がPnPBIOSに持たせているようだ。
(初期化段階で、デバイスに割り込みを掛けさせてみて調べるなどといった事はやらないようだ)
つまり、増設した場合データがないので、割り込み情報を正しく設定できないことがある。
この場合、対応したIRQ信号線がレディにならず、要求したデバイスに割り込み許可が与えられない事
態が発生する。こういった場合、正常に動作しないことが多いようだ。
割り込みが入る前にきちんと設定し直してやる必要がある。





第3回・続続RaII23のPCIバスを増設する!

前回までのあらすじ

困難の末完成した増設用ライザーカード。
だが、そのために払わなければならない犠牲は大きかった。
次々と倒れていく仲間たち。
彼らの最後の言葉、「俺の屍を超えて行け」を胸に、今新しい世界へと踏み出したのである。


結局RaII23のPCIを増設するにあたって、まず実験を行うことにした。
どれくらいフレームを加工すればマウントすることができるのかなどのデータを取ることにしたのである。

で、今回PCI増設のターゲットとなったのが、Xa13/Wである。
このマシンのPCIを増設することにする。
ちょうどいいことにこのマシンのグラフィックスも抜いちゃ駄目ボードに載った98グラフィックス(※1)で、
供給されているのだ。

だが、RaII23と違ってこのマシンのINT配線は若干違っているので、そのままでは他のスロットが使
用しているINTの順番とかち合ってしまう。
のだが、面倒なのでそのまま付けてみることにする。
まず、本体の後ろから前まで渡っているフレームの後ろの部分をごっそり取る。
フレームの支柱部分だけが残るように加工(※2)してしまうのだ。
こうでないと、PCIカードをスロットにさせない。
穴があいているので、この周りを全部とってしまうような形になる。
で、PCI増設ライザーカードを、抜いちゃ駄目ボードの刺さっていたところに差す。

暗い上にすごく見にくいが、左側の緑色のボード

…やっぱりちょっと無謀だったか。どうやっても割り込みを認識してくれない。
割り込み自体は、空いているIRQ10番あたりが割り当てられているのだが、まりもさん資料によると、
同じINT順番を使用している場合は強引にでも共有状態にしなければならない。
StarAlpha2をいじったり、各PCIデバイスの割り込み設定レジスタをいじって強引にシェア(※3)してみたの
だが、どうにも割り込みが有効になってくれないようだ。
各なる上は、配線を付けかえるしかないのであるが、はんだごてて配線を変えようとすると、びっしり
と配線した部分の下をいじらなければならない…。
そのため、今回は割り込みをそもそも使わんボードを突っ込むことにした。
これならば、IRQが適当に割り当てられていても問題無かろう。
というわけで、Bansheeを突っ込んだ。
見にくいなぁ…後で差し替えようっと
突っ込んだのはメルコバンシーWGP-FX8Nである。
メルコバンシーならば、Cバスライザーを抜かなくてもぎりぎりはいる(※4)ようだ。

とりあえず、反対側はバックパネルを加工して抜いちゃ駄目ボード&WGP-FX8Nのケーブルを引き出す
ことができるように加工してみた。
具体的には、水平に入っている鉄板をすべて取り除く。
そのうえ、Mate-XPCMを固定するねじを締める部分を片方だけ取り除く。
もちろん、PCIスロットに近いほうである。
抜いちゃ駄目ボードとRGB-INの間は
短いケーブルでブリッジしてある。
下が抜いちゃ駄目で、上がバンシー
ついでに、HDD増設紙具を追加してHDDをもう1基搭載してみた。
今回は押さえ具まで紙である。うむ。

現在のこのマシンの状態であるが、
PCI1UIDE-98
PCI2XWave-6000真中
PCI3aPCIライザー
PCI3b98Graphics+Trident
PCI4WGP-FX8N
である。
垂直部分は下から数えてある。
Cバス部分に内蔵しているので、カバーを閉めてマシンを立てた状態で動作試験している。
まあ、例のCLKラインの不調がたまに出るが、まあ気にしないことにする。

一応ほぼひとつの完成形になったといえよう。

さらなるマシンのPCI増設を目指して・・・続く! かもしれん。


※1
98グラフィックスとTrident9682の組み合わせは一緒である。
黄金パターンであるな。
実際には98グラフィックスというよりも21グラフィックスなのだが、まあ細かいところはいいだろう。

※2
今回加工にはハンドニブラを使用した。
ところで金属加工を行うときには、軍手等をつけて行った方がよい。
シャーシ側がくるりと回転して、手を切ってしまった。
さらに、力を掛けて加工しているので、切断した余力なんかであちこちにぶつけてしまうのである。

※3
3本あるPIRQ線それぞれにどのIRQを割り当てるかという設定を、サウスブリッジであるStarAlpha2で
行う。各PCIデバイスは、割り込みのIRQ番号をPCIコンフィグレーションレジスタ内部に持っている。
これらの値をきっちりと合わせれば、PCIのIRQの設定を自分で行うことができる。
のだが、PCIの設定のみであり、PnPBIOSやPCIBIOSを無視して設定しているので、これらのワークエリ
アもそろえてやらないと正しくアクセスしてくれないのかもしれない。
むむぅ・・・

※4
正確には、Cバスコネクタとコネクタの間でないと収まらない。
Cバスコネクタとぶつかる場所にPCIコネクタを設置してしまうとはまることになる。



改造講座メニューへ
トップへ