さて、PentiumIIIのSocket370化のうわさを耳にして、「おや?」と思いました。 PentiumIIIがSlotからSocket370にするのは、 価格のせいだとIntelは主張しているけれども、 AMDがSlotを採用している以上、理由にはなりません。 とすると考えられるのはSlot化による性能の低下。 Xeonによる4CPU化はえらく苦労したそうです。 そりゃSlotなんていうインピーダンスの特異点があればそこで信号が反射するのはあたりまえ。Socketにすれば4CPUなんて簡単に出来るでしょう。
…ということは、Intelは、 Socket370にあらかじめ4CPUのピンアサインをしているのではないでしょうか? しかもCeleronにDual対応を残してくれたIntelのすばらしい技術者のことだから、 Celeronなのに4CPU対応しているのではないでしょうか? P6 Hardware manual によると、 P6のバスつまりFSBにはもともと4CPUで定義されているんだし、 可能性は結構大きいと睨みました。
ここで注目すべきなのは、チップセットにはBR0〜BR3が接続されていないことです。
つまり、チップセットは、現在、どのCPUがバスを使っているのかは気にしていません。
BREQ0が接続されていますが、これは、リセット時にBREQ0をアサートすることにより、
それぞれのCPUが自分自身のCPU番号 (Agent ID) を決定するためのものであり、
動作中は無視されます。
ここで、CeleronチップにはBR2、BR3両信号があって4CPU対応だとしたらどうでしょう? そうであったとしても、Dual動作には何の支障もありません。 では実際にCeleronで、BR2、BR3を探って見ます。 右図で、CPU0のBR1信号、 現状ではAN15に接続されていますが、 これをBR2やBR3に接続しても、動作に支障ないはずです。
で、あのあたりのRsvdピンに適当に接続して調べたら、
AL13、及び、AK16に接続しても、
問題なくDualで動作しました。
このどちらかがBR2で、どちらかがBR3ということになります。
ありがとうIntelの技術者の人!
いやー、わかってらっしゃる。
(決してIntelの経営者の人とはいわない)
370ピン接続 | |
BR0 | AN29 |
BR1 | AN15 |
BR2 または BR3 | AL13 または AK16 |
では、CPU1の方のSlot1のBR1線を、AL13やAK16に接続した場合も動作するのか、
と調べてみると、動作しません。
CPUはリセット時にBR0〜BR3のどの線がアサートされているかによって
自分自身のCPU番号(Agent ID)を決定していますが、
このAgent IDが2や3になるためだと思われます。
Agent IDが2や3でもCPUとしては動作するはずですが、
このAgent IDは、CPUそれぞれが内蔵するAPIC (外付けAPICとは別物です) の
APIC IDとしても使われ、
BIOSのAPIC初期化コードがこのAPIC IDに対応しないためだと思われます。
このあたりの動作については System Programming Guide でBR0を検索してみてください。
上記のBR0〜BR3の説明にはウソがあります。 P6 Hardware Manualを見ればわかりますが、リセット時にBR1がアサートされるCPUは、 CPU3なのです。つまり、上記の説明はすべてBR1とBR3がさかさまであり、 CeleronのAN15ピンは実はBR3です。 でも話がややこしくなるので、上記のように説明しておきます。ちなみに、チップセットのマニュアルを見ていると、 CeleronでRsvdとなっているピンの役割がなんとなく見えてきます。 A29ピンあたりがDEP[7:0]だとか、AC1ピンあたりがA[35:32]だとか…
現時点での問題点は困難な順に以下のようになります。
これから考えられることは、 以下の問題のため初期の起動まで行かない、ということです。
あとはBXの隠し機能か… ←まだ懲りてないらしい(^^;
(99-7-12)
GXの隠し機能もだめでした。やはり、AgentID=2や3では起動すらしません。 結局、GXやBXでは4CPU動作は不可能です。
チップセット strap (動作決定ピン) 設定表
白地がチェックした部分、/の前がデフォルト値
( ) 内はBXの量産版でマニュアルから削除
端子名 | 440BX | 440GX |
---|---|---|
TESTIN | 1/0=テストモード | 1/0=テストモード |
WSC | (1=Dual/0=Single CPU) | 効果なし |
MAB14 | 存在せず | 効果なし |
MAB13 | (0/1=AGP FREQ. Select) | - |
MAB12 | 1=100MHz/0=66MHz | 1=100MHz/0=Reserved |
MAB11 | 1/0=Queue Depth1 | BXに同じ |
MAB10 | 0/1=QuickStart | - |
MAB9 | 0/1=AGP Disable | BXに同じ |
MAB8 | (0/1=Power Management) | - |
MAB7 | 0/1=TX compatible mem | - |
MAB6 | 0/1=Low power GTL+ | - |
450NXでのQuadronは可能なはず、という非公式な話があるので、 起動すらしない原因はCPU側ではなくチップセット側にあるのでしょう。 つまり、AgentID=2でCPUが起動し、 チップセットに対して最初のメモリリード指令をFSBを通して発行しますが、 この指令2サイクル目にA[21:20]=DID[5:4]に出力されたAgentID=2を チップセットが見て、反応しないなりエラーとするなりなっていると思われます。
450NXは4CPU対応ですが、AGP対応していないので、
Carmelが出てくるまで待ち、ですね。
でもそのころにはPPGA-Pen3が安くなっている気が…
(99-9-4)
370 ピン | Agent ID | Intel 端子名 | |
---|---|---|---|
Pentium2 | Xeon | ||
AN29 | ID 0 | BR0# | BR0# |
AN15 | ID 1 | BR1# | BR3# |
AL13 | ID 2 | - | BR2# |
AK16 | ID 3 | - | BR1# |
これでApollo Pro系のDual マザーボードにTwinMagicでQuadronの可能性がかなり出てきました。
133AのAはAPICのA、と唱えながら、例のFreewayのApollo Pro 133AのDualマザー発売までいい夢みましょう(^^;
だけどVIAのチップってマニュアル公開されてないので、BIOS書き換えがかなり無理っぽいなあ。(99-9-17)
あと、Queue Depthが1になってます、Apollo Pro。これがVIAのチップセットが遅いと言われる所以ですね。このマザー固有の問題なのか、Pro Plus/133/133Aで改善されているのか… 特にマルチプロセッサの場合、この項目は実際の性能にかなり影響すると思われます。
(Wintune97 R2048=167 W2048=145)