■後藤弘茂のWeekly海外ニュース■
AMDが大きな分岐点を迎えた。長年、x86 CPUを主力製品としてきた同社が、ARMコアベースのサーバーCPUを開発する。64-bit ARMコアの製品を2014年までに投入する計画だ。CPU命令セットで陣営分けするなら、x86陣営だったAMDが、ARM陣営に片足を突っ込む。命令セット戦争という観点で見るなら、天秤はARM側にさらに傾いた。なぜ、今、AMDがARMなのか、そして、AMDはARMをどこまで自社の製品に浸透させるのか。AMDは最終的にARM陣営に移ってしまうのか。
現時点では、AMDのARMコアの採用は、まだ限定的だ。64-bit ARMを電力効率が求められる高密度のデンス/クラウドサーバー分野に投入し、x86サーバーCPUとは併存させるとしている。全てのサーバーCPUを、いきなりx86からARMに置き換えるわけではない。また、サーバー以外の分野については今回は発表していない。
AMDがARMコアをやっているというウワサは、すでに数年前からIT業界に流れていた。AMDは、すでにARMのTrustZone技術を採用してARMの低電力コアをセキュリティプロセッサとして組み込むことを明らかにしているが、AMDとARMの協力態勢はもっと広範に渡ると言われていた。
しかし、これまでは、AMDがどの分野にどこまで本気でARMを提供するつもりなのか、今ひとつはっきりしなかった。今回の発表で、まずはデンス/クラウドサーバーからという路線が明確になった。
サーバー分野からスタートすることは、理にかなっている。それは、ARMサーバーは新しい市場で、モバイル向けアプリケーションプロセッサの世界のように競争が激化しているわけではない。そして、ライバルのIntelは、ARMサーバーに対抗するローパワーのAtomサーバーが成功できるか未知数だ。AMDにとって、攻め所であり攻め時でもある。
さらに、AMDはこれまでにコツコツと準備を整えてきた。高密度サーバーのSeaMicroを買収、今年(2012年)2月のAnalyst Dayカンファレンスでは、サーバー向け製品をSoC化し、CPUの命令セットアーキテクチャ(ISA)の面でもフレキシブルにして行くと説明した。今回のARMサーバーでも、SeaMicroの優れたファブリックによるノード間接続技術を適用すると説明している。そういった意味では、AMDのパズルの最後のピースがはめ込まれたのが、今回のアナウンスだ。
●ARM陣営の勢いを借りる? AMDの戦略
AMDは別段、CPUの命令セットについて純潔主義ではない。同社は過去には自社のRISCコアもMIPSコアも持っていた。そうした過去を振り返ると、ARMの採用は別段驚くべきことではない。しかし、それでも、AMDがローパワーの高密度サーバーの設計に、自社のローパワーx86コアではなくARMコアを持ってきた意味は大きい。
AMDが、ローパワーx86系CPUを開発し始めた理由は、同社が「命令セットアーキテクチャは、本質的に電力やコストにほんの少ししか影響しない」という主張を持っていたからだ。AMDは2003年の秋のCPUカンファレンス「Microprocessor Forum」で、「Towards Instruction Set Consolidation」と題した講演を行なった。その中で、AMDの当時のCTOだったFred Weber(フレッド・ウェバー)氏が、x86命令セットアーキテクチャでもローパワーのCPUを設計することが可能で、そうした製品が、将来、家電や組み込みの市場に浸透して行くと説明した。
しかし、今回のAMDの発表は、この理念を、一見、真っ向から否定するものとなってしまっている。ローパワーはARMという位置付けになっているからだ。確かに、現状のBobcat(ボブキャット)コアとARMコアのCortex-A9を比べると、Bobcatの方が一回り大きい。パイプラインのフロントエンド部分(デコーダを含む)はBobcatの方がずっと大きく、x86命令セットが重荷になっていることが見て取れる。
ARM Cortex-A9とBobcatのダイ比較(PDF版はこちら) |
とはいえ、ARMも64-bitアーキテクチャを含むARMv8命令セットになると、64-bitのAArch64では命令セットのフォーマットが全く異なるため、命令デコードはぐっと複雑になる。あるCPU業界関係者は、64-bit ARMでは、実質的に32-bitと64-bitで異なる命令デコードパスを用意する必要があるだろうと語る。そうした要素を考えると、64-bit世代のARMが、必ずしもローパワーのBobcatより圧倒的に有利とも見えない。ARMである必然性は薄まる。
しかし、もし、サーバー市場全体がARMサーバーへと傾くとするのなら、AMDがARMサーバーをやる意味は出てくる。例えば、CPUコア自体は、AMDだけで開発する必要がなくなり、ARMの開発したコアのライセンスを受けることができるようになる。ARMは「Atlas(アトラス)」と「Apollo(アポロ)」というARMv8ベースのCPUコアを、2014年に市場に投入する。
現状のAMDは、新たなCPUコアラインナップのために割くことができる開発リソースは限られていると見られる。そのため、ARMのライセンスモデルは、AMDにとっては開発費を抑えながら、新興市場にチャレンジする道を開く。
製造面で見ると、そもそも、AMDが製造委託するファウンドリGLOBALFOUNDRIESとTSMCのどちらも、最先端のARMコアを持っている。AMDは64-bit ARMコアのハードマクロを買うこともできれば、ARMからRTLでのライセンスを受けて、ファウンドリのプロセスに最適化する「POP(Processor Optimized Packages)」を使うこともできる。AMDは、SeaMicroのファブリックなどで付加価値を付けることができる。ここで出てくる疑問は、ARMコアサーバー市場にどこまで可能性があるかという点だ。
ARMコアのライセンス体系(PDF版はこちら) |
●ARMコアサーバーについて1年前からAMDは発言
実は、AMDはARMコアサーバーの市場の可能性について、ちょうど1年前に説明を行なっている。昨年(2011年)の11月に米Santa Claraで開催されたJEDECの「Server Memory Forum」のキーノートスピーチで、当時AMDのサーバーの技術部門を統括していたDon Newell氏(当時VP and CTO, Server Business Unit, AMD、現在はQualcomm)が語った。Newell氏は、スモールコアサーバーの将来性についてAMDも深い関心を寄せていると説明している。
「今、ARMと、AtomやBobcat(ボブキャット)などのスモールコアのx86を使ったスモールコアのサーバーがあちこちで議論されている。学会と業界から、スモールコアは一定のワークロードに対しては非常に有用だとする論文が多数出されている。スモールコアサーバーが、業界にとって、大げさな宣伝(Hype)なのか、希望(Hope)なのか、大きな関心事となっている」。
この時の説明は、ARMサーバーというより、スモールコアサーバーについてだった。しかし、AMDがARMコアをサーバーに持ってくる目的が電力効率である以上、コンセプトはスモールコアサーバーのそれと一致している。ARMコア群は64-bit世代で、さらにシングルスレッド性能を高めてくるだろう。しかし、それでもハイエンドのx86 CPUコアのパフォーマンスには及ばないと見られている。その代わり、電力効率の面では、x86のサーバーCPUよりも高くなるだろう。下がJEDECのカンファレンスで説明した際のスライドだ。
AMDは、スモールコアサーバーを適用して効果が上がるケースは次のような場合だと説明した。
「スモールコアが有効となる重要な条件は、シングルスレッドパフォーマンスがクリティカルなワークロードではないことだ。具体的には、(キャッシュヒット率が低く)メモリやI/Oへのアクセスが多発するようなワークロードがスモールコアに適している。メモリやI/Oからのデータを待つ時間が長ければ、ラージコアは余計な電力を消費してしまうからだ」。
ラージコアの場合、一定のタスクに必要なコンピュート時間はスモールコアよりも短くなる。ところが、キャッシュミス率が高いと、メモリアクセスに時間を食われ、トータルのタスク実行時間が長くなってしまう。一方、スモールコアは、コンピュート時間そのものはラージコアより長くなる。しかし、メモリアクセスのレイテンシ自体は、ラージコアと変わらない。そのため、トータルで見ると、タスク実行時間にはそれほど大きな差が出ない。つまり、ラージコアとスモールコアのパフォーマンスの差は小さくなる。
ラージコアとスモールコアのレイテンシ(PDF版はこちら) |
さらに、スモールコアは同じチップサイズならコア数が多くなるので、より多くのスレッドを並列に実行できる。そのため、スレッド並列性の高いアプリケーションの場合、スレッドを多数並列に実行することで、ワークロード全体の処理時間が短くなる。スモールコアサーバーの方が、ラージコアサーバーより、パフォーマンスで上回ることになる。
AMDは今回の発表で、データセンターのワークロードが変化しつつあり、省電力コアのサーバーのニーズが高まっていると説明した。スモールコアサーバーに有利なワークロードへと傾いていると分析したと見られる。
●AMDとARMの連携でソフトウェアに影響はAMDとARMの連携が深まることで発生する、ソフトウェア側での変化も注目のポイントだ。すでにAMDとARMは、GPUコンピューティングのためのHSA(Heterogeneous System Architecture)構想で提携している。これは、HSAのフレームワークを両社で共有しようという提携で、GPUの中間言語(下位コンパイラのインターフェイス)である「HSAIL」と、CPUとGPU間での共有メモリモデル、オーバーヘッドの小さなディスパッチ&実行モデル、アーキテクチャフィーチャにいたるまで、AMDとARMの間の標準化を、ある程度図ろうとしている。つまり、これまでのように「OpenCL」や「DirectCompute」といったレベルでの共通化ではなく、より深いレベルでの連携を目指している。
AMDがARMコアを採用することは、今度はCPUコアのレベルでもある程度似通った抽象化が、構想として浮上する可能性がある。例えば、AMDはGPUコードをLLVM (Low Level Virtual Machine)から出せるようにする構想を持っているが、LLVMでx86とARMとGPUをカバーするといった構想を持ち出すかも知れない。また、ミックスドアーキテクチャでは、x86とARMの間のバイナリトランスレーションという話も持ち上がって来る可能性がある。
ちなみに、ARM上でのx86のバイナリトランスレーションは、つい最近、ロシアのElbrus Technologiesがアナウンスした。この会社は、旧ソビエトのElbrusコンピュータの開発センタMCSTからスピンアウトした。Elbrus 3を産んだBoris Babaian氏は、VLIW上でのエミュレータ技術を開発したことで有名で、そのアイデアはTransmetaの元になったとも言われた。Elbrus Technologiesは、米Santa Claraで10月30日(現地時間)から行なわれるARMの技術カンファレンス「ARM Techcon」でもセッションを行なう。
今回はデンスサーバー分野だけに留まったAMDのARM採用だが、今後の展開はどうなるのだろう。もし、電力効率がARM採用の決め手だとするなら、ローパワーのモバイル分野でもAMDがARMを採用しない理由はない。この市場では、すでにARMがx86を押しのけている。AMDのCPU戦略は、まだまだ今後も大きな転換がありそうだ。