yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> デュアルと4プロセッサ以上って、どんな信号線が違うんでしょう
> か。2個なら相手をとめちゃえばいいような気もしますが、下手を
> すればデッドロックですし。結局、arbiter が外付でいるような気
> もします。

IntelのサイトにあるDatasheetを見ると,BR0#〜BR3# (Bus Request)という4
本のピンがあって,プロセッサがバスの使用権を要求する時にはBR0#をアサー
トします.バス上の信号線BREQ0#〜BREQ3#というのがあって,4CPU時の結線は,
    バス   CPU0 CPU1 CPU2 CPU3
    BREQ0# BR0# BR3# BR2# BR1#
    BREQ1# BR1# BR0# BR3# BR2#
    BREQ2# BR2# BR1# BR0# BR3#
    BREQ3# BR3# BR2# BR1# BR0#
のようになっています.リセット時にはBREQ0#がアサートされて,各CPUは自
分の番号が分かります.その後,BR0#は出力,それ以外は入力ピンとして働き
ます.つまり,各CPUの中にアービタが入ってます(優先順位は,直前のバスオー
ナの次の番号が最も高い).その他,外部からのバス要求(常に最高優先度)を
入力するBPRI#ピンがあります.

DP版では,DPではBR2#とBR3#は使用できないそうです.なので,BR0#とBR1#を
クロスしてつなぐだけになります.

外部の回路で頑張れば,DP版でも2より多いプロセッサ数でマルチプロセッシ
ングができそうですが…この辺は素人なので良く分かりません.また,MP版の
資料には「4-way, 8-way, あるいはそれ以上のプロセッサ数」と書いてありま
すが,Xeon MPで4よりプロセッサ数が多いSMPマシンって存在するんでしょう
か?

> インテルの石を使った SMP (Symmetric Multiprocessor) は、共有
> バスなりスイッチなりの作りは、なにか標準的なものがあるんでしょ
> うか。

ほとんど全てIntelのチップセット(ServerWorks)を使った共有バスシステムで
しょう.Pentium Proとかの頃は,Compaqあたりが独自のチップセットのSMPサー
バを出していたと思いますが.

> Sun の SMP は、スケーラビリティがいいんですよね。10年前は、
> 共有バスがどうのという話もあったのですが、クロスバ・スイッチ
> が出てきて、うまく書くと台数効果はすぐに出てきます。まあ、1
> つ1つの CPU が遅いんで、しょうがないんだけれど。

SunのCPUは,ほとんど常に他社より劣ってますね.

現在のSun Fire 15kは最大106プロセッサですけど,SMPと言っていいのかな…
4CPU+メモリのボードが18枚クロスバ・スイッチでつながります.ボード内の
ローカルバスの方が速いです.あと,2CPUのPCIカードが17枚差せます.

HPのSuperdomeは4-way SMP4個(計16-way)を1つのクロスバ・スイッチにつなぎ,
このクロスバ・スイッチ4つを完全結合しています.

HP AlphaServer GS1280はCPUごとにローカルメモリと4つのCPU間接続チャネル
があり,32CPUを2次元トーラスでつないでいます.

IBMのp690は,1チップに2CPU入ったチップを4つ(計8-way)載せたモジュールご
とに巨大な(128MB)L3キャッシュがついています.このモジュールを4つとメイ
ンメモリを,バスで接続します.

遠い近いでレーテンシが変わっても(NUMAでも)SMPって言うんですかね.
まあ,NUMAとUMAを合わせてSMPなのかな.

                                前田敦司