Celeronによるマルチプロセッサ化

99/02/21 長橋 かずなり


Pentium IIマルチプロセッサの問題点

98/03/27に掲載したSMP化を行ったWindowsNTマシンでのソフト開発を続けてきた。その掲載からしばらくたったころに、もっと高速化を図りたいと考えてベースクロックの設定の自由度が高いマザーボードとしてASUS P2L97-DSとPentium II 300MHzを2個購入して構成を変更していた。しかし、ベースクロックを少しでも上げると動作が不安定になり、標準のベースクロックでもたまにハングを繰り返すという状態のマシンになってしまったのである。メモリー、マザーボード、以前のCPUなどを変更しての試行錯誤の結果ではどうもCPUが怪しそうだったのでハズレのCPUを購入してしまったかなと思っていたのだが、Pentium II CPUは非常に高価であった事もありその不安定な状態で我慢して利用していた。(今回の構成変更の試行錯誤からそのハング原因は内蔵SCSI CD-ROMのターミネータが死んでいたことであると判明)

さらに高速なPentium IIを購入したいとも思っていたのだが、ただでさえ高価なものをSMPで利用したいとなると2個も同時に購入しなければならないのである。「あーぁ、450MHzのPentium IIの値段が下がるのを待つしかないのかな」とハングするマシンを利用しつつも考えていた。「Celeronが安いんだけどマルチプロセッサ構成はサポートしていないし」。と、思っていたらCeleronでマルチプロセッサ化を行うという改造がマニアの間で盛り上がっているではないか。詳細はおそらく情報発信源であるKIKUMARU's Technical Laboratoryを参照していただきたい。私のページではそれ以上の技術的情報はないが、私のハードウェア環境でも実証されたという追加的な情報として紹介しようと思う。

私にとってCeleronをマルチプロセッサで動作させるということはCPU単体の値段的な魅力と、さらにはCeleronがベースクロック66MHzで動作するということである。ベースクロックがなぜありがたいのかといえば、手持ちのP2L97-DSは100MHzクロックの設定が可能なものの、それは非サポートのモードでありPCIの動作クロックも向上してしまうものなのである。したがって、100MHzベースのPentium IIを購入するとマザーボードも新しいものを調達しなければならない可能性が大きくなる。Celeronであればその必要性がないので高価なデュアルマザーボードの新規購入の必要がなくなるというわけである。

Celeronマルチプロセッサ化の知識と準備

Celeronをマルチプロセッサ化する場合に必要になるものはCeleronをサポートしたDual構成のマザーボード、Celeron CPUを2個、さらにCPUがPPGA版の場合はSocket370をSLOT1に変換するためのドーターボードを2個である。

マザーボード

手持ちのASUS P2L97-DSを利用することにする。BIOSが初期のバージョンのものであるとCeleronをサポートしていないので最新版のものを利用する必要がある。

Celeron PPGA

Celeronは今までSLOT1にそのまま差し込むSEPP形状のものが多く流通していたが、更なるコストダウンのために昔のシンプルなPPGA形状のものに置き換わりつつある。実際に秋葉に購入に出向くと、SEPP版は姿を消しつつあることを実感できた。PPGA形状のCPUはSocket370というSocket7などと同じようなソケットに差し込むことになる。写真はCPUクーラーを装着したままのPPGAパッケージのCeleronを裏側から撮影したものである。

ドーターボード

当然ながらPPGA版のCeleronをSLOT1に差し込むことはできないのだが、需要があれば製品はあるものである。主要なマザーボードベンダーからSocket370をSLOT1に変換するためのドーターボードが発売されているので、そのドーターボードも2個購入することになる。KIKUMARU's Technical Laboratoryで得ていた情報からもドーターボードを利用したほうが改造が楽であることを知っていたのでそうすることにした。ECSのSmartAdapterが改造が楽そうであったのでそれを購入することにした。このドーターボードに1本のジャンパ線を自分でハンダ付けすることにより改造を行うのである。

ASUS P2L97-DSとECS SmartAdapterによる試行

まずは無改造の標準状態で動作するかを確認しなければならない。無改造のドーターボードではマルチプロセッサ動作は無理なので、1つのプロセッサで動作するかを確認するのである。しかしながら、なかなかまともに動作してくれない。BIOS画面は表示されるものの、運がよければDOSが起動する程度でその後すぐにハングしてしまうのである。BIOS設定などをいろいろといじってみたが、一次キャッシュをDisableにすればいずれのOSも起動するものの、それでは486CPUより低速である。今回対象のソフト開発用のマシンではなく、もう一台のゲーム用のマシンのマザーボードとしてAOpenのAX6BCも購入していたのでそれで試してみるとまったく問題はなかった。したがって、ドーターボードとマザーボードの相性が悪いものと判断して違うメーカーのドーターボードを入手することにした。

ASUS P2L97-DSとASUS S370で成功

ASUSのマザーなのでASUSのS370にすれば問題ないだろうということでASUS S370を購入した。これはKIKUMARU's Technical Laboratoryの記述のようにB75のスロット部分のパターンがないので改造が厄介ではある。シングルCPUによる起動はまったく問題なかったので、さっそく改造に取り掛かった。B75のパターンの部分にジャンパ線を瞬間接着剤で固定するという荒っぽい方法である。ハンダ付けに関してはアナログの電子工作を趣味にしていたのでCPU側のハンダ付けは楽勝であったが、スロット側の接着は結構慎重になってしまった。個定位置にわずかなマージンしか許されていない事と、瞬間接着剤で一度固定してしまうと再度剥がすのは困難だと思ったからだ。

この改造を2枚のドーターボードに施し、SLOT1 2基に装着して起動してみた。なんだかあっさりと成功してしまった。BIOSでもNTからもマルチプロセッサとして認識されたのである。このまま利用していれば問題はなかったのだが、その後にPC静音化(この後掲載します)の試行錯誤でドーターボードを抜き差ししていたらやはり接着部分の銅線が切れてしまった。もう一度作り直すことになったのだが、今度はあらかじめ銅線部分にハンダを流し込みある程度の強度を持たせてから接着したことを付け加えておく。

パフォーマンス

今回はプロセッサの変更ということもあり効果をぜひとも確認したくなったのでベンチマークを取ってみた。OSはWindows NT4.0で、WinBenchのCPUマークとART Image MasterのMS VC++ Ver6.0によるビルド(プログラムのコンパイルとリンク)時間の測定である。SMPに関する効果は98/03/27に掲載したSMP化に書いた理由と同様、フォアグラウンドのインタラクティブプロセスの動作が快適になればそれでよいので特に測定は行わない。

基準のパフォーマンスは元々のPentium II 300MHzのマルチプロセッサ構成で、比較対象はCeleron 366MHzのマルチプロセッサ構成を412MHz(75MhzX5.5)、458MHz(83MHzX5.5)のそれぞれで動作させたものである。458MHz(83MHzX5.5)でも安定して動作してしまうのでわざわざノーマル状態の366MHzは試していない。また、ベースクロック100MHzまで冒険しようという気も起こらなかったのでそれも試していない。あまり上げすぎてファイルシステムを壊すと面倒ですからね。

まずはCPUmark32の結果からである。

 

この結果を見るとPentium II 300MHzとCeleron 412MHzの速度差は動作クロックの差ほど大きくない。Pentium IIの2次キャッシュ容量512KBに対して等速動作とは言え1/4容量の2次キャッシュのCeleronが、ベンチマークプログラムのキャッシュのヒット率で不利になったということであろうか。このあたりはモニターすればわかるのであるが実アプリケーションでしっかりと差が表われれば問題ないので特に深追いはしない。しかし、実アプリで速度的に不満に感じている処理が、上記CPUmark32の結果のようになればCeleron化によってかえって速度低下をまねく可能性も有りそうだということが読み取れる。Celeronの458MHz動作では412MHz動作に対してクロック比として順当な結果となっている。

次はCPUmark16である。

このベンチマークではCPUmark32とは異なり、Celeronの412MHz動作時点ですでになかなかの伸びを示している。ベンチマークプログラムのキャッシュヒット率がPentium II、Celeronともよかったか、またはその逆であるということであろう。このように、単純なベンチマークによる結果は目安にしかならない(アプリを模したものはそうではないが)場合が多いので、とにかく自分の行う処理で確認することが重要であろう。

そういう訳で私の場合はプログラムのビルド時間がどれだけ短縮されるかという測定を行う。

単位は秒で短い棒ほど高速である。Pentium II 300MHz時には10分と28秒もかかっていた。これが458MHz動作時には7分57秒でビルドが終了し、実に2分31秒の短縮、約30%程度の処理速度の改善が見られた。SD-RAMの効能で触れたようにMS VC++のビルドの約10〜15%程度がディスクアクセスに費やされることを考慮すると、キャッシュの少なさは等速キャッシュによって十分補われているようである。

何よりもPentium IIの半額以下でこのパフォーマンスが得られるのだからまったく文句はない。

その他

2次キャッシュを搭載したもっとも安価なCeleron 300Aによるクロックアップに人気があるようですが、私はこのマシンはソフトの開発用で安定させて使う必要があるので安全を見てもともと366MHzのCeleronを購入しました。それでも、Pentium II1個分の値段でCeleron2個購入できてしまうので十分ですけど。

今回購入したCeleron 366MHzは458MHz動作でも非常に発熱量が少ないです。静音化対策も行いましたのでPC静音化計画 '99にも追って記事を掲載したいと思います。

上記の改造の試行錯誤によってファイルシステムの破壊が発生し、すべてのデータを失う可能性は高いです。また、ハードウェアの破壊ももちろん可能性はあります。各パーツの動作検証ができる環境(2台分以上のパーツ類)を取り揃えていない場合、また、OSのインストールや環境の再設定などのシステム管理の知識が十分でない場合は上記改造はお勧めしません。お試しになる場合はあくまで自己責任でお願いします。ここの情報をもとに改造を試された結果、何らかの被害があったとしても私は何ら責任は負えません。


ホーム