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

スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略

ビッグデータで変わるサーバーCPU

 Intelが発表した「Avoton(アボトン)」は、マイクロサーバー向けのスモールコアサーバーCPUだ。サーバーは、ビッグデータの処理がテーマになって一変した。コンピューティングインテンシブ一辺倒から、I/Oやメモリへの負荷が特に高い処理への対応が重要になった。「Hadoop(ハドゥープ)」や「Memcached(メムキャッシュディー)」への最適化が重要となり、「Software Defined Network(SDN)」や「Software Defined Storage(SDS)」による仮想化が持ち込まれようとしている。そうした状況で、旧来のサーバーCPUとは異なるチップが求められるようになった。それが、コンピューティング負荷が低いが、ほかの負荷が大きいワークロードに高い電力効率で対応できるCPU。ストレージやネットワーク側に分散しやすいローパワーなCPUだ。

Facebookのサーバー構成

 Avotonは、こうした流れに対するIntelの解答であり、同じ狙いを持つARMサーバーに対抗するものだ。Avotonは、IntelのローパワーIA(LPIA)系コアである「Silvermont(シルバモント)」を8コア搭載し、サーバーに必要なI/Oをワンチップに集積したSoC(System on a Chip)となっている。そのために、Intelの従来のモバイルSoCとは内部インターコネクトも改良した。

 従来のSoCは、CPUコアを接続するNorth SoC Interconnectはクロスバーの「Memory Fabric(メモリファブリック)」と、I/Oを接続するSouth SoC Interconnect側は「IOSF(Intel On-die Switch Fabric)」の2階層だった。Avotonでは、ノース側はクロスバーの「Silvermont System Agent」、サウス側は高速な「High Speed IOSF」と低速な「Low Speed IOSF」の2階層となっている。

Avotonのブロックダイヤグラム

 IntelはメインストリームPCやサーバー向けのCPUでは、内部のCPUバスにリングバスを使っている。しかし、LPIA系のSoCでは、CPUコアのためのバスはクロスバースイッチになっている。リングバスでは、リングの配線はL2キャッシュの上層を通すために面積が小さい。しかし、AvotonではおそらくCPUコア間の部分がファブリックやメモリコントローラで、かなりの面積を取っていると見られる。

Avotonのダイ
※PDF版はこちら

 IOSFはIntel SoCの標準内部バスで、PCIエミュレーションをプロトコルとしてサポートすることで、レガシードライバとの互換性を維持している。また、IOSFとは異なるサブファブリックをサポートできるサイドバンドチャネルを備えており、他社IPの取り込みもできる。Silvermontコアは、1MBのL2キャッシュを共有する2コアのモジュールとして、Silvermont System Agentとポイントツーポイント「IDI (In-Die Interconnect)」で接続されている。

パッケージからわかるダイとコアの面積

 Avotonのパッケージサイズは34×28mmで、これは、第1世代のサーバー向けスモールコアである「Atom Processor S1200(Centerton)」を継承している。パッケージから推測されるダイサイズは100平方mmを少し超える程度で、これは100平方mm弱だったCentertonとほとんど変わらない。それなのに、CPUコアはアウトオブオーダー実行へと拡張され、CPUコア数は2コアから8コアに増え、DRAMインターフェイスは2倍になり、取りこむI/Oも増えた。

Avotonのパッケージ
※PDF版はこちら

 IntelはCentertonからAvotonで、プロセスを32nmから22nmへと微細化した。CPUコアは32nm世代の「Saltwell(ソルトウェル)」から、22nmのSilvermontになった。そして、IntelはSilvermontコアを非常に注意深く設計し、コアを小さく留めてマルチコア化を容易にした。

 Silvermontは、IntelのLPIAコアとしては初代の「Bonnell(ボンネル)」コア以来、初めての大幅な設計変更だ。従来のBonnell/Saltwell系コアがインオーダー実行であるのに対して、Silvermontではアウトオブオーダー実行となっている。しかし、アウトオブオーダー実行にしながらも、Silvermontでは極力リソースを増やさないようにした。その結果、Avotonでは、PC向けCPUなら最小クラスのサイズのダイに8コアを集積することが可能になった。

 上のダイを見ると、2コアに1MBのL2キャッシュをモジュール化したユニットが4個並んでいる。8個のCPUコアで、ダイ面積の約3分の1を取っている。2CPU+L2のモジュールのサイズは逆算すると8平方mm台となる。L2とL2のコントローラやバスと見られるユニット群を外すと、Silvermont CPUコア自体のサイズは2.5平方mm程度と推測される。Haswell(ハズウェル)のCPUコアがL2を含めて14平方mmなので、Silvermontは4分の1以下のサイズとなる。

機能拡張によるダイの大型化を抑えたSilvermontアーキテクチャ

 IntelのLPIAコアは、サイズが大きいことが難点だった。そのため、低コストなダイには多くのコアを積むことが難しかった。IntelのIA CPUコアとしては最小サイズだが、ARMなど、ほかのアーキテクチャのCPUコアと比べると大きかった。例えば、初代の45nmプロセスのBonnellコアは、512KBのL2キャッシュを加えたサイズが14平方mm、L2を除いても9平方mm弱のサイズだった。

IntelのLPIAコア
※PDF版はこちら

 Intelは32nmのSaltwellでは、CPUアーキテクチャをあまり変更せずにCPUコアを縮小した。CPUコア+L2のサイズは60%程度に小さくなった。そして、上の図を見ると分かる通り、Intelは22nmのSilvermontでは、さらにCPUコアを縮小した。図中のCPUコアとなっている部分は、Saltwellではバスユニットを含んでいるが、Silvermontでは共有のバスユニットはL2の方に含めている。そのため、純粋なCPUコアだけのサイズならSilvermontはSaltwellの60%台の面積と見られる。だとすれば、アーキテクチャを拡張したことが、ダイサイズにほとんど影響していないことになる。

 とはいえ、これはある程度予想ができた。なぜなら、Silvermontの機能拡張は、絞りに絞り込んだ、非常に抑えたものになっていたからだ。下は左がBonnell、右がSilvermontのブロック図だ。

BonnellとSilvermontのブロックダイヤグラム
※PDF版はこちら

 両者を比べると、実行ユニットの数はほぼ同じで、バッファ等はマルチスレッディングで二重化していた分をシングルスレッドにまとめて、リソースを増やさないように注意して拡張していることが分かる。また、リオーダーバッファも32エントリと極めて小さい。これは、Silvermontがほぼ1対1でx86/x64命令を内部命令に変換しているからだ。

 例えば、CISC(Complex Instruction Set Computer)型のx86命令のLoad-Op-Store型の命令は、PC向けのビッグコアでは通常は2個のMacroOPsに変換する。しかし、Silvermontでは1個のMacroOPとしてトラックする。そのため、アウトオブオーダー実行のリソースが小さい。

ARMのCortex-A15系と比べると半プロセス世代の差で同レベルのダイエリア

 IntelはSilvermontではリソースを節約することでダイエリアを小さく止め、結果としてマルチコア化を容易にしたと見られる。Silvermontの推定ダイエリアがどの程度小さいかは、他社のCPUコアと比べるとよく分かる。

IntelのLPIAコアとARMコアの比較
※PDF版はこちら

 上はARMコアと比較したIntelのLPIAコアファミリだ。ARMコアは一番上が40nmのCortex-A9。ARMコアは実装によって、同じプロセスでもコアの面積が2倍も変わる。図の例は、ARMのTSMCのハードマクロのパフォーマンス最適化設計のコアサイズで、Cortex-A9中で最大のサイズのものだ。

 その下の3つは28nmで、Cortex-A9、ローパワーのCortex-A7、高パフォーマンスのCortex-A15となっている。Cortex-A9はNVIDIAのTegra 4iの実装のサイズ。Cortex-A7はARMの発表時の数字で、Samsungの実装はこれより大きい。Cortex-A15はNVIDIAのTegra 4での実装のサイズだ。ちなみに、図のダイレイアウトはARMの発表のもので、NVIDIAの実装はダイレイアウトが異なる。面積はNVIDIAの実装のものだ。

 一見すると分かる通り、45nmのBonnellコアは、40nm時のCortex-A9と比べると話にならない程大きい。Bonnellの方が40nmのCortex-A9よりパフォーマンスは通常は上だが、それでもこのダイサイズの差は巨大だ。ところが、ARMコアもパフォーマンスを上げるために大型化している。下はARMのコアのブロック図で、左端のCortex-A9から、Cortex-A12、Cortex-A15とより大型の構成になっている。Avotonとサーバー市場でぶつかる右端のCortex-A57はCortex-A15の64-bit拡張だ。

ARMプロセッサのブロックダイヤグラム
※PDF版はこちら

AMDのJaguarよりもコアが小さいSilvermont

 AMDのローパワーコア系列と比べても、Intelのコア小型化は目覚ましい。下の図の右はAMDのローパワーコアで、上が40nmのBobcat(ボブキャット)と512KBのL2キャッシュ、下が28nmのJaguar(ジャギュア)単体コアだ。AMDはBobcatからJaguarで機能を大幅に拡張したが、コアサイズは60%台に縮小している。しかし、28nmのJaguarは、22nmのSilvermontと比べると、コアサイズは大きい。

IntelのLPIAコアとAMDの低消費電力コアの比較
※PDF版はこちら

 もちろん、JaguarとSilvermontでは半世代プロセスが異なるので、Jaguarの方が同プロセス比ならコアは小さくなるだろう。しかし、今年(2013年)後半から来年(2014年)中盤で見ると、22nmのSilvermontと対抗するのは28nmのJaguarコアなので、ダイサイズ的にはAMDは少し不利になる。その一方、マイクロアーキテクチャ的にはJaguarはSilvermontより拡張されている。

 ただし、Intelの22nmプロセスはFinFET 3Dトランジスタなので、低電圧時の特性に優れる。そのため、AMDより動作周波数を上げやすい。ちなみに、Silvermontのパイプライン段数はBonnellより少ない。しかしこれは、Bonnell/SaltwellがCISC(Complex Instruction Set Computer)に最適化されたLoad-Op型のパイプラインで、実行ステージの前にL1データキャッシュのステージ群が挟まっていたためだ。実質的なパイプライン段数はSilvermontも変わらないため、FinFETになった分だけ動作周波数は上げやすくなる。

Silvermontのパイプラインとブロックダイヤグラム
※PDF版はこちら

2世代かかってARM系CPUコアのサイズにまで縮小

 IntelのCPUコアのダイエリアの変化をチャートでほかのCPUコアと比べると、Intelの意図は明瞭だ。45nm→32nm→22nmと、LPIA CPUコアのサイズはどんどん縮小して来た。実際にはAMDのローパワーコアも同様だ。それに対して、ARM系コアは高パフォーマンス化のためにダイエリアを維持しているか、大きくなっている。正確には、小さなコアと大きなコアへとバリエーションを広げている。

モバイルCPUのダイサイズ変遷
※PDF版はこちら

 そして、22nmのSilvermontでは、ついに28nmのCortex-A15やKraitクラスとダイエリアでほぼ同クラスになったと推定される。SilvermontはCISCの2命令デコード、Cortex-A15やKraitはRISC(ARMもRISCとするなら)の3命令デコードという違いはあるが、Intel LPIA=大型コアという構図はなくなった。

 もちろん、ARM系コアが20nmに微細化すれば、Silvermontコアより小さくなる。しかし、IntelはSilvermontから1年で14nmの「Airmont(エアモント)」コアベースへと移行する。ファウンドリは20nmから1年で14/16nmを立ち上げるが、14/16nmは20nmのジオメトリにトランジスタをFinFETに変えたものになるため、コアエリアは大きく変化しないと予想される。そのため、Intelのコアサイズの不利は、現状ではなくなったと考えてよさそうだ。これは、スマートフォンやタブレット向けのモバイルSoCにも大きく影響する。

(後藤 弘茂 (Hiroshige Goto)E-mail