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

AMDの2010年代のCPUアーキテクチャBulldozerの実像



●2010年代のCPUはヘテロジニアスなシステムLSIに

 2010年代の、PC&サーバー向けCPUの姿は次のようになる。メインのCPUコアは、現在のPC向けのCPUコアと似たような、単体のプロセッサ性能が非常に高い汎用コアのままで、シングルスレッド性能は維持またはスローペースの向上となる。電力効率はより高くなり、ベクタ演算能力は強化される。この汎用CPUコアが、1つのCPUに1個かそれ以上が搭載される。

 加えて、CPUには、特定の処理向けのプロセッサや専用(アクセラレータ)ハードウェアが数多く搭載される。これらサブプロセッサ群の命令セットには、x86と互換性を持っていないものも多い。小型で性能効率の高いサブプロセッサや専用ハードウェアを活用することで、GPUのように演算能力の高い“スループットコンピューティング”を実現する。

 向上するコンピューティング性能に見合うだけのメモリシステムも搭載される。CPUのダイに、メモリのダイが重ねられ、超広帯域のメモリが実現されるだろう。各プロセッサ間でメモリは共有され、プロセッサ間でのコヒーレンシが維持される。また、周辺チップの機能も、さらにCPUへと統合されて行く。

 CPUに載ったさまざまなリソースとイベントを管理するための、コントロールシステムも用意される。電力制御のためにプログラマブルなマイクロコントローラを搭載し、リアルタイムのモニタリングをベースに必要な部分にだけ電力が供給されるようになる。ハードウェアの上に、ハードの複雑性を隠蔽して、プログラミングを容易にするためのプログラミングモデルが構築される。

 これが、AMDの描く2010年代のCPUの姿(一部推測)だ。つまり、2011年の「Bulldozer(ブルドーザ)」以降のCPUは、上のような姿になって行くと見られる。パッと見てわかる通り、従来的なCPUとは異なる方向へ向かう。クライアントPCなら、CPUにGPUを始めとしたPCの諸機能が完全にCPUの中に統合され、ワンチップでPCのほとんど全てを構成できるようになる。半導体的に言えば、CPUがシステムLSI化する。そして、GPUのように高スループットで、おそらくTFLOPSクラスの高いコンピューティング性能を持つようになる(メモリ帯域が釣り合えば)。

システムのCPU統合化

 AMDは、このようにBulldozer世代のCPUアーキテクチャについて、ある程度明快なビジョンを打ち出している。AMDは、節目節目でビジョンを明らかにしており、アーキテクチャ的な方向性がわかりやすい。例えば、下のスライドは2005年のDirk Meyer氏(President & CEO, AMD)のスピーチのものだ。すでに、ベースとなる方向性はここですでに語られている。

Meyer氏のスピーチ

 Intelも断片的には似たようなことを言っており、総合するとかなり近いビジョンになる。しかし、IntelはAMDのように体系立てたビジョンとして打ち出していない。AMDは、製品として実現するまでの過程でつまづくことが非常に多いが、技術ビジョンを明瞭にする点についてはIntelより優れている。そして、そのビジョンはAMDだけでなく、PC向けプロセッサ全体に当てはまりそうだ。Intelも含めて。

●CPUの革新で区切ることができる3つの時代

 冒頭のビジョンは、AMDのCPUアーキテクトであるChuck Moore(チャック・ムーア)氏(AMD Senior Fellow)が、昨年(2008年)11月に開催されたCPUアーキテクチャのカンファレンス「Micro41」で行なったキーノートスピーチのプレゼンテーションから構成したものだ。以前にも紹介したが、Moore氏は、このスライドで、2010年以降のAMD CPUの向かう方向の概要を明確にしている。そのビジョンは、CPU業界全体の流れに沿っており、非常に論理的だ。

 以前レポートした通り、AMDのMoore氏は今がCPUアーキテクチャの転換期であると位置づけ、時代を3つに区分した。それによると、'86年から2004年までの18年間が「シングルチップCPU時代(Single-chip CPU Era)」だ。PC業界的な単語に言い換えると、「シングルコアCPU時代」となる。

システムのCPUへの統合化

 この時期は、1個のCPUコアをどんどん強化し、シングルスレッド性能の向上にフォーカスしていた。IntelならPentium 4、AMDならシングルコアOpteron/Athlon 64(K8)までがこの世代に当たる。複数命令発行のOut-of-Order実行で、シングルスレッドのシリアルコードの実行性能の高いCPUコアに、2段程度のキャッシュ階層を加えたシングルコアCPUだ。

 次の区分が2004年から2010年の6年間の「チップマルチプロセッサ時代(Chip Multiprocessor Era)」。PC業界風に言い換えると、「マルチコアCPU時代」だ。この短い過渡期的な時代を、Moore氏は3つに分ける。

 まず、マルチコアCPU時代の初期は、急いで複数のCPUコアを同じチップまたはパッケージに統合した。Intelならこれは疑似デュアルコア(2個のシングルコアCPUを1パッケージに収めた)のPentium D(Smithfield:スミスフィールド)の世代だ。

 次のマルチコアCPU時代の中期は、HWのスケーラビリティと競合の問題が提起され取り組んだ。現在は、それらがある程度まで解決され、ホモジニアス(Homogeneous:均質)構成のマルチコアCPUのまま、そこそこのレベルのシステム機能の統合が進んでいる。AMDならK8からK10、IntelならCore Microarchitecture(Core MA)からNehalem Microarchitectureで、それぞれモジュラー化が進んでスケーラビリティが向上している。

 従来型の延長にあるユニプロセッサに最適化されたCPUコアを修正して、ホモジニアスなマルチコア構成にして来たのが、この6年の流れというわけだ。シングルスレッド性能を維持しながら、マルチスレッド性能の向上にフォーカスを移し、ある程度の最適化を加えてきた。

 そして、Moore氏は2010年からは「システムレベル統合時代(System-level Integration Era)」に入ると説明している。これが冒頭に説明した2011年以降のCPUの姿だ。ヘテロジニアス(Heterogeneous:異種混合)型に汎用CPUと特定用途プロセッサやアクセラレータ群を統合、システムレベルの機能をより統合し、オンチップのリソースの高度な管理機能を備える、新しい方向性のCPUの時代だ。ヘテロジニアス化と言ってもいいかも知れないが、異種プロセッサ以外の要素も取り込むからシステムレベル統合なのだろう。結果として、CPUの生演算パフォーマンスが著しく向上する。

IntelとAMD CPUのアーキテクチャ比較

 ●ムーアの法則がシステムレベル統合へとCPUを追い立てる

 では、何がシステムレベル統合時代を可能にするのか。基本的なイネブラはCMOS半導体技術のスケーリングだ。この点は、変わっていない。

半導体のスケーリングによるシステムの統合化

 Moore氏のスライドでは、ムーアの法則が22nmプロセス以降も続くという予想が原動力になっているとしている。半導体ベンダーは、さまざまな技術をつぎ込んでムーアの法則を維持する“More Moore”に注力しており、この先も、少なくとも数世代はスケーリングを続けることができる目処が立ちつつある。ムーアの法則のペースが鈍化することがあっても、続けることはできそうだ。

 22nmにまで行くと、CPUのコンポーネントは極めて小さくなる。Moore氏は、OpteronクラスのCPUコアが5平方mm、1MBの高速キャッシュが4.5平方mmになると指摘している。現在の45nmのOpteron/PhenomのK10 CPUコアの面積は約18平方mm弱なので、2プロセス世代後の22nmなら5平方mm程度に縮小する計算になる。つまり、2012~13年頃には、K10クラスのCPUコアなら16個載せても、CPUコアだけの面積なら80平方mmしか取らなくなる。ハイエンドCPUを200平方mm台のダイで作るのなら、16コアは楽々載せられることになる。メインストリームPC向けでも10コア以上は載せられるだろう。コンピューティングのコストは、スケーリングによってどんどん安くなり続ける。

AMD CPUコアサイズ
K10のダイサイズ推定

 これを逆から見ると、CPUダイの中でCPUコアの占める面積が小さくなり、それだけダイが余るようになる。メインストリームのクライアントPCでは、CPUコア数が2~4個程度が妥当だとするなら、CPUコアだけの面積なら10~20平方mmしか取らない。メインストリームPC向けCPUのダイは120~180平方mm程度であるのが通例なので、100平方mm以上のダイが余ってしまう。キャッシュSRAMだけで埋めるのはもったいなさすぎる(一定量以上になるとキャッシュの効果が薄れるから)。そのため、さまざまな機能をCPUに統合して行かざるを得ない。

AMD CPUダイサイズ移行図

 もちろん、もう1つの選択肢としては、メインストリームPC向けCPUを、Atom程度のダイサイズに縮小してしまうという手もある。22nmならAtomクラスのダイサイズ(24平方mm程度)のCPUに、K10クラスのCPUコアならデュアルコアで載せても十分におつりが来る。この事情はIntelも同じだ。言い換えれば、22nm世代ならAtomクラスのCPUが今のデュアルコアK10やデュアルコアPenryn(Core 2)と同等のCPU性能を持てるようになる。

 しかし、PC向けCPUメーカーは、そうなるとビジネスを維持できない。機能向上がないなら、CPUの価格を落とし続けるしかないからだ。現在のメインストリームPC向けCPUのASP(平均販売価格)を維持し続けることはできなくなる。Atomと同程度の価格レンジに持ってくるなら、それだけの量を増やさなければならない。しかし、市場のニーズはそれほど増えない。CPUメーカーは、ウェハ投入の枚数を減らし、Fabの数を減らして、ビジネス規模を縮小しなければならなくなる。それは、受け容れられる選択肢ではない。

 つまり、ビジネスを維持し続けるために、PC向けCPUメーカーは機能を増やしてCPUのダイサイズを一定に保ち、ASPを維持し続ける必要がある。伝統的なCPUコア以外の要素をCPUに集積して、CPUの付加価値を高めるシステムレベルの統合は、そのために必要となる。つまり、ムーアの法則は、システムレベル統合を可能にするだけでなく、必然的にシステムレベル統合へとCPUメーカーを追い立てている。

ムーアの法則とCPUダイサイズ

 ●3Dチップスタッキングがシステムレベル統合を支える

 AMDのMoore氏は、システムレベル統合を可能にする要素として、半導体スケーリングの他に2つの要素を挙げている。それは、3Dチップスタッキング技術とカスタマーバリューだ。

 3Dチップスタッキングは、チップのダイを重ね合わせる技術。1個のチップが、複数のダイの貼り合わせで構成されるようになる。それだけを聞くと、ニッチな特殊な技術のように聞こえるかも知れないが、Moore氏は、3Dチップスタッキングが、ムーアの法則のスケーリングと同じレベルの重要な意味を持つと考えている。それは、3Dスタッキングが、システムレベル統合時代のCPUが迎えるボトルネックを解消できるからだ。

 3Dチップスタッキングは、過去2年間、半導体テクノロジとしてプロセッサ業界で最大の関心を集めて来た。今週、横浜で開催されている半導体チップシンポジウム「CoolChips」でも、長尺のスペシャルセッションとキーノートスピーチで3Dスタッキングテクノロジが大きく取り上げられた。TSV技術を概括したCoolChipsのセッションは後のレポートでまとめるが、3DスタッキングがCPUにとって最重要の技術であることは間違いない。

 その理由は、3Dチップスタッキングが、「メモリ帯域の壁(Memory Wall)」と「配線遅延の制約」という、システムレベル統合時代のCPUが直面しつつある2つの大きな障壁を解消できるからだ。また、それらを解消した結果としてCPUとシステム全体のアクティブ消費電力を大きく下げることができる。

スタックDRAM

 さらに、最終的にはCPUの物理的な構造やマイクロアーキテクチャも、大きく変えてしまう可能性を秘めている。3D結合の超並列スーパーコンピュータをワン“チップ”で実現することもできれば、CPUの実行パイプラインを立体に配置して、ステージ間のクリティカルパスの遅延を最小にすることもできる。

 ちなみに、CPU設計を3Dスタッキングで立体に配置し直す論文は、2006年12月のMicro39でIntelから出されて話題になった。この時のIntelのメインの研究者だったBryan Black氏は、公開されている職歴を見ると2007年春からAMDへとフェロー待遇で移っている。AMDが、チップスタッキングの研究者も集めていることがわかる。

CPUを立体化するIntelの研究

 もっとも、チップスタッキングの最初の応用は大人しいものになるだろう。Moore氏のスライドでは、CPUへの3Dチップスタッキング技術の適用は大きく分けて2ステップになると推測している。それによると、最初は、さまざまなタイプのメモリをCPUダイにスタックするために使われる。その後、論理回路を複数チップに分けてスタックすることにも使われるようになるとしている。このステップは、半導体業界全体の認識と共通している。

●命令とスレッドとデータの並列性のバランスを取る

 Moore氏が挙げているもう1つのポイントは、システムレベルの統合が、プラットフォーム全体の最適化を可能にして、幅広いカスタマーバリューを産むというものだ。これは、システムLSIの昔からの謳い文句であり、半導体の世界ではさして目新しくはないが、ディスクリートチップの塊だったPCにとっては新しい。

 例えば、ワンチップにまとめれば、チップ数を減らすことでコストを下げ、チップ間の配線を省くことで電力消費を下げることができる。その結果、パフォーマンス/ワット/コストを抑えることが可能になる。同様に、向上するプロセッシング能力に見合ったシステムレベルの帯域を与えることも可能になる。

 しかし、システムレベル統合はさまざまな問題も孕んでいる。チップ規模が大きくなり、設計がより複雑になる。トランジスタと生コンピューティングパフォーマンスはどんどん上がるが、電力とレイテンシやハードウェアとソフトウェアの生産性はどんどん悪くなる。

システムレベル統合に関する問題

 そして、大きな問題として、並列性をどこに求めるかという難題も浮かび上がってくる。シングルCPU時代には、「命令レベルの並列性(ILP:Instruction-Level Parallelism)」の向上にフォーカスして、シングルスレッド性能の引き上げに注力した。それが、マルチコアCPU時代に「スレッド(またはタスク)レベルの並列性(TLP:Thread-Level Parallelism)」の強化へと転じて、これからのシステムレベル統合自体には、ベクタ演算のスループットコンピューティングを強化する方向へと向かう。PC&サーバー向けプロセッサの現在の大きなトレンドは、ベクトル(ベクタ)スーパーコンピュータの技術やアイデアや人材を部分的に取り入れることにあり、AMDもその流れに沿うものと推測される。

スーパーコンピュータとMPUの進化

 その時に、3つの並列性のバランスを取る必要が出てくる。リアルアプリケーションに合わせて、バランスを取ったうまい舵取りをしないと難しい。Moore氏はプレゼンテーションの中で、この問題を論じている。

 ちなみに、Intelのエンタープライズ部門を率いるエグゼクティブで元CPUアーキテクトのPatrick(Pat) P. Gelsinger(パット・P・ゲルシンガー)氏(Senior Vice President and General Manager, Digital Enterprise Group)は、Intelもスカラとスレッドとデータ並列のバランスを取って行くと語っている。このあたりの認識も、AMDとIntelで共通している。

 このことは、AMDとIntelの2010年代のCPUが、依然として高いシングルスレッド性能を維持しながら、スレッド並列性とベクタプロセッシングを高めて行くことを示している。だから、冒頭のような2010年代CPUの姿になるというわけだ。