小高輝真の「いまどきの98」第3回

98のポイントはこれで完璧把握

小高輝真の「いまどきの98」 第3回

98をアップグレードする~P54C搭載機の高速化手法

TEXT:小高輝真 (ウェブテクノロジ)


Pentium Bottom view
 前回は、P54C(従来型Pentium)搭載98にMMX Pentiumを搭載する方法を紹介した。これは、話としては面白いのだが、いかんせんMMX Pentiumに換装できる機種が限られるという問題があった。あのような記事を書いておきながら、実は筆者が使用しているマシンも、MMX Pentiumに換装することができないのである。(^_^;
 MMX Pentiumへの換装こそできないが、筆者は以前からより高速なP54Cに載せ換えて使用している。今回は、この方法をご紹介しよう。
 筆者が使用しているマシンは(購入当時は)PC-9821Xa7だった。現在はこれに166MHzのP54Cを搭載して使っている。今回紹介するアップグレード法は、この機種よりあとに発売されたマシンの多くにも適用できる汎用性の高い方法なので、多くの読者の参考になれば幸いである。



どの機種でクロックアップが可能なのか

 今回は、具体例としてPC-9821Xa7を取り上げるが、他機種のユーザでもこの記事をクロックアップの参考とすることができるだろう。ここではまず、筆者が把握している範囲で、クロックアップの可否を示すことにする。なお、98NOTEについては通常の方法ではCPU換装は不可能なので、この記事では考慮していない。

●この記事に基づいてクロックアップが可能と考えられる機種

●オーバドライブプロセッサでのみクロックアップ可能な機種

●クロックアップ不可能な機種:

注意:この記事に基づいて改造を行った場合、その結果について、筆者およびインプレスPC Watch編集部はなんらの保証もいたしません。また、なんらかの原因により本体等を壊してしまった場合には、メーカの保証は受けられなくなります。すべて自己の責任において行なってください。

クロックアップの基礎知識

●コアクロックとバスクロック
 さて、CPUの高速化を行うにあたって、まずPentiumの動作クロック周波数がどのように決定されるのかを理解しておく必要があるだろう。
 Pentiumの場合、クロック周波数には2種類ある。コアクロック周波数とバスクロック周波数である。
 普通、CPUの動作クロックと言ったときは、CPUコアの動作周波数を指すと考えて良い。演算ユニットや、CPUに内蔵されている1次キャッシュはこの周波数で動作している。当然のことながら、この周波数が高いほど処理が高速になる。
 もうひとつ、バスクロックというものがある。これは、CPUが外部のデバイス(セカンドキャッシュやチップセット、メモリ、I/Oなど)とデータのやりとりをするときのタイミングをとる基準として使われるクロックである。このクロックの周波数が高いほど、CPU外部とのデータのやりとりが高速になる。
 Pentiumの場合、CPUコアクロック周波数とバスクロック周波数の関係は、以下のようになる。

 たとえば、150MHzのマシンと133MHzのマシンを比べた場合、演算が主体の処理を行う場合は150MHzのマシンのほうが高速だが、データ入出力の多い処理を行うと、バスクロック周波数の高い133MHzマシンのほうが高速になることがありうる。実際、製品として180MHz(60MHz×3倍で使用することになる)のPentiumが存在しないのは、166MHzのものよりも全般的に性能が劣るからだと言われている。
 CPUのクロック入力端子には、バスクロック周波数の信号が入力されている。これをCPUの内部で1.5~3倍の周波数に変換して、CPUコアを駆動する。クロック倍率は、それを決める2本の入力端子(BF0、BF1ピン)の状態で外部から設定できるようになっている。

●クロックアップのアプローチ
 前述のように、クロック周波数は2つのファクターにより決定される。つまり、クロックアップには次の2通りのアプローチがあるわけだ。

Bus Clock SW
写真2:PC-9821Xa7のバスクロック設定スイッチ(SW2)
CPUソケットのすぐ脇にある
 バスクロックの信号は、マザーボードからCPUに供給されている。これを変更(高速化)するには、マザーボードがそのように設計されている必要がある。
 PC-98シリーズのマザーボードは、PC-9821Xa7以降のデスクトップ機('95年5月以降に出荷された機種)のほとんどで、これが変更できるようになっているようだ。
 PC-9821Xa7は、表1からわかるように、バスクロック周波数50MHzの状態で出荷されている。ところが、マザーボード上のジャンパスイッチを2ヶ所ショートするだけで、バスクロック周波数を66MHzに上げることができるように設計されている。
 一般的に、数年前のマザーボードでは必要なクロックと同じ周波数の水晶発振器を使用していたが、最近の機器ではPLL(Phase Locked Loop)と呼ばれる回路(IC)を使用して、発振周波数をプログラマブルにしている場合が多い。ちなみに、写真2のスイッチの左隣に写っている小さなICがPLL回路で、ここからCPUやチップセットにバスクロックが供給されている。

Magnification SW
写真3:PC-9821Xa7(後期ロット)のクロック倍率設定スイッチ(SW3のパターンのみ)
Cバススロットの下のフラッシュメモリの隣にある
 入力されたクロックを何倍してCPUコアを駆動するのかは、CPUの2本の設定用入力端子(BF0,BF1ピン)の状態で決定される。PC-98シリーズのマザーボードでは、機種(ロット)によりこれを設定できるようになっているものとなっていないものがある。
 筆者が確認している範囲で言えば、'95年5月に出荷されたPC-9821Xa7、Xa9、Xa10の初期ロットでは、この設定はできない(1.5倍固定)。ところが、途中のロットから、2倍の設定をするためのプリントパターンがつくようになった(写真3。ただし、ジャンパポストは実装されていないので、2倍設定にするにははんだづけが必要)。また、'95年8月に発売されたPC-9821Xa12では、2倍、2.5倍、3倍の設定が簡単に変更できるようなジャンパポストが実装されていた。
 すべてを確認したわけではないが、'95年8月以降に発売された機種の多くは、クロック倍率の変更が簡単にできるようになっていると考えられる。


クロックアップの実際

 それでは、実際にクロックアップを行うにあたり、注意点なども交えて解説を行うことにする。

●バスクロックを66MHzにする
表2:PC-9821Xa7のバスクロック設定スイッチ
SW2 1-2SW2 3-4バスクロック周波数
SHORTSHORT66MHz
SHORTOPEN60MHz
OPENOPEN50MHz
OPENSHORT33MHz
* PC-9821Xa7、Xa9、Xa10の初期ロットでは、SW2 1-2がSW2、SW2 3-4がSW3とシルク印刷されている。
 バスクロック周波数が66MHz未満の場合は、まず迷わずこれを66MHzに設定する。
 PC-9821Xa7のバスクロック設定スイッチの設定方法を表2に示す。66MHzにするには、SW2(写真2)の1-2と3-4の両方をショートする(ショートピンを差し込む)。
 もとからバスクロック周波数が66MHzの機種(PC-9821Xa10、Xa13、Xa16等)なら、この処置は必要ない。

●メモリのパリティに関する注意
 PC-9821Xa7、Xa9、およびPC-9821Xa10の非Windows95モデルで使用されているマザーボードでは、バスクロック33MHz、60MHz、66MHzの設定ではパリティチェックを行い、50MHzの設定のときのみメモリのパリティチェックを行わないように設計されている。PC-9821Xa7は出荷時にパリティなしのメモリを搭載しているので、このバスクロックを変更したときにはパリティありのメモリに交換する必要がある。
 ちなみに、'95年8月から'96年5月の間に発表されたPC-9821Xa*シリーズは、どのバスクロックでもパリティを使わないので、バスクロック周波数を変更してもメモリを交換する必要はない。余談になるが、このころは価格競争の激しい時代で、信頼性を犠牲にしても価格が重視される風潮があった。この時期、PC-98シリーズのほぼすべての機種がパリティなしになっていたこともあったが、96年後半頃からは上位機でECC対応になるなど、信頼性を確保するように改善されている。

●セカンドキャッシュに関する注意
 PC-9821Xa7は、出荷時はセカンドキャッシュを搭載していないが、クロックアップをするのであれば、セカンドキャッシュはぜひとも増設したい。このセカンドキャッシュは、バーストSRAMを使っているためかなり高価なのだが、アプリケーション使用時のベンチマークテストで20~30%程度の高速化が認められるほどの効果があるからだ。
 PC-9821Xa7用のセカンドキャッシュには256KBと512KBの2種類があるが、容量だけでなく、256KBはパリティなし、512KBはパリティありという違いもある。メインメモリのパリティチェックをする機種では、セカンドキャッシュにもパリティありが必要になる。つまり、バスクロックを66MHzにアップしたPC-9821Xa7にセカンドキャッシュを増設するときには、必ず512KBのものを選ばなければならないことに注意しなければならない。
 PC-9821Xa10のWindows95プリインストールモデルも標準ではセカンドキャッシュを搭載していないが、この機種はパリティチェックを行わないので、セカンドキャッシュを追加する場合、256KBのものを選んでも問題ないことを付記しておく。セカンドキャッシュ容量は、一般的なビジネスアプリケーションを使う場合、256KBと512KBとで効果に大きな違いは出にくいので、パリティなしが使える機種では256KBを選ぶほうが賢明(ハイコストパフォーマンス)だ。

●クロック倍率を変更する
表3:PC-9821Xa12のクロック倍率設定スイッチ
SW3 1-2SW3 3-4クロック倍率
OPENSHORTx3.0
SHORTSHORTx2.5
SHORTOPENx2.0
OPENOPENx1.5
* PC-9821Xa7、Xa9、Xa10の初期ロットにはない。後期ロットではSW3 1-2だけある。
 筆者のPC-9821Xa7は、写真3に示したように、クロック倍率を2倍にするためのプリントパターンだけ存在するマザーボードが使用されていた。
 どうやら、このパターンが存在するマザーボードであれば、100MHz超のP54Cが搭載できると判断して良いようだ。逆に、このパターンが存在しないマザーボードの場合、実際に100MHz超のP54Cを実装してみて、問題なく動作するかどうか調べなければならない。筆者が確認している範囲で、パターンが存在しないロットでも、166MHzのP54Cが問題なく動くものと、動かないものがあった。
 先にも述べたように、もし通常のP54Cが動かない場合でも、Pentiumオーバドライブプロセッサならば動作するので、不明な場合はODPを購入するほうが安全だろう。

 PC-9821Xa12以降の機種では、SW3が2個のジャンパスイッチになっていて、1.5倍、2倍、2.5倍、3倍の切換がショートピンを差すだけで変更できるようになっているようだ。
 これと同等のジャンパは、PC-9821Xa13/W、Xa16/W、Xa20/Wにも存在する。これについては「いまどきの98」第2回で紹介しているので、参照して欲しい。

●ジャンパのない機種は…
 さて、筆者のマシンにはクロック倍率2倍用のパターンはあったが、2倍(133MHz)までしか使えないのではつまらないので、写真4のように、マザーボード裏面からCPUソケットの端子に配線を行って、DIP SWで任意の倍率に設定できるような改造を行った。ただし、この改造はCPUのピンピッチもかなり細かいので、かなりはんだづけに自信のある方以外にはお勧めできない。
 この改造をしたい場合は、IntelのWWWサーバでAcrobatフォーマットデータシートが提供されているので、これをダウンロードすると良い。
 このデータシートのp.9 Figure 3にクロック倍率設定用入力端子(BF0、BF1)の位置の図が、p.22 Table 3にはBF0、BF1の状態とクロック倍率の一覧表が掲載されている。
自作スイッチ
写真4:PC-9821Xa7につけた倍率設定スイッチ
メルコ下駄
写真5:MTC-40001 クロック変換ソケット
●メルコ下駄を使う方法
 はんだづけによる改造をしたくない場合には、クロック倍率を変更できるソケット(ゲタ)を使えばよい。通称「メルコ下駄」と呼ばれている製品(MTC-40001)を使えば簡単だ。
 ただし、下駄を履いたぶんCPUの取りつけ位置が高くなるので、もとからついていた放熱器が使えなくなる。CPUクーラー付きのP54Cを使うとか、放熱器を伝熱性の両面テープで固定するなどの工夫が必要になるだろう。

メルコ下駄
写真6:MTSA-MX MMX Pentium用電圧変換機能も持った下駄
●MMX対応のメルコ下駄も発売されたが…
 ところで、メルコからは、同様のシリーズでMMX Pentium用に電圧変換機能も持った下駄(「MTSA-MX」)も発表されている。これをお借りして、PC-9821Xa7にMMX Pentiumを搭載する実験を行ってみたのだが、残念ながら正常には動作しなかった。正確には、MS-DOSやWindows95のSafeモードは(一見)問題なく動くのだが、通常モードのWindows95やWindows 3.1は起動の途中でハングしてしまった。Pentium搭載機は、起動時に、ITF(Initial Test Firmware…ハードウェアのチェックや初期化などを行うROM内ルーチン)でPentiumの未公開レジスタになにやら書き込みをしているのだが、その処理に問題があるのか、あるいはハードウェア的な問題なのか、原因はわからない。
 ちなみに、PC-9821Xa16/WのようにMMX Pentiumが使用できる機種でも、物理的な形状の問題でこの下駄は使用することができなかった。下駄についているレギュレータのヒートシンクと、CPUの横に実装されている電解コンデンサがぶつかってしまうためだ。もちろん、VRM搭載機種でMMX Pentiumを使いたければ、VRMを交換すれば良いだけの話なのだが。


コラム ~ オーバドライブプロセッサあれこれ


    ●ODPは最速でも166MHz

     P54C用のPentiumオーバドライブプロセッサ(以下ODP)には、最大動作周波数の違いにより、125MHz、150MHz、166MHzの3品種がある。'97年4月30日現在、200MHz品は用意されていない。なお、ODPはクロック倍率設定用の入力端子の状態によらず、常にクロック倍率2.5倍で動作するように設計されている。

    ●インテルブランドとNECブランドのODPがある

     インテルブランドの製品には、PC-9821Xa7、Xa9、Xa10専用と称して、Nタイプというものが存在する。NECブランドのODPもあるが、特にPC-9821Xa7、Xa9、Xa10専用という区分けはなく、最大動作周波数別に3種類用意されているだけだ。

      インテルの型番
        JBOXPODP3V125、 JBOXPODP3V150、 JBOXPODP3V166
        JBOXPODP3V125N、JBOXPODP3V150N、JBOXPODP3V166N(Nタイプ)
      NECブランドの型番
        PC-9821-E04(125MHz)、E05(150MHz)、E06(166MHz)

     実際に、Nタイプと非NタイプのCPUIDなどを比べてみても、全く同じ値が返ってくる(ただ、CPUIDは機能的な差異がある場合でも変化しないことが多いようなので、あまりアテにはならないのだが)。また、133MHz以上のP54Cが動作しなかったPC-9821Xa9に非NタイプのODPを装着してみたところ、特になんの問題もなく安定動作していた。
     いったいNタイプというのはなにが違うのだろうか。もし、この違いについてご存じの読者がおられたら、ぜひお知らせいただきたい。
     また、ODPの動作対象機種はなぜか非常に少ない。インテルとNECで対象機種が若干異なっているのも不思議だ。

      インテルの動作確認機種
        PC-9821Xa7e、Xb10、Xn、Cb3/T、V7、V10
        PC-9821Xa7、Xa9、Xa10(Nタイプのみ)
        * インテルは「動作保証」という表現はしていない
      NECが公表している対応機種
        PC-9821Xa7、Xa7e、Xa9、Xa10、Xa13、Xb10、Xn、V7、V10

     このリストには載っていなくても、120MHz以上のP54Cを搭載した機種であれば、まず間違いなくODPが動作するだろう。ただ、アップグレードのコストパフォーマンスはあまり高くないかも知れないが。

    ●MMX対応ODP

     米国ではすでにMMX対応ODPが発表されている。これを報じたPC Watchの記事によると、日本でも今年前半に発売されるとのことなので、入手できる日も近いだろう。
     ただ、従来のODP同様、販売戦略上の理由により、MMX対応ODPの最上位品も166MHzどまりである。それでも、P54Cの200MHz程度のパフォーマンスが期待できるので、手軽にアップグレードできることも考えるとそれなりに魅力的な製品と言えるだろう。

参考文献

  • こうのたけし著 「PC-9821Xa12/Xa7e解体新書」『TheBASIC』'95年11月号(技術評論社)
  • Pentium Processor Datasheets(24199708.pdf) (Intel Corporation)

    ご意見・ご感想をお寄せください

     今回の改造を再現してみた方(特に、PC-9821Xaシリーズ以外で)は、ぜひ結果をお知らせください。
     また、「こんな改造は可能か?」などのご質問も大歓迎です(ただし、個別のご質問にはお答えすることができませんので、あらかじめご了承ください)。
     いただいたメールは、随時「いまどきの98」でご紹介させていただきたいと考えています。


    このページに関するご意見・ご感想は、筆者までお願いします。

    [Text by 小高輝真(ウェブテクノロジ)]

    【PC Watchホームページ】


    ウォッチ編集部内PC Watch担当 pc-watch-info@impress.co.jp