第50回 マルチコアが進むとx86はOS専用プロセッサ?:頭脳放談
プロセッサのマルチコア化が急速に進行中。なぜ各社ともマルチコアに走るのか。マルチコア化が進むとx86プロセッサはどうなるのだろうか?
今回はマルチコア・マイクロプロセッサ(あるいはマルチプロセッサ・コア・プロセッサ)を取り上げてみたい。最近、ぼちぼち各社のリリースに登場してくるので、ご存じの方も多いと思うのだが、1つのチップに複数個のプロセッサ・コアを集積したシングル・チップのマルチプロセッサ・システムである。デュアルコアといういい方もあるようだが、単に一番プリミティブな形がコア2個搭載だからそう呼んでみたというのにすぎない。多分、奇数は作りにくいからトリプルといういい方は定着せず、クアッドコアくらいまではいうかもしれないが、それ以上になるとイチイチ特別ないい方するのも面倒なので××ウェイのマルチコアで済ませることになるだろう。
「第39回 AMD Opteronのダイを眺めてみれば」で、AMD Opteronのダイの写真を見て、「複数コアのオンチップ集積を早くやれ」という話を以前書いたが、ようやくここに来て各社のロードマップに複数コア集積したものが出揃ってきた。
Intelのマルチコア採用の発表に続いて、AMDも2004年6月15日に「デュアルコア製品を2005年半ばに、またハイエンド・クライアントPC向けデュアルコア・ソリューションを2005年下半期に投入する」と発表した。簡単にできそうだからすぐやればと書いたのだが、このようにAMDからマルチコアのプロセッサが出荷されるのは、2005年中ごろと少し遅い。
ご本家のIntelの方が、マルチコアに「賭けている」ようだ。Itanium系はすでにマルチコア製品(開発コード名:Montecito)のウエハをプレス・セミナーで公開したことから、開発は進んでいると見て間違いない。x86系は予定されていたシングルコアの開発をキャンセルして、急にマルチコア化を進めることにしたようだ。裏では大分ドタバタがあった感じであるが、何せリソースには事欠かない会社であるから、ドタバタでもそれほど時間を置かずに出してくるだろう。UltraSPARC IVやPOWER5、PA-8800(PA-RISC)などのハイエンドのRISC系プロセッサでは、すでに製品化されている。比較的ローエンド主体で、いままでマルチプロセッサには無縁に見えていた組み込み用途向けのARMも、いよいよという感じでマルチコアの発表を行った(ARMのMPCoreに関するニュースリリース「ARM Announces First Integrated Multiprocessor Core」)。ただしロードマップ上は出揃ったといっても、商品が出荷されるのはまだ少し先というのが現状である。
なんでマルチコアなの?
何でマルチコアかといえば、その理由は大きく2つに分けられるように思う。1つは積極的な理由で、もう1つは多少消極的な理由である。
積極的な理由は、マルチコアがサーバなどにとって非常に自然で効率的なためである。サーバはいろいろな階層の各種ネットワークにおいて、それぞれ「根元」に置かれ、クライアントとの間に「トランザクション」処理を行うというのが今日的な使い方である。結局、サーバが行っているのは保持するデータベースへの参照・更新とそれに付随するクライアントとの通信処理が主である。その際、ひとつひとつの「トランザクション」はそれほど重い処理ではなく、かつ相互に関連性はほとんどない。しかし、次々とやってくる非常に多数の「トランザクション」を時間的反応が遅れないように、さばき続ける必要がある。このような要求に答えるのに、シングルプロセッサよりマルチプロセッサ・システムの方が非常に向いているのだ。
もちろん、マルチスレッド技術も有効である。しかし、マルチスレッドとマルチコアは矛盾する技術でなく、マルチスレッドとマルチコアは階層の位置が違うだけ、と理解できるだろう。1個のコアは、そのスーパスカラー・データパスを最大限使い切るためマルチスレッド化する。このようなコアを複数個同一チップに集積しマルチコア化することで、巨大化するオンチップ階層記憶キャッシュ・システムのうち下位のレイヤ(例えば3次キャッシュ)が共有化され、最大限使い切られる。さらにそうしたマルチコア・プロセッサ・チップを1個もしくは複数個、「ブレード」に搭載することによって、独立したリソースを持ち一応完結したコンピュータ・システムとなる。加えて、そのブレードを基幹となるネットワークに接続したラック内に数十枚も格納することで、ようやく「サーバ」が出来上がるというのが、シナリオだからである。
昔のバス共有型の単純なマルチプロセッサ・システムでは、2CPUならば、効率は1.5倍、さらにCPUを追加すると効率はアップしていくが、いくら追加しても2倍は超えず、4CPUもしくは8CPUくらいで、いくらCPUの数を増やしても性能は向上しなくなる、というのが定番であった。しかし、ネットワークを基本とした「クラスタ」型とでもいうべきサーバと、その利用技術の開発により、ブレードを追加するだけスループットが上げられるようになってきている。ここに来て、これまでのスケールアップ型から、スケールアウト型の性能向上技術が大幅に進歩している。
多分、その目標は、全世界からの無数の「トランザクション」を非常に短いレスポンスでいまもさばき続けているGoogleの1万数千台ものプロセッサを使った「サーバ」システムをごく小さな床面積に納めることだろう。取りあえずマルチスレッドかつマルチコア・プロセッサをブレードに納めていけば、そのサブセット程度のものをラックに納めることはできそうだ。そうすると企業の基幹系のシステムは大分コンパクトになるか、レスポンスがよくなるだろう。まぁ、負荷もうなぎ上りになるはずなので、単に負荷が低減されるという程度かもしれないが。
マルチコアに向かう消極的な理由
もう一方の多少消極的な理由は、Intelがまず直面している問題かもしれない。ゲート長が短くなるにつれて、とんでもないレベルに達したリーク電流、あまりに速くなりすぎたプロセッサ・クロックとまたもやそのための消費電流。いままでのようなやり方で性能向上させようにも、物理的(熱的)に非常に困難な状況になってきているのだ。マルチプロセッサ化は、1個1個のプロセッサを複雑にしたり、さらにクロックを上げたりしなくても、物理的限界を超えることのないまま、性能を向上していける可能性がある。そのためのやむを得ないマルチコアという選択である。
こちらは、物理的限界を避けるため、ということで「多少消極的」と表現したが、実はこちらのマルチコア化をより積極的にとらえ直すこともできる。先ほどのサーバ向けの議論では、暗黙のうちにマルチプロセッサといって「シンメトリカルな」システムを念頭に置いていた。階層が多重になったとしても、サーバ的な動きには対称で、どのコアも、あるいはどのスレッドも同等のシステムが望ましい(メンテナンスや負荷のバランス制御のために「非対称な」ノードが存在するとしても、処理の本質的には「対称」と呼んでよいだろう)。
しかし、クライアント側、あるいはスタンドアロン的な使用、モバイルへの応用などを考えると、そういった「シンメトリカルな」方法で何十ものプロセッサを構成するのは得策でないように思われる。まったく否定するものでもないが、シンメトリカルなマルチの部分は、せいぜい「デュアル」か「クアッド」で十分だ。しかし、「ヘテロジニアス(混在的)」な部分を併用してくるなら話は変わってくる。用途に応じて複数種類のコアを使い分けていくことで、性能と消費電力のバランスを取り、携帯電話のような非常に小さな枠の中で今日のPCが持つようなすべての機能を超えるものを実装しよう、という流れである。汎用プロセッサだけでなく、DSPコアであったり、リコンフィギャラブル・コアであったり、複数種を混在使用していくのだ。この中で汎用プロセッサ部分がシンメトリカルなマルチでもよい。すでにモバイル応用を中心に、このような「ヘテロジニアスなマルチ」の流れは進行中である。クライアント側での「マルチコア」は、単純シンメトリカルではなく、このようなヘテロが本流になるのではないかと予想する。
しかし、National SemiconductorからGeode(組み込み向けx86プロセッサ)を買収したことで、組み込み用途にもx86の採用を進めているAMDには悪いが、「x86は要らない」という方向に向かうのではないだろうか。何百個ものコアが動くサーバなど、ほとんどのコアは単純な仕事が繰り返せればよい。クライアント側のヘテロジニアスなマルチでも、各コアはそれぞれ特有の仕事ができればよい。どちらも、何もx86のような複雑なものを持ち出さなくても、より効率的にできそうである。まぁ、集積度が向上しているので、x86くらいの複雑度などそれほどインパクトがないではないか、と反論されるかもしれない。だが、もっと簡単なコアならx86が1個のところに、2個や4個のコアが入るだろう。もしかすると、マルチコア・マルチプロセッサ化が進むと、x86は互換性維持のための「OS専用プロセッサ」か「メンテナンス・プロセッサ」になってしまうかもしれない。
筆者紹介
Massa POP Izumida
日本では数少ないx86プロセッサのアーキテクト。某米国半導体メーカーで8bitと16bitの、日本のベンチャー企業でx86互換プロセッサの設計に従事する。その後、出版社の半導体事業部を経て、現在は某半導体メーカーでRISCプロセッサを中心とした開発を行っている。
「頭脳放談」
Copyright© Digital Advantage Corp. All Rights Reserved.