[2002.09.14]

128Mbitsで32MB拡張メモリ、できたかな?


PC110の拡張メモリ32MBを狙って、精根傾けて愉しく取り組んでいます。
先回が三段跳びのホップなら、今回はステップでしょうか。
("もう直ぐ「黒い後継機? U3」が出るという時に、何を今更!"という処でしょうけど)

128Mbを2個載せれば、32MBになるはずですが、1バンク当たり16MBの制約があって、先回はそこでストップしてしまいました。
今回は、ロジックを追加して、望み通りに動くかどうかやってみました。

結果は、成功!全容量28MBWin95を走らせる事ができました。
(よく知られているように、32MBフルだと16色表示になるので、28MBで我慢します。下記の「参考資料,謝辞」を参照
しかし、立ち上がり後の切り換えは手動/仮付け回路なので、まだ完成というわけには行きません。

−−−−−−−−−−−−−−−−−−−−−−−−−
無い知恵を絞った.

一般的に、DRAMはアドレス線の本数を低減するために、アドレス信号をRow(行)アドレスとColumn(桁)アドレスとを、2回に分けて受け取ります。それらを全部合わせて、内部のメモリ領域をアクセスするわけです。

128MbのDRAMだと、RowアドレスはA0からA11、ColumnアドレスはA0からA10までが必要になります。

しかし、PC110の拡張メモリ・コネクタには、1バンクについて、RowはA0〜A11、ColumnはA0〜A9までしか出ていないと思われます。"columnのA10が足りない!
・・・(と言うか、RowA10は出ていても、1バンク16MBに制限されているので、columnA10が出て来ない?)

だから、如何に頑張っても、このままでは、128Mbメモリの半分しか使えない事になります。
で、考えたのは、*RAS3が出た(Lowの)時に、columnアドレスのA10をHighにしてやれば、残り半分もアクセスできるのではないか?という事です。

ロジックでA10を生成

タイミング図が正しく読めていて、理屈が合ってるなら、論理回路で何とかなるかも知れません。*RAS3A10EX-OR(排他的論理和)を取ると、上手く行きそうです。

しかし、*RAS3をそのまま使うと、Rowアドレスが出る時に悪影響が出るのではないか?という心配があります。そこで、気休めにゲートを1個余分に使って、少し遅延させてやる事にしました。

組んでみたのが、左図です。本当は、上側の回路は、1個のANDゲートの方がいいのですが、2個のEX-ORで代用させました。(これは、1パッケージに4個入っていて、ちょうど上手く充当できるからなんです。が、今度はこちら側の遅延が心配)

実装した場所は、右最上部の写真で分かるように、コネクタの手前に裏返しで付けました。7番ピンがGNDなので、基板のGNDの皮膜を剥いで、そこに半田付けして固定しました。あとVcc配線にやや太目の線を使えば、程々にシッカリ留まります。

尚、ゲートは74VHC86(SOP)で\100/個、通販で購入。(1個で間に合いますが、通販で1個だけ注文するわけには...)

操作方法
上の回路図には、抵抗と容量とによる立ち上がり遅延回路を描きましたが、実験では、スイッチを付けた場合と遅延回路(抵抗R:2MΩ、容量C:0.2μF:実は、これらしか手元に無かった)を付けた場合の両方で動作する事を確かめました。
また、別途、*RAS2と*RAS3とを始めのゲートに入力し、次段のゲートの片方の入力にR・Cの遅延回路を入れる方式でやってみたら、それも上手く動作しました。

以下の手順は、先達の方々の後追いでしかありませんが、自分の覚え書きとして、書いておきます。
スイッチの場合
 1.始めスイッチをLow側に倒しておく
 2.電源ON (多分、メモリ・カウントは03712 KB表示のはず)
 3.F8を押して止め、PC-DOSモードにする (当苑のマシンでは/も、DOSが動かせるので)
 4.Fn+F4でサスペンド状態にする
 5.スイッチをHigh側に切り換える
 6.Fnで、サスペンドを終了し、レジューム(動作再開)する
 7.DARK2301 03 CD と入力・実行
 8.Ctrl+Alt+Deleteでホット・スタート
 9.以降、Win95が立ち上がるまで待つ
尚、始めからスイッチをHighにしておくと、電源ON後画面が一瞬明るくなった後、左上にカーソルが出て点滅を継続(以後、進行せず)

遅延回路の場合
 1.電源ON
 2.F8を押して止め、PC-DOSモードにする
 3.DARK2301 03 CD と入力・実行
 4.Ctrl+Alt+Deleteでホット・スタート
 5.以降、Win95が立ち上がるまで待つ

結果

PC-DOSでも、emm386コマンドやmemコマンドで、28MBになっているのが確認できました。また、Win95上では左図の如く。それで、ネットスケープでのサイト巡りもできました。

兎に角、これで128Mbを"だまくらかして、働かす"事はできそうです。しかし、タイミング的に怪しげな処が二三ありますので、別の組み合わせでやったらどうなるか分かりません。(まあ、この板さえ動けば、それでいいのですが)

ゲート(74VHC86)は何とか乗りましたが、抵抗と容量が意外に大きくて乗せ難いのと、レジスタ設定の手間が面倒なので、もっと簡便な手抜き法(?)が無いものか考えてみたいと思ってます。(へたな考え...)


参考資料及び謝辞.
以下の資料やソフトを参考に、また使用させて頂きました。感謝 m(._.)m
 *「トランジスタ技術 2002年7月号 P284〜」 著者:ぽんたさん
 *「【超人PCの 32MB 化】」 著者:HeroHeroさん
 *DARK2301実行ファイル 作者:Apple2さん


[表紙頁]へ  関連記事の目次へ