後藤弘茂のWeekly海外ニュース

AMDが“Fusion”プロセッサとオクタコアに進む理由




●サーバーとクライアントへと分化が進むAMD CPU

 2008~2010年の45nmプロセス世代で、AMDは大きなCPUアーキテクチャの改革を実現する。AMDは現在、2~3年を見通した大がかりな技術革新を推進している。見えてきたAMDのCPU戦略は、非常に大胆かつ根本的な改革を含んでいる。その全体像を整理してみよう。

 AMDはATI Technologiesを買収したことで、実績のあるGPUコアとその開発陣を手に入れた。その結果、CPUにGPUコアを統合した「Fusion(フュージョン)」プロセッサを2009年に投入する計画で進んでいる。

 Fusionプロセッサの目的は、CPUにグラフィックス機能を加えるだけでなく、GPUコアをより汎用的な「ストリームコンピューティング(Stream Computing)」へと適用し、非グラフィックスアプリケーションも高速化することにある。GPUコアというより、ストリームプロセッサコア的な位置付けだ。また、このことは「Cell Broadband Engine(Cell B.E.)」などと基本的には同じ路線の「ヘテロジニアス(Heterogeneous:異種混合)マルチコア」へとAMDが向かっていることを意味している。これは、CPU業界の大きな潮流に乗った動きだ。

 Fusionプロセッサは、AMDのクライアント向け次世代CPUの核だ。しかし、これがAMDのCPU戦略の全てではない。サーバー向けCPUでは、2007年中盤のクアッドコアCPU「Barcelona(バルセロナ)」の先に、オクタコアCPUを投入する。また、「Torrenza(トレンザ)」イニシアチブにより、特定用途向けのコプロセッサをシステムレベルで統合して行く。

AMDの今後3年のCPU開発ビジョン

 こうして見ると、AMDのCPUの方向性は、今後、大きく2つの方向性に分かれる。(1)汎用コンピューティング性能を追求した上で特定用途向けのプロセッシング性能を付加して行くサーバー向けCPUと、(2)汎用コンピューティング性能とストリームプロセッシング性能のバランスを取るクライアント向けCPUの2つの方向だ。これまで決定的な差がなかったサーバー向けとクライアント向けの分化が進む。

方向が分かれて行くAMD CPU
PDF版はこちら

 こうしたCPU製品の派生を容易にするために、AMDはモジュラー設計アプローチを取り入れた。CPUを機能ブロック単位で設計し、各ブロックのインターフェイスを定義、ブロックを容易に組み合わせ可能にすることで、低コストかつ短期間に派生CPUの開発を可能にする。Barcelona世代から導入されるモジュラー設計によって、サーバー向けの8コアからクライアント向けのFusionまで、複数のCPU製品の派生を可能にする。

AMD CPUのモジュラー設計

●サーバーは汎用コアが8個、クライアントは汎用コアとGPUコア

 市場毎に分化するAMD CPUと、それを支えるモジュラー設計。AMDのPhil Hester(フィル・へスター)氏(Senior Vice President & Chief Technology Officer(CTO))は、次のように説明する。

 「我々が今後のCPU開発で非常に重要だと考えたのは、モジュラー設計を可能にすることだった。マイクロプロセッサを、主要な機能ブロックに分解できれば、それらの機能ブロックを容易に再アレンジすることができるようになる。マイクロプロセッサのシステムオンチップ設計アプローチと言い換えてもいい。

 この方法なら、基本的なビルディングブロックを再利用して、クライアントとサーバーのそれぞれの市場に、異なるコンビネーション製品を提供することが可能になる。例えば、クライアントスペースでは、おそらく、正しい答えは2~4個の伝統的CPUコア群と、GPUコア群の組み合わせだろう。一方、サーバースペースでは正しい答えは、おそらく、8個の伝統的CPUコア群で、GPUコアは持たず、よりよいキャッシュ構造を備える構成になるだろう」

 つまり、45nmプロセス世代頃になると、AMDのサーバーCPUは8個の汎用CPUコアを搭載した、より広いマルチコア構成に進化する。その一方で、クライアントCPUは、おそらくモバイルやバリューCPUは2個の汎用CPUコアにプラスGPUコア、パフォーマンスデスクトップCPUは4個の汎用CPUコアプラスGPUコアの構成になると推測される。ここで想定されるだけで、3種類のコンフィギュレーションが登場する可能性があるわけだ。

 サーバーに多数の汎用CPUコア、クライアントに汎用CPUコアとストリームプロセッサコアという組み合わせは、ソフトウェア環境を考えれば合理的な戦略だ。サーバーでは、ソフトウェア側に多数のスレッドが並列しているため、汎用CPUコアを増やせば、スレッドレベルの並列性「TLP(Thread-Level Parallelism)」によってパフォーマンスを引き上げられる。実際、Sun MicrosystemsのNiagaraファミリのように、8コアのサーバーCPUはすでに登場し、実績を上げている。

 それに対して、クライアントCPUでは2スレッド以上のTLPでパフォーマンスを伸ばせる領域は限られている。おそらく、今後もクライアントは、汎用CPUコアでTLPを向上させなければならないソフトウェア環境にはなって行かないと見られている。言い換えれば、クライアントCPUの、マルチ汎用コア化は、限界が見えてきている。

 しかし、一方では、クライアント側ではメディアプロセッシングのニーズがどんどん強まっている。現状でも、マルチコア化で最もベネフィット(利益)があるアプリケーションの多くは、メディアエンコーディングのようなストリームプロセッシングの分野に入るものだ。そして、メディアプロセッシングの多くは、GPUコアのようなストリームプロセッサで効率的に処理できる。

 こうした背景を考えると、2~4個の汎用CPUコアと、GPUコアを組み合わせた方が、アプリケーション側のベネフィットは大きくなるというAMDの判断は合理的だ。もちろん、ソフトウェア側がGPUコアを使えばという条件がつく。しかし、クライアントCPU市場で大きなシェアを占めるAMDが、GPUの一定の市場を握るATIコアを統合するなら、ソフトウェア側の移行もドライブされる可能性がある。

●プロセス技術的に見ると理にかなったAMDの方向性

 プロセステクノロジの観点から見ても、AMDの現在の計画は合理的だ。プロセスが1世代微細化すると、同程度のダイサイズ(半導体本体の面積)のチップに2倍のトランジスタが搭載できるようになる。そのため、CPUコアのアーキテクチャがほぼ同じなら、プロセスが微細化する度にCPUコア数は倍々に増やすことができる計算になる。

 もちろん、CPUコア自体を拡大すれば話は別だが、現在のAMDは、汎用CPUコア自体を大きく拡大して行く方向にはない。Barcelona世代でコアは拡張するものの、2倍にはほど遠い。

 理由は明快で、汎用CPUコアを大きく拡張しても、それに見合うだけのパフォーマンスアップが得にくくなってしまったからだ。CPUコアの命令レベルの並列性「ILP(Instruction-Level Parallelism)」の向上はますます難しくなり、半導体技術側の問題から消費電力の壁「パワーウォール(Power Wall)」も立ちふさがり、さらに、メモリアクセスの壁「メモリウォール(Memory Wall)」もCPUパフォーマンス向上の障壁になっている。そのため、汎用CPUコアを拡張しても、それによって増えるトランジスタと消費電力に見合うだけの性能アップが望めない。今のCPUメーカーの基本的な路線は、CPUコアの拡張はミニマムに抑え、コア数を増やす方向にある。

 AMDのK8系アーキテクチャは、130nmでシングルコア、90nmでデュアルコア、65nmでクアッドコアへと倍々に増えつつある。コアの大幅なチェンジがないなら、45nm世代でオクタコアに倍増するのは自然な流れだ。AMDの45nmプロセスは、IBMとの共同開発でアクセラレートされており、2008年中盤に量産入りする予定だ。2008~2009年の時点でオクタコアがサーバー向けに登場するのは自然な潮流だ。

 一方、クライアントCPUは45nm世代になると、バリューCPU向けのダイ(半導体本体)でも4個以上の汎用CPUコアを搭載できるようになる。しかし、バリューやモバイル向けCPUをクアッドコアにしても、消費電力効率を考えると利点は薄い。そこで、GPUコアを統合することが、半導体技術的にも合理的となる。

AMDのCPUアーキテクチャー進化の方向
PDF版はこちら

●コプロセッサ付加路線はサーバーも同様

 こうしてCPU単体を見ると、AMDのサーバーCPUは汎用コンピューティングに、クライアントCPUは汎用コンピューティング+特定用途プロセッシングと2路線に分化するように見える。しかし、システムレベルで見ると決してそうではない。AMDは、今後のコンピューティングのカギは、クライアントとサーバーのどちらも、特定処理のアクセラレーションにあると考えている。そのための布石が、コプロセッサをシステムレベルで統合する「Torrenza(トレンザ)」イニシアチブだ。Torrenzaでは、コプロセッサをAMD CPUソケット、HTX(HyperTransportの拡張スロット仕様)、あるいはPCI Expressなど標準バスで接続する。

Torrenzaイニシアチブ

 構造的に見ると、汎用CPUコアの回りを、特定用途向けのさまざまなコプロセッサが取り囲むイメージだ。ちなみに、AMDはコプロセッサを2006年12月のAnalyst Dayあたりから「xPU」、つまり、CPU以外のプロセッシングユニットと呼び始めた。そして、xPUのうち、クライアントでのGPUコアのように、CPUに統合する理にかなったものがシリコンレベルで統合される。そこまでの必要性のないxPUは、Torrenzaで外部に接続されることになる。Torrenzaは、主にサーバーをターゲットとしたソリューションで、サーバーサイドでは、当面はTorrenzaによって特定用途のxPUが付加されることになるだろう。

 ただし、AMDは、サーバーCPUを汎用CPUコアだけに保ち、GPUコアのようなxPUを統合しないというわけではない。

 「サーバースペースもクライアントと同じことだ。もし、特定の機能がパフォーマンス/消費電力の面から、CPUに統合しても理にかなうとなったら、統合しない理由はない。ただし、CPUに統合する場合には、顧客の誰もがその分のシリコン面積に(コストを)払わなければならない。だから、顧客が実際にサーバーで走らせているワークロードによって、理にかなうかどうかが判断されることになる」とHester氏は説明する。

 つまり、クライアント側にGPUコアを統合するのに、サーバー側には特定コアを統合しないのは、現状ではサーバー側では、全てのシステムで必要になるxPUコアがまだ見いだせていないからというわけだ。つまり、大枠では、サーバーCPUもクライアントCPUも、どちらも「汎用CPU+xPU」という方向へと進んでいる。しかし、現在見えている範囲では、サーバーではxPUはまだ統合されない。また、将来サーバーCPUに統合されるxPUコアも、おそらくクライアントのGPUコアとは異なるものになるだろう。サーバーでは、GPUの単精度浮動小数点演算パフォーマンスは、大きなベネフィットをもたらさない市場が多いからだ。

□関連記事
【2006年12月20日】「コア戦争は終結」、AMDヘンリー・リチャード上級副社長
http://pc.watch.impress.co.jp/docs/2006/1220/amd.htm
【2006年12月15日】AMD、2008年までのロードマップを公開
http://pc.watch.impress.co.jp/docs/2006/1215/amd.htm
【2006年10月13日】【海外】AMDがクアッドコアCPU「Barcelona」の詳細を発表
http://pc.watch.impress.co.jp/docs/2006/1013/kaigai311.htm
【2006年8月10日】【海外】AMD+ATIの統合プロセッサの姿
http://pc.watch.impress.co.jp/docs/2006/0810/kaigai294.htm

バックナンバー

(2007年1月22日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.