新城@筑波大学情報です。こんにちは。

In article <m3u180xfa9.fsf@maedapc.cc.tsukuba.ac.jp>
        MAEDA Atusi <maeda@cc.tsukuba.ac.jp> writes:
> 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#を
> クロスしてつなぐだけになります.

なるほど。Xeon なら、4頭の SMP までは、簡単に組めるようになっ
ているわけですね。

前に、8頭の Pentium III (550MHz)の SMP を使ったとがあるので
すが、外付で何かしていたんでしょうね。ロックかけると急激に性
能が低下しました。OSは、Linux 2.2.16 (RedHat 6.2)。

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

自分で SMP (4頭以上) を組み立てる、なんてことはできるんでしょ
うか。8 個くらいは欲しいんだけれど。Dual までは、よくマザー
ボードも見るのですが、4 というのは見たことがありません。

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

UMA (Uniform Memory Access), NUMA (Non-Uniform Memory
Access)、Norma (No Remote Memory Access)というマルチプロセッ
サの分類は、1988 年くらいの Mach の論文でよく出てきたもので
す。それが最初かどうかはわからないけれど。OSを作る時には、
そういう分類の仕方は便利です。UMA のことを最近は、SMP
(Symmetric Multiprocessor) と言っているので、NUMA をSMP とは
言わないでしょう。

Symmetric と Uniform が違うと言われても困るし。

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

昔の NUMA は、ローカルとリモートで 100 倍くらい速度が違いま
した。それで、ソフトウェアの作り方を変えないと全然使えません
でした。Sun の場合、今までの UMA 用のソフトエェアでもちゃん
と使えて性能が出るなら、UMA と言ってもいいと思います。UMA と
いっても、もともとキャッシュはアリで、それの速度の差は無視し
ているのですから。

NUMA って、うまいソフトウェアを作るのが難しいんですよね。
Linda の tuple space を置くといいという話は聞いたことがある
んのですけれど、どうなんでしょう。

UMA/SMP なら、マルチスレッドと mutex という技術があります。
NORMA なら、もう通信するしかないとあきらめがつきます。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\