『Dual CPUの魅力』

はじめに

最近、Dual CPU という言葉をよく聴くようになりました。おそらく、CPU の価格が低下したのと Windows 2000/XP Professionalが標準で Dual CPU をサポートした点、そしてAthlonでも Dual CPU に対応したなどの要因が重なっているのでしょう。 かくいう私もメインマシンはDual CPU マシンです。さて、Dual CPU とはいったいどのようなものなのでしょうか?

Dual CPUとは?

まぁ、単純に言えば夏休みの宿題も友達と一緒にすれば早く終わるねっていう話と同じです。二つの CPU で処理すれば二倍速いよっていうことになります。しかし、お互いに振り分けるのに時間がかかるので二倍早くはなりません。

計算ドリルのように二人で分散できる課題は二人でやると効率がいいですが、文章題のような大問は二人でやっても速くなりません。ただし、文章題が二問出されていたら二人で分けてやれるので速くなります。つまり、デュアルに対応したアプリケーションは速くなりますが、そうでないアプリケーションは速くなりません。ただし、そうでないアプリケーションでも複数同時に処理する場合はCPUが一つの時よりも速くなります。

スペック

一般的なパソコンでは、一台に CPU は一つ搭載されているでしょう。これが、 Uni Processor (Single Processor)という状態で、これに対して複数のCPU が搭載されている状態を Multi Processor と呼びます。

Multi Processor には、左右の CPU に同等に振り分けて扱う場合と、例えば CPU 0 には OS の処理を、 CPU 1 にはアプリケーションの処理を…というように別々の処理をさせる場合があります。前者をSMP=SymmetricMulti Processing(対照型マルチプロセッシング)、後者をASMP=Asymmetric Multi Processing(非対称型マルチプロセッシング)と呼びます。(Asymmetricで非対称という一つの単語。だから本来なら AMP になるハズなのだが) IntelもAMDもSMPの方式が使われています。 Multi Processorの中でも特に二つの場合を Dual Processor といいます。また、Multi Procesor のパソコンを MPS=Multi ProcessingSystem と呼んだりします。

Multi Processor の場合メモリやHDD(=リソース)は一般に同時に複数のプロセッサーがアクセスすることはできないので、この複数のプロセッサーにリソースを上手に振り分けていく機構が必要です。Intel では APIC=Advanced Programmable Interrupt Controller と呼ばれる機構を使って行います。この APIC はマザーボード上と CPU にAPIC機構を搭載することで複数の CPU が使えるようにします。この APCI での振り分けという処理が入ることや、リソースの待ち時間などがあるので純粋にデュアルシステムだから二倍の処理速度とはならないのです。

※APICについて詳しくは『Column 09』を参照してください。

Intel の Pentium 系では一部を除いてCPU側の APIC は予め備わっていますが、Celeron は無効になっています。ところが、CovingtonコアやMendocinoコアなどは小改造で有効にできるということでDualCeleron ブーム、通称『Dualeron』ブームが巻き起こったことは記憶に新しい(もう過去のこと?)ですね。CPUに関しては AMD のAthlon も同様です。

Intel のチップセットはローエンド向けのを除き4xx系は 82093AA という追加チップ(i430NX は、専用サウスブリッジを使えば追加チップ無しでよい)を加えるだけでAPIC 機構を有することができ、8xx系ともなるとチップにその機能が内臓され追加チップも不要となりました。

これに対して、AMD の場合は Multi Processor 用の専用チップセットの 760MP または 760MPX を用意する必要があります。

※760MP/760MPXチップセットについて詳しくは『760MP/760MPX Chipset』を参照してください。

これは、両者の Multi Processor の構造が少し異なるためで、Intel のデュアルシステムは一つのCPU-Northbridgeバスに二つの CPU を搭載するので Uni Processor でも Multi Processor でも同じチップセットでも対応可能だったのに対して、AMDは 一つの CPU-Northbride バスに 一つの CPU を、つまりデュアルならば二本用意するという方法をとったため専用のチップセットが必要となったのです。

当然、性能面では一つのバスを二つの CPU が取り合う Intel の方式よりも AMD の方式の方がずっと優れていますが、ノースブリッジが煩雑になるのとバスが二本必要なので配線が困難になるということでコストがかさむことになります。(当然デュアル以上の構成はこの方法で行うとさらに煩雑になるので、AMDでは複数のデュアルシステムをつなげてデュアルシステム以上の構成を実現する方法を取るようです。)

逆に、Intel のやり方でいけば上記のようにチップを追加するなどほんのすこしの変更でデュアル構成が可能で安価に作ることができるのです。(AMDは Intel よりもずっと後発で Dual に対応したので Intel のデュアルシステムの欠点を克服した仕組みとなっている。)

特徴

Intel の Pentium 世代以降の主なマルチプロセッシング対応チップセット(Xeonを除く)

チップ名 対応プロセッサ(Dual動作) 備考
430NX Pentium Pentium用の最初のデュアル対応チップセット。
450GX Pentium PRO 4 プロセッサーまで対応。
450KX Pentium PRO
430HX Pentium
440FX Pentium PRO PentiumII でも使われた。
430TX Pentium チップセット自体ではマルチプロセッサーはサポートされないハズだが製品は存在しました。本来デュアルを正式にサポートする430HXなどと同じような設計となっているようで、82093AAを搭載することで対応することが出来たようです。
440LX Pentium II
440BX Pentium II PentiumIII でも使われた。
440GX Pentium II Xeon PentiumII でも使われた。
450NX Pentium II Xeon 4プロセッサーまで対応。
820 Pentium III
820E Pentium III
840 Pentium III Xeon Pentium III にも使われた。
815EP Pentium III Xeon チップセット自体ではマルチプロセッサーはサポートされないハズだが製品は存在しました。本来820/840系のAPICコントローラはサウスブリッジに内臓されているので、同じサウスブリッジを搭載する815EPでも改造することで対応することは出来たようです。ただし、430TXの時よりも大変だったみたいですが。

Dual CPU の利点

Dual CPU の利点は主に以下の点でしょう。

  1. 最速の CPU を買うよりも、普及帯の CPU でデュアルにした方が性能的にも価格的にも有利になることがある。
  2. 対応したアプリケーションでは CPU が一つの時よりも速い。
  3. 対応しないアプリケーションでも複数のプログラムを同時に実行したら(またはバックグラウンドで処理をしながらの動作が)有利になる。

1. は Multi Processor の発案原理で、『高価な高速プロセッサーを一つ使うよりも複数の安価なプロセッサーを使った方がコストと性能の比が有利になる』というものです。

2. は当然ながら有利になりますが、ほとんどの場合は二倍にはならずアプリケーションにもよりますが 1.2倍から1.5倍程度ようですが、中には二倍以上高速になる場合もあるようです。(不思議だけど。)

3. は実はあまり知られていないようですが、もっとも注目すべき点だと思われます。複数のアプリケーションを同時に実行した時、つまり負荷がかかった時にCPU が一つの時に比べて 速度の低下の割合が低いのです。 この点が買われて、サーバーなど負荷がかかっても処理速度が落ちては困るシステムへの採用が多いのです。実際に一般ユーザーでもこの点は体感でき、同時に複数のプログラムを実行していてもバックグラウンドで行っているプログラムの速度は遅くなっているのですが、CPU が一つの時のようにフォアグラウンドのプログラムの動作がぎこちなくなったり時々応答が無くなったりするということがないのでストレス無く扱えるのです。『一度Dual CPU に使ったら Single CPU には戻れない』と言われる理由はこのあたりにあるのでしょう。(ちなみに、私は友人のパソコンでいつものつもりでプログラムを立ち上げまくって何度もハングアップさせて友人に怒られました…)

ウラ Dual CPU の利点

Dual CPU は上の実質的な利点のほかにも効果があるのです。(意外にこっちの方が使えたり…。)

  1. 気分の問題。
  2. 人が尊敬のまなざしで見てくれる=自慢ができる。
  3. 古くなっても直接比べられない。

1. について、人間の感覚なんてものは気分でも大きく左右されます。パソコンの速さのバロメーター CPU。それが二つもあるなんていったら、そりゃもういかにも速そうじゃありませんか!ね?速いような気がするでしょう。本人が満足すればいいです。

2. に関して、現在 CPU の価格が信じられないほど下落していて、たいした出費をしないで Dual CPU のパソコンが組めます。 でも「俺、DualCPU なんだぜ。」と言ったらほとんどの人が(パソコンにある程度精通している人なら)尊敬してうらやましがってくれます。たとえ古くても問題ありません。おそらくPentium の Dual CPU パソコンでもみんな尊敬してくれるでしょう。 Dual…それだけでみんな尊敬してくれるのです。

3. 昔こういうことがありました。なけなしのお金をはたいて PentiumII 233MHz を買いました。半年後、その半分の価格で友人がもっと高速なCPU を買って自慢してきました。くやしかったです、あの時のことは忘れません。 でも、Dual CPU なら Dual CPU 同士でなければ比べられません。たとえ、PentiumII233MHz ×2 のパソコンと Pentium4 3.06GHz のパソコンを比べても、『デュアルにはシングルにはない快適さがあるのさ』といえばそれまでです。もう、あの時のような悔しい思いは絶対にしません。ええ、しませんとも。(笑)

Dual CPU の注意点

まず、対応するチップセットが必要ですがチップセットが対応していてもマザーボードがサポートしていなければ当然ながら動きません。 CPU スロットまたはソケットが二つあればいいので見ればわかるでしょう。

CPU に関して、Dual CPU に使われる二つのは原則全く同じものである必要があります。これは Intel と AMD 共に SMP を採用している点から、対称である必要があるからです。異なる周波数やCPUでも動作したという報告もあるようですが、そんなものは『落としても割れなかった』というぐらいの報告と同じで、たまたま割れなくてよかったねという程度のものと考えてください。

安心して使える環境を得る為には、『同じ周波数』で『同じブランド 』の『同じコア』を用意するのが前提です。二つのCPUは近ければ近いほどいいので、生産国やステッピング、製造年月もあわせるとより好ましいと思われます。

さて、CPUには最初から Dual に対応するものとしないものがあり同じブランド名でも対応するものとしないものがあります。詳しくはデーターシートを見てもらうことにして一般ユーザーが扱うCPUの対応表は大まかには以下の通りです。(間違っている可能性もあるので事前に下調べは必ず行ってください。また、本来デュアル対象外になっているものは自己責任で動かすことになります。)

CPU コア 備考
Pentium P54C 本来は普通にDual動作するハズだったが、初期のものはバグがあって二個目のCPUには対応したP54CMを使わないとデュアルにならない。
Pentium P54CS
MMX Pentium P55C CPU 自体は Dual 動作可能なのだが、Intel 純正チップセットでMMX Pentium をネイティブでサポートするi430TX が正式にはサポートしないので扱いは微妙。ただし、実際には製品が存在したから動くと思われる。
Pentium PRO P6
Pentium II Klamath/Deschutes
Celeron Covington ハンダ片手の小改造で可能。
Celeron Mendocino ハンダ片手の小改造か、Socket370仕様ならば対応ゲタで可能。
Pentium III Katmai
Pentium III Coppermine Slot1のものは大体対応しているが一部例外あり。Socket370のもの(特に初期)は非対応が多い。
Pentium III-S Tualatin Tualatinコアでただの Pentium III は非対応。
CPU コア 備考
Ahtlon Thunderbird Dual動作をサポートしないハズだが実際には動くようだ。
Ahtlon Palomino Dual動作をサポートする Athlon MP 以外も実際には動くようだ。
Ahtlon MP Thoroughbred Dual動作をサポートする Athlon MP 以外はハンダ片手の小改造が必要らしい。
Duron Spitfire Duron 自体が Dual を正式にサポートしないのだが動作するらしい。

※基本的に、私は Intel 派なので AMD のCPUについてはメジャーなものだけかいつまんだ形となっていることには目をつぶってください。

あとのパーツは、ほとんど一般の Single Processor の場合と同じなので問題ありません。 ただし、一部にはメモリに Registeredタイプを要求する場合や特殊な電源を利用する場合があります。

OSは、Windows を使うならば Windows NT 系が必須です。Windows3.1/95/98(SE)/ME の場合、CPU は片方しか使われずにもう片方は猛烈な勢いでアイドリング命令が実行されてしまいます。ようするに、無駄に電気を食う上に CPU にも悪そうなのです。(しばらく使って CPU に触れてみると使われてい方ハズのセカンド CPU が熱くなっている)Windows NT 系でも Windows XP Home Edition はダメです。これは Windows XP Professionalとの差別化の為に意図的にデュアル機能が省かれている為です。

一般的なユーザーが使う OS としては例えば Windows NT 4.0 と 2000/XP Professional がサポートします。また、この他にも多くのUNIX 系のOSが Dual CPU をサポートします。

アプリケーションに関しては単体では対応していなくても、上記の利点で複数立ち上げることによってデュアルの性能は引き出すことができます。

Dual CPU はこれからが旬

Intel が Pentium4 に Hyper-Threading を採用したことなどから今後単体でもデュアルに対応したアプリケーションが続々と登場することが予想されます。しかも、OS はいままで Dual CPU をサポートしない Windows 3.1/95/98(SE)/ME が主流でしたが、ついに主流のOSがDual CPU をサポートする Windows XP (サポートするのは Professional のみ) になり、 OS の敷居もなくなりました。

これからは、Dual CPU でトクをすることはあっても、損することはない時代になるのです。Dual CPU はこれからが旬なのです!