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

そして時代はARMサーバーとARMスパコンへ



●ARMサーバーへの動きが活発化

 はたしてARMサーバーの時代は来るのか。ストーリーだけを追うと、今年(2012年)がARMサーバー助走の年で、2013〜14に本格的に立ち上がるという雰囲気だ。しかし、そうした期待通りに行くかどうかは、まだわからない。コンピュータ業界の大半は、まだ様子見のモードにある。

 これまで、ARM CPUの領域は、モバイル機器や組み込み機器に留まってきた。しかし、ここに来て、ARM CPUを、サーバーやスーパーコンピュータ(スパコン)へと載せようという動きが、急に活発化している。昨年(2011年)11月にはスタートアップのCalxedaが、サーバー向けARMベースSoC(System on a Chip)「EnergyCore」を発表。組み込みチップベンダーのApplied Microも、サーバー向けのARM CPUコア「X-Gene」の開発を昨年10月に明らかにした。NVIDIAも、エクサスケールのスーパーコンピュータリサーチプロジェクト「Echelon(エシュロン)」や、PCクラスのコンピューティングデバイス向けの「Project Denver(プロジェクトデンバー)」にARMコアを採用する見込みだ。

 こうしたARMサーバーの動きを、ARMも後押しする。最重要素は、64-bitをサポートする新命令セット系列「ARMv8 (ARM Version 8)」だ。命令セットの64-bit移行によって、サーバーに必要とされる大容量メモリのアドレッシングを実現する。ARMは、もともとモバイルデバイスの搭載メモリ量の増大を見込んで64-bitアーキテクチャを開発してきたが、市場の動きに対応して64-bit化を前倒ししてきた。

 ARMは今年1月末に、64-bit CPUコアファミリの製品計画「Atlas(アトラス)」「Apollo(アポロ)」を明らかにした。2014年には搭載製品が発表するAtlas/Apolloによって、ARMベースの64-bitソリューションが手軽になる。Atlas/Apolloのハードマクロで、簡単にサーバー向け64-bitチップを作ることができるようになるからだ。

ARMライセンシングの増加 ARMv8の命令セット

 ただしARMv8-A命令セットの実装は、ARM CPUの設計と方向性に大きな影響を与える。それは、ARMv8-Aが、単なる64-bit拡張だけではなく、言ってみればARMの命令セット体系のリセットだからだ。

 ARMは、一度「Thumb-2」命令セットで、命令セットの刷新を図った。今回の64-bit拡張は、より抜本的で、ARMv8-Aの64-bitステイト「AArch64」時には、従来の命令セットとは大きく違う命令セットだけが提供される。AArch64では、命令のフォーマットやレジスタファイル構成、例外処理モデルなどをガラリと変える。ARM命令セット特有の、特殊な命令体系を、より一般的なスタイルに変更する。

 このことは、ARMv8-Aを実装するARM CPUコアが、既存命令セットとの上位互換を取ろうとすると命令デコーダが複雑になることを意味する。単に、64-bit化で、レジスタやデータパスや演算ユニットが大型化するだけでなく、複雑な設計問題をはらんでいる。その一方で、もしAArch64だけに最適化するならCPU設計は、よりシンプルになる。そのため、長期的に見ると、64-bitステイトしか持たないCPUも登場するかも知れない。

ARMv8命令セットの特徴

●ARMサーバーチップに2メーカーが名乗り

 ARMサーバーの先頭を走っているのは、オースティンのチップスタートアップCalxedaだ。ARM自身が出資するCalxeda(Board of DirectorsにもARM幹部の名前がある)は、現在、Cortex-A9ベースのメニイコアサーバーを開発している。現行の32-bitのARMv7ベースのCortex-A9を、クアッドコア構成にした「EnergyCore ECX-1000 Processor」チップが基本となる。EnergyCore ECX-1000は、CPUコアの他に、DDR3/3Lメモリコントローラ、ECC L2キャッシュ4MBや10Gbネットワーク、PCI Express、SATAを取りこんだSoC(System on Chip)となっている。言ってみれば、サーバーオンチップ(Server on Chip)だ。

 同社は、ECX-1000を、4チップ載せたクアッドノードカード「EnergyCards」として提供しようとしている。16コアのカードサーバーで、これを束ねてサーバーを構成する。いわゆるスモールメニイコア構成のサーバーだ。

 CalxedaのEnergyCoreについては、すでにHP(Hewlett-Packard)がローエナジーサーバーの開発プラットフォーム「Redstone」のパートナーとして採用したことをアナウンスしている。といっても、HPが大々的にセールスし始めたわけではなく、今年前半に限定された顧客に対して試験的に提供されるというフェイズだ。また、HPは、将来のRedstoneには、IntelのAtomも採用するとしている。

EnergyCore ECX-1000 Processorのブロックダイアグラム
Cortex-A9のブロックダイアグラム
PDF版はこちら

 AtlasとApolloは、ARMが自社開発するコアでは、ARMv8-Aを実装した最初のCPUアーキテクチャとなる。ただし、ARMv8については、すでにApplied Microが次期CPUアーキテクチャ「X-Gene」に採用することを発表している。これは、ARMのAtlas/Apolloとは異なる、Applied Micro自身の設計のコアだ。QualcommのSnapdragonのScorpionコアのように、ARM命令セット互換で自社開発しており、独自の実装となっている。

 X-Geneは省電力サーバーにフォーカスしたCPUで、最高3GHzで動作するOut-of-Order型のスーパースカラアーキテクチャだ。4命令発行とされている。ARMの現行のCortex-A15が、4命令デコードなので、それより命令並列度を上げるようだ。簡単に言えば、シングルスレッドパフォーマンスでも、現在ハイエンドのARMコアを凌ぐものを提供しようとしている。

 Applied Microは、最大128コアまでのスケーラビリティを持つとアナウンスしている。製造は、TSMCの40nmと28nmプロセスを使うことがアナウンスされている。今年後半から、顧客向けサンプルシリコンを出荷するとしており、すでにFPGAベースのシミュレータを発表している。

X-GeneのCPU X-Geneのアーキテクチャ
Cortex-A15のブロックダイアグラム
PDF版はこちら

●NVIDIAのウルトラハイエンドEchelon

 NVIDIAも自社の発展を、ARMコアに賭けている。ARMコアが、窮屈なPCアーキテクチャに縛られないGPUコンピューティングへの道を開くからだ。NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、以前のインタビューで次のように説明している。

 「ARMプロセッサは、モバイルのために設計された。しかし、将来は、ノートブックやデスクトップ、ワークステーション、サーバー、そしてスーパーコンピュータにも入って行く。しかし、そのための拡張がARMコアに必要だ。我々は、ARMアーキテクチャをハイパフォーマンスのレベルに引き上げる拡張を行なおうと考えている」「ARMをサーバーや大きなコンピュータに入れようとするなら、64-bit(アドレッシング)が必須だ」。

 NVIDIAは、ARMv8-Aで本格的にARMコアをモバイル以外のラインナップに取りこみ始めると見られる。ただし、Huang氏は、昨年5月に「我々は、ARMの開発したコアを拡張しようと考えている。ARMの次世代マイクロアーキテクチャをベースとし、機能をつけ加える。ゼロから再設計することは考えていない」と説明していた。そのため、NVIDIAはARM開発のARMv8-Aベースコアを拡張するものと推測される。

 NVIDIAは、エクサフロップスのスーパーコンピュータEchelon(エシュロン)にもARMコアを採用すると見られる。下は昨年8月に公開された10nmプロセスのEchelonダイのフロアプラン図だ。中央に見えるLOCが、レイテンシ最適化コアで、CPUコアを示している。

 CPUコアは、GPUコアである「SM(Streaming Multiprocessor)」の2倍程度のサイズ。各SMは、8レーンの構成だ。2010年のスーパーコンピューティングカンファレンス「SC10」で発表された構成より、SM(Streaming Multiprocessor)の数が2倍に増えているが、これはレーンの構成が変わったためだと見られる。

Echelonのアーキテクチャ Echelonのダイフロアプラン

●チャンスもあるがハードルも高いARMサーバーの行く手

 なぜ、今、ARMサーバーなのか。その理由については、2月7〜8日に開催されたThe Linley Groupのプロセッサカンファレンス「Linley Tech Data Center Conference 2012」で、The Linley Groupの創設者で主席アナリストのLinley Gwennap氏が端的にまとめている。

 Gwennap氏は、IntelのXeon系のようなx86サーバーCPUは、パフォーマンス/電力比で不利であるとスライドで説明している。ハイパフォーマンスに伸ばしたx86に対して、ARMのような組み込みRISC(Reduced Instruction Set Computer)プロセッサはローパワーに最適化してきた。さらに、周辺回路を組み込むSoC(System on a Chip)化に適合して来たことも、組み込み系の流れを組むCPUの強味になっているとGwennap氏は指摘する。しかし、泥臭いが大きなポイントは、IntelはサーバーCPUで高いマージンを取っているのに対して、他のベンダーはより低いマージンに甘んじることができる点だ。そのため、パフォーマンス/電力だけでなく、価格比でもx86に対して利点を持つ可能性がある。

 とはいえ、ARMサーバーの道も険しい。数々のハードルが待ち構えているためだ。当然のことだが、まずはソフトウェアの移植が必要となる。ただし、ハードウェアの抽象化が進みつつあるため、昔と比べると命令セットの移行の痛みは減りつつある。しかし、ARMに関して言えば、現状で64-bitがまだレディではない(Cortex-A15でアドレッシング拡張がある)。本格的なサーバーチップのラインナップが揃うまで、まだしばらく時間が必要だ。

 これは、逆を言えば、IntelやAMDが手を打つチャンスがあることを示している。実際に、IntelはAtomをサーバーにもたらそうとしている。また、AMDは昨年(2011年)11月に開催されたJEDECの「Server Memory Forum」で、AMDもBobcat(ボブキャット)などのコアを使ったスモールコアサーバーについて研究していることを示唆した。AMDは、今月のAnalyst Dayでも、サーバーCPUへのSoC(System on a Chip)手法の取り入れなどのビジョンを語っている。つまり、ARMサーバーの動きは、ARM周辺を活発化させているだけでなく、IntelやAMDにも影響を与えつつある。

ARMサーバーの特徴