第14回・RvII26の封印を解除する!

RvII26。最高の性能をもちながらも、その力ゆえ、封印を施されている悲劇のマシンである。

封印は、CPUに施されている。
RvII26は、CPUに旧PentiumIIプロセッサである「Klamath」しか動作しない(※1)のだ。
新型PentiumIIである「Deschuets」を動かすことはできない(※2)

そして、この封印を施しているのが起動用BOOTROM、最近の言い方で言うとBIOS、そしてNECが言うITFだ(※3)

今回その封印を一部解除して、昔RaII23に使ったCeleron333を動作させることに成功した。
詳しいパッチ当ての個所などは次回以降に解説する。

封印の内容は、実は、RaII23と若干違う。
謎のL2チェックは同じのなのであるが、「GenuineIntel」チェック、CPUが
Intel純正かどうかでL2チェック以前に停止する機構なのであるが、これがないのだ。

ここで、謎のL2チェックを回避するには2つ方法がある。
1.Intel純正チップを使用している場合は、CPUのステッピングが630未満、つまり、
  PentiumProを使用している場合、回避可能である。
2.Intel純正以外のチップを使用している場合は、CPUのステッピングが630未満なら
  ば、動作する可能性がある。

つまり、Intel純正チェッカがない(※4)ということは2番の可能性が出てきたのである(※5)
もっとも、互換チップが登場するまで、待ってられないので改造してしまったのであるが^^;

これを解決したとしても、実は問題点はもう1つある。
それは、CPUの動作電圧の違いである
最近のプロセッサは低消費電力化や動作スピードの向上のため電圧が低い。
そう、PentiumII系も動作電圧が、2.8Vから2.0Vに変わっているのだ。

実際にCPUに電力を供給しているのは、CPUの脇にあるVRMユニットだ。
このVRMがCPUのVID(ボルトID)を検出して電圧を自動調整してくれていれば、
問題は消費電力のみなのであるが、動作させたかぎりでは、異常な発熱なども
起こっていないので、どうやら電圧は自動調整してくれているようだ。
(実際に確認してみた人もいるそうであるが、すべてのRvIIに搭載されている
 VRMユニットが2.0Vに対応しているかは不明なので、実装前に確認してみる
 ことをお勧めする)


実際にCPUライザーカードにさしたところ
下の箱は、ちょうど言い置き場所がなかったので、
RaII23に使用したCeleron433の箱を置いてある。
このタイプのCeleronであると、冷却ファンが
CPU固定金具にぶつかり、なんとなく斜めになって
いるのだが、気にしてはいけない^^;
実際にマシンに装着したところである。
冷却ファンの回転状態を知らせるピンが
あるのであるが、今回は面倒なので、
電圧12Vのみの結線にしてある。
この12Vをしらべるために、テスターを
あちこち引っ掻き回してさがしたのである

現在の性能

★ ★ ★ HDBENCH Ver 2.610 ★ ★ ★
使用機種
Processor Pentium II 332.4MHz [GenuineIntel family 6 model 6 step 0]
解像度 1024x768 65536色(16Bit)
Display NEC FullColor Window Accelerator Board X2
Memory 31,100Kbyte
OS Windows NT 4.0 (Build: 1381) Service Pack 4
Date 1999/ 6/27 4:35
IBM DCAS-32160 S61A
ALL 浮 整 矩 円 Text Scroll DD Read Write Memory Drive
16240 30185 24250 31843 6427 22824 69 7 7282 7046 27851 C:10MB

つづく!



※1
正確に言うと、動作するにはするのだが、メモリチェック終了後、
「CACHE ERROR」
を表示して、HALT状態に移行する。
(x86系命令のHALTで停止する。HALTは外部からの割り込みがない限りCPUを停止させる命令である。
外部割込みは、このチェック期間中は禁止状態にされている。
もしも、禁止されていない場合、ディスクの開閉などの割り込み
(AI=アテンションインタラプト)などで、
切り抜けられる可能性があったのだが。
唯一割り込みをかけることができるのが、電源スイッチ。これはNMI
(ノンマスカブルインタラプト)なので、
禁止中であっても、強制的に割り込みをかけることができるのだが、押すと電源が落ちる。
電源断の処理に強制的に飛ぶためである。
余談であるが、X68000はこの辺りなどもこっており、電源を切るために電源ボタンを押すと、画面がフェード
アウト
(ゆっくりと消えていく)してから電源が落ちる。エレガントなマシンである(笑)

※2
もっとも、コアが問題と言うわけでなく、L2キャッシュが問題だと言うことである。
出力されるエラーからして、それを暗示させている。
そのため、コアが同一でL2キャッシュを排除した、初代Celeronは動作報告があるとか。

※3
BOOTROMとは、ブートするためのROMのこと。
BIOSとは、標準入出力システムのことで、一般的にROMでマシンに搭載された状態で供給されるため、
これがブートROMをさしていることがおおい。
ITFとは、NECがそう呼んでいる起動時のマシンチェックのことである。
それぞれの呼び方の詳しい解説は、過去の改造講座を参照して欲しい。

※4
あくまで私が調べた範囲でなかったという事である。

※5
ちなみに、気になるL2キャッシュコントロールであるが、これはPCIブリッジチップセットに
搭載されている機能ではない。
P6系はCPUに内蔵されているため、PCIブリッジはキャッシュをコントロールする必要がないのだ。
そのため、CPUに内蔵されている機構を制御するMSR(モデルスペシフィックレジスタ=モデル固有レジスタ)
コントロールして制御を行う。
このため、MSRの制御パラメータはPCIチップセット、マシンアーキテクチャによらず、
ただCPUのみに依存する。
なお、RvII26に使われれているチップセットは、RCCのChampion1.0である。
現在では社名を変更して、ServerWorksになり、ChampionはServerSetなる名前に変わった。(Champion3.0 > ServerSetIII)



第15回・続RvII26の封印を解除する!

封印を解除するためには、いったい何がその封印を施しているか、そしてその封印の方法を
知らなければならない。

のだが、あいかわらず封印自体の内容は、一部を除いて判明していない。
そのため、相変わらず、封印そのものを封じてしまうことにする。

封印の場所を探す手がかりは、「CACHE ERROR」である。このメッセージを表示している部分の
近所に封印への道が眠っている(※1)のだ。

RaII23の時の経験があるので、あっさりと発見。
で、以下のルーチンを埋め込んだ。

push ad
mov ecx,11eh
rdmsr
mov eax,134052bh
wrmsr
nop
pop ad
ret

実際にはキャッシュ構成などを検出して、パラメータを振り分けることなども考えたのだが、
諸般の事情(※2)により今回もRaII23の時同様のパラメータ(※3)を使用したプログラムを組み込む
ことにした。

このルーチンはL2チェッカ自体の場所に組み込まれている。
既存のL2チェッカを封じてしまうわけだ。
しかしながら、このチェッカはL2の最適な設定を行うための機能も持っているため、単純に
封じてしまうと、L2はその機能を発揮できなくなってしまう。
最適な設定をどのように検出し、行うかはまだよくしらべていない。

今わかっているところは、せれろんが動作しない理由だけである。
具体的には、L2キャッシュチェッカでは、キャッシュの容量の検査などが行われている。
キャッシュが正常であるかどうか、チェックを行うためのハードウェアがCPUに内蔵されて
いるのだ。
このBIST(※4)が診断を行った結果、どこまで診断をしたか等によって、正常なキャッシュ
容量が判断できるのである。そして、テスト自体は最後までたどり着く。が、その容量がPentiumII
よりも少ない(※5)ため、すべて正常なのだが、診断テストが途中で停止したと判断し、エラ
ーとなるようだ。

とりあえず、Slot1>Socket370変換下駄を使用して、
Celeronに交換したところ。
信号遅延などの問題は発生しないらしい。
ChanmpionでもSocket370は使用可能のようだ。

次回はデュアル構成で正常に動作するかを調べたいと思う。
はたして、同じ設定ルーチンを使用して2つめのCPUの初期化が行われているかどうかは、
いまだ不明であるが。

つづく! かもしれない・・・




※1
文字列のあるアドレスをレジスタに入れて、サブルーチンを呼び出している部分がある。
その直前を見れば、そこを通るか迂回するか、二つに一つの分岐部分があるはずだ。
分岐条件はその直前にあるサブルーチンが決定している。
それこそが「封印」、L2制御だ。
今までは、L2チェッカと読んでいたが、この部分はL2のチェックおよび制御パラメータの
設定を行っている部分であった。

※2
単に懐具合の問題である。
高倍率なPentiumIIやIIIがあれば、それ用の設定をひねることもできるのだが。 最近ではL2キャッシュ不要論などまで飛び交い、いろいろな物議を醸し出しているようだ。

※3
このパラメータと、PentiumII(Dコア)及び現行のPentiumIIIのパラメータとの大きな差はない。
キャッシュ容量の違いにより、パラメータを変化させなければならないが、1個所程度である。

※4
BuildInSelfTestのこと。
ハードウェアに組み込まれた自己診断機構である。なんとなくこういうシカケはあるとかっこいい^^;。

※5
現在のCeleronには128KB搭載されている。ただし、PentiumIIと違いフルスピードである。
現行のPentiumIIでは、L2(Level2キャッシュ。セカンドキャッシュのこと)が、CPUと同じコアに
収まりきらず、CPUのすぐ近所に配置されている。(20年くらい前のスーパーコンピュータのCPUモジ
ュールも同様の構造になっていた。近年のCPUは、昔のスパコンのCPU以上の性能なのである。ただし、
並列度はスパコンが断然上なので、20年前とは言え、多分勝てない。10年くらい前のスーパーコン
ピュータでも、円周率πの計算104万桁が4秒で終了するのだから。余談であるが、並列度がすさまじい
ものといえば、人間の脳などは特にすさまじいといえよう。脳の神経細胞は、電気信号により、情報を
処理するところは、今のコンピューターと変わらないのだが、その電気信号は直接、ほかの神経細胞に
伝わるわけではなく、神経細胞がお互いに伸ばしている軸索
(シナプス)の先端で、神経情報伝達物質
によりやり取りは行われている。電気信号レベルで見た場合、シナプス同士が直接つながっているわけ
ではないのだ。そんなこんなで、信号の伝わる速度に限界がある。さらに、信号が伝わって、神経細胞
が興奮し、次の神経細胞に情報を伝えるためにはさらに時間がかかる。これらの時間から計算して、神
経細胞1つ辺りに10ms〜50ms
(ミリ秒)かかるのである。我々が文字を見て、その文字を口で発
音するのに1秒かからない。つまり、神経細胞の経由数で言えば、直列には、わずか20個から100個
程度しか情報を伝えられないのである。いかに並列で動いているかがわかると思う)
その関係で、あま
りスピードを上げられないらしい。(気合いを入れて設計したり、高級な部品を使用すればこの限りで
はないが、コストがかさんでしまう)

そのためハーフスピード、つまり半分の速度で動作している。
Celeronでは、CPUと同じダイに収めることでこの問題点をクリアしているが、ダイサイズの関係もあっ
てか、容量に制限がある。(もっともPentiumとの差別化という点が大きいと思われる。回路規模の縮小
という面もあるのだろうが、キャッシュがライトスルーで動作しているのだ。つまり、書き込み時には、
L2の恩恵はない。読込み時に効くのみなのだ)





第16回・続続RvII26の封印を解除する!

前回の予告通り、デュアル構成にして動作を確認してみた。
結論から言ってしまうと、トラブルもなく、2CPUをきちんと認識(※1)した。

今回Slot1>Socket370変換下駄には、SOLTEKの何やら覚えにくい型番の下駄を使用した。
この下駄には、PentiumIIのカセット形状タイプ(SEPP)のリテンションフックがついている。
RvIIのPentiumII用ガイドにそのままぱちりとはめられるという優れものである。
さらに、電圧変更機能(※2)、デュアル機能、B21マスク機能(※3)等、機能が豊富である。
外周に余計なコンデンサなどもついていない(※4)ので、結構いい製品だ。

Slot1>Socket370変換下駄を使用して、
Celeronをデュアル構成にしたところ。
うーんPPGA Celeronが2つ並んでいると
壮観である^^
なお、VRMユニットは2つつけなければ
ならないのでご注意
NTのタスクマネージャの状態
CPU負荷率メーターが2つになっている

現在の性能
★ ★ ★ HDBENCH Ver 2.610 ★ ★ ★
使用機種 PC-9821RvII26/N20
Processor Pentium II 432.0MHz [GenuineIntel family 6 model 6 step 5]
解像度 1024x768 65536色(16Bit)
Display GA-VDB16/PCI
Memory 162,168Kbyte
OS Windows NT 4.0 (Build: 1381) Service Pack 4

IDE CD-ROM (ATAPI)/IDE Controller
NEC PD-1 ODX654P A113
NEC PD-1 ODX654P A113

SV-98/2-B03 または SV-98/2-B03 互換
IBM DCAS-32160 S61A

ALL 浮 整 矩 円 Text Scroll DD Read Write Memory Drive
25789 39263 31527 55017 8481 56759 456 59 7361 7447 35541 A:10MB

注:このバージョンはシングルプロセッサ分のみしか計測できない。


今度はPentiumIIIだ!
続く!  ・・・のか(笑)


※1
使用したOSはNT4Serverである。
ちょうど起動ディスクを作ってあったので、使用した。
最初の再起動時から2SystemProcessor表示がでているのはServerだからだろうか。
なお、もちろん割り込みモードは拡張にしてある。

※2
別に下駄が電圧を生成するわけでなく、VID(ボルトID)ピンの状態を自由に組み合わせる
ことができるというものである。
このVIDをみて、電圧を決定するのはCPUの脇にあるVRMユニットである。
なお、今回はそのままスルーする、CPUデフォルト設定を使用した。

※3
Celeronを100MHzで動作させるために必要な機能らしい。
98ユーザーには、今のところ関係が無い。
クロックダブラーなどをベースラインにかませた下駄を開発すれば別だが。

※4
もちろん回路的にはコンデンサなどがついているにこしたことはないのだが、
あまり外周部にコンデンサがつけられていると、本体のリテンションガイドに
ガツンとぶつかり、CPUがマウントできなくなってしまう。
回避するには、リテンションガイドを基板の裏からネジでまわして解除するか、
コンデンサを抜くか、違う変換下駄を用意する必要がある。


トップへ