「Bulldozer」で2011年に大きく変化するAMDのサーバーCPU


 AMDが11月9日(米国時間)に行った「2010 Financial Analyst Day」では、今後数年間のAMD CPUの製品ロードマップが発表された。今回は、その中でもサーバー向けのCPUにフォーカスを当てて解説していく。

 

新アーキテクチャBulldozerへ移行するサーバーCPU Opteron

 サーバー向けのCPU Opteronは、2011年に大きな変化を果たす。次世代Opteronは、AMDが開発しているBulldozerアーキテクチャをベースとしたものに切り替わる。

Bulldozerアーキテクチャは、1つのモジュールに2つの整数演算コア、1つの浮動小数点コアが入っている
IntelのHTに比べると、Bulldozerアーキテクチャでは仮想的に1つのCPUコアを2つのCPUコアとして見せているわけではなく、物理的に整数演算コアが2つ存在する。このため、マルチスレッドは高い性能を見せるだろう

 Bulldozerアーキテクチャは、1つのモジュールに、2つの整数演算コア、2つの128ビット浮動小数点演算コアで構成されている。これにより、1つのBulldozerモジュールでは、2つのスレッドが同時に実行できる。AMDでは、IntelのHyper Threading(HT)のような仮想的にCPUコアを2つに見せるアーキテクチャと比べると、実際に整数演算の物理コアが2つあるため、マルチスレッドのパフォーマンスアップすると考えている。

 浮動小数点演算コアに関しては、128ビットの浮動小数点演算コアが2つ用意されている。128ビットの浮動小数点命令の場合は、2つの命令を同時に処理できる。ただし、浮動小数点演算コアのスケジューラが、1つしかないため、128ビットの浮動小数点演算コアは同期して動くことになる。

 Bulldozerアーキテクチャでは、Intelが新しく追加した256ビットのAVX命令に対応するために、2つある128ビット浮動小数点演算コアを合わせて使用する。つまり、AVX命令の処理では、浮動小数点演算コアが、どちらかのスレッドに占有されてしまうことになる。

 ただし、ほとんどのプログラムでは、256ビットの浮動小数点演算が同時に必要とされることは、非常にまれだ。このため、Bulldozerアーキテクチャでは、128ビットの浮動小数点演算コアを、フレキシブルに使っている(AMDでは「Flex FP」と命名している)。

 また、使用頻度が高い整数演算コアには、2つの整数演算用のスケジューラが用意されているが、浮動小数点演算コアには、1つの浮動小数点演算用のスケジューラが用意されている。浮動小数点演算用のスケジューラは、256ビット浮動小数点演算が扱えるようになっているため、128ビット浮動小数点演算が2つ同時にきた場合は、128ビット浮動小数点演算コアに同時に命令が発行できるようになっている。

 Bulldozerモジュールでは、命令のフェッチ、デコード、2次キャッシュメモリなどは、2つの整数演算コア、浮動小数点コアで共有される。整数演算コアの1次キャッシュメモリに関しては、それぞれのコアごとに用意されている。3次キャッシュメモリは、CPU全体(複数のBulldozerコアで共有されることになる)。

 2次キャッシュメモリは2MB(2つのCPUコアで共有)、3次キャッシュメモリはCPU全体で8MBとなる。


Bulldozerアーキテクチャでは、フェッチ、デコード、2次キャッシュメモリなどが共有されている。整数演算ユニットは、2つあるため、別々に動作するBulldozerアーキテクチャでは、1つのモジュールで2CPUコアの動作を果たす

 AMDは、Bulldozerモジュール1つで、既存のCPUコア2つ分として計算しているようだ。2011年にリリースされる次世代Opteronは、現在のOpteronよりも進んだ32nmプロセスで製造されるが、Bulldozerモジュールが4つで、CPUコアとしては8つ搭載されることになる。このデザインは、新しいアーキテクチャへの移行ということで、積極的にCPUコアを増やさずに、安定したCPUをリリースするということなのだろう。

 パフォーマンスに関しては、実際に出てくるまで何ともいえないが、AMDでは、同じ消費電力のOpteronよりも50%ほどの性能の向上が見込まれると説明している。

 また、Bulldozerモジュールが必要とするゲート数も、OpteronのCPUコア2つ分から比べると少なくなるため、同じ大きさのCPUダイに、多くのBulldozerモジュールが搭載できるだろう。

 実際、2012年には同じ32nmの製造プロセスでありながら、Bulldozerモジュールを5つ(CPUコアとしては10個)搭載したOpteronが計画されている。


Opteronは、2011年に、6/8CPUコアのValenciaと12/16CPUコアのInterlagosがリリースされる予定。両方とも、BulldozerアーキテクチャのCPUだ。なお、InterlagosはMCM技術(後述)を使って、1つのCPUパッケージに2つのCPUを搭載しているBulldozerアーキテクチャのCPU写真。たぶん、デスクトップ用のZambeziと思われる。8CPUコアだが、写真からは4つのユニットしかない。これはBulldozerモジュール1つで2つのCPUコアとしてカウントされているからだ

 

2012年には40個のCPUコアを持つサーバーが登場

 AMDでは、2010年にリリースしたOpteronから、ビジネス戦略を変更して、2ソケットと1ソケットのサーバーに注力している。4ソケット向けのCPUは、2ソケット製品を流用するようにして、高額な4ソケット向けCPUは製造しないようにした。

 しかし、これではIntelのXeon 7500番台のような4ソケット向けのCPUと比べると、AMDのサーバーではパフォーマンスが見劣りする。そこで、MCM(Multi Chip Module)技術を使い、1つのCPUパッケージに2つのCPUを搭載した。これにより、2ソケットのAMDサーバーは、実質4ソケットサーバーのパフォーマンスを得ることができる。

 ただし、MCM技術で2つのCPUをパッケージングするため、CPUパッケージ(G34ソケット)は非常に大きなモノになってしまう。また、メモリインターフェイス、IOインターフェイスとなるHyper Transportは、それぞれのCPUから出てくるため、G34ソケットのピン数は1944ピンという膨大なピン数になっている。

 2011年にリリースされるBulldozerアーキテクチャのOpteronも、全く同じビジネス戦略が引き継がれる。G34ソケット向けには、Opteron 6200(コード名:Interlagos)は、12CPUコア(3 Bulldozerモジュール×2)と16CPUコア(4 Bulldozerモジュール×2)がリリースされる。

 また、シングルCPU用のソケットC32向けには、Opteron 4200(コード名:Valencia)が用意されている。Opteron4200は、6コア(3 Bulldozerモジュール)、8コア(4 Bulldozerモジュール)となる。

 2012年には、Bulldozerモジュールの改良を行い20コア(5 Bulldozerモジュール×2)のTerramar(コード名)、10コア(5 Bulldozerモジュール)のSepang(コード名)をリリースする予定にしている。

 2012年のTerramarとSepangに関しては、G34とC32ソケットではなく、新しいソケットになる可能性が高いといわれている。


サーバー用CPUは、2011年に6/8コアのValencia、8/12/16コアのInterlagosがリリースされる。Interlagosは、ValenciaのCPUを2個MCMで搭載したモノだ。2012年には、10コアのSepang、20コアのTerramarがリリースされるValenciaはC32ソケット、InterlagosはG34ソケットが使われている。このため、現在リリースされているOpteron4100/6100サーバーでValenciaやInterlagosは使用することができる。たぶんBIOS関連のアップデートは必要になるだろう
サーバーCPUのFusion APU化は、2013年以降になるだろう

 また、将来的には、サーバーCPUも、デスクトップCPUと同じく、CPUとGPUを融合させたFusion APU(Accelerated Processing Unit)化していくという考えを示している。ただ、2012年のTerramarやSepangでは、GPUとの融合は行われない。

 APU化に関しては、GPGPUのプロセッシングパワーを利用するサーバーアプリケーションが増えてきた段階で行うことになるだろう。現在の整数演算処理が中心のサーバーアプリケーションでは、GPGPUの性能は、ほとんど重要視されていない。GPGPUが必要とされるHPCなどの用途には、外付けのGPUカードを使用すればいいという考え方だ。このため、当分はGPUを融合させるよりも、Bulldozerモジュールの数を増やし、CPUコア数をアップしていった方が、メリットがあると考えているのだろう。

 ちなみに、Bulldozerアーキテクチャは、デスクトップCPU(コード名:Zambezi)でも採用され、2011年の夏ごろのリリースとなる。

 2012年のデスクトップ向けのBulldozerアーキテクチャのCPUとしては、8コアのコード名 Komodoがリリースされる。Komodoに関しては、GPUを融合させたAPUになるのかは明言されなかったが、メインストリーム向けのCPU(コード名:Trinity)は、2もしくは4CPUコアとGPUを搭載したFusion APU化される。

 このことから考えれば、デスクトップ用CPUでBulldozerアーキテクチャをAPU化して、サーバー分野でのGPGPUの要求が高まれば、2013年以降にサーバー向けCPUもAPU化していくという計画なのだろう。

Bulldozerアーキテクチャは、2012年には拡張版がリリースされ、2013年にはBulldozer2といわれている次世代BulldozerアーキテクチャのCPUがリリースされるBulldozerアーキテクチャのデスクトップ用CPUのロードマップ。2011年には、ハイエンドのデスクトップCPUとしてZambeziがリリースされ、2012年にはミッドレンジ、ハイエンドのCPUがBulldozerアーキテクチャになる。2012年のミッドレンジのデスクトップCPU TrinityはGPUと融合したFusion APUになる計画だ2012年にリリースされるTrinityは、コア数を落として、ノートパソコンにも導入される

 

Bulldozerアーキテクチャで拡張された機能

Valencia/Interlagosは、現在のOpteron 4100/6100と同じTDPを目標として開発されている。ソケットも同じため、現在のOpteronサーバーにCPUを差し替えるだけで動作する
浮動小数点コアは、128ビット幅のFMACユニットが2つある。128ビット浮動小数演算なら2つ同時に処理できる。AVXなどの256ビット浮動小数点演算は、128ビットFMACを2つ合わせて、256ビットにして処理する

 Bulldozerアーキテクチャでは、IntelがWestmere世代で追加したAES暗号のアクセラレーションを行うAES-NI命令(PCLMULQDQ命令を含む)、Sandy Bridge世代で採用したAVX命令がサポートされる。もちろん、SSE命令もSSSE3、SSE4.1/SSE4.2もサポートされている。

 同じ命令セットがサポートされたことで、もしかすると仮想環境を移動するVMotionやLive Migrationにおいて、IntelサーバーからAMDサーバーへの移行が可能になるかもしれない。

 このほか、AMD独自の拡張命令としては、「XOP (eXtended Operations)」、「FMA4 (four-operand Fused Multiply/Add)」の命令群がある。これらの命令群は、当初SSE5としてAMDが独自に命令セットを拡張していこうと考えていた。しかし、IntelがAVX命令を提唱したため、AMDでは互換性を考えて、AVXと互換性がないSSE5を引っ込め、AVXに対応した。SSE5の多くの命令は、AVXでもサポートされていたが、一部AVXでサポートされていない命令があったため、その部分をAMD独自拡張として残した。

 ただ、IntelもSandy Bridgeの次世代Ivy Bridge(2012年リリース予定)では、AVX命令の拡張を計画しているため、今後AMD独自拡張が積極的にサポートされていくのかは疑問が残る。

 仮想化関連の命令セットは、新たな追加はないようだ。一応AMD-Vで必要なモノは、搭載されたということだろう。ただし、Intelが追加しているTXT(Trusted Execution Technology)と同じような機能が今後追加されるかもしれない。

 Bulldozerアーキテクチャでは、メモリコントローラの性能向上と機能拡張されている。今回新たにメモリコントローラを設計し直すことで、メモリアクセスの性能を30%も向上させている。

1600MHz DDR3、LR-DIMMのサポートなど以外に、メモリコントローラの性能向上により、Opteron 4100/6100に比べると50%も性能が向上している

 また、高速なDDR3 1600MHzをサポートすることでも性能が向上している。従来製品のOpetron 6100では、DDR3 Register 1333MHzのメモリを採用していた。BulldozerアーキテクチャのOpteron 6200/4200では、DDR3 Register 1600MHzがサポートされる(使用できるメモリ数は減るが、Unbufferedのメモリも使用可能)。さらに、消費電力を減らすために、1.25VのLV-DDR3メモリもサポートされている。

 最も注目するのは、LR-DIMM(Load Reduced Dual In-Line Memory Module)がサポートされたことだ。LR-DIMMは、メモリバッファでI/Oバスラインをバッファリングすることで、I/Oバスの負荷を減らしている。これにより、DIMMの大容量化と高速化を同時に実現した。ちなみに、LR-DIMMは、JEDECの規格となっているため、IntelもSandy Bridge世代のサーバーCPUからはサポートを表明している。

 Register DIMM(R-DIMM)では、1CPUあたり最大8枚のDIMMしか搭載できなかった。しかし、LR-DIMMでは、最大12枚のDIMMが搭載できる。

 エルピーダメモリが開発したLR-DIMMは、1枚で32GBもの大容量メモリとなっている。これを2ソケットのOpteron6200で使用すれば、最大48DIMM×32GBの約1.5TBもの巨大なメモリを持つサーバーが実現する。

 LR-DIMMのコストに関しては、エルピーダメモリがサンプルを11月に出荷した段階なので、まったく分からない。ただ、量産に関してはエルピーダメモリが2011年3月から量産出荷を開始する予定だし、HynixやMicronなどのメモリメーカーも2011年には量産していく予定だ。

 また、省電力機能としては、電力をより消費しないC6ステートがサポートされる。Intelのようにコアごとにパワーをオフにして、リーク電力を抑える仕組みに関しては、採用されるかは明言されていない。しかし、サーバーでも省電力性が重要視されてきている状況を考えれば、CPUコア/Bulldozerモジュールごとのパワーコントロールが採用される可能性は高いと思う。

 さらに、Phenom II X6で採用された、CPUコアの動作クロックを消費電力の状況に応じて、定格以上のクロックに引き上げるTurbo Core機能が採用される。Phenom II X6では、1段階のクロックアップしかできなかったが、今回のTurbo Coreでは、複数段階のクロックアップが行えるようになっている。

 

 Bulldozerアーキテクチャに関しては、概要は発表されているが、より詳細なアーキテクチャや性能などのデータに関しては、今後発表されていくのだろう。

 BulldozerアーキテクチャのOpteronのリリースは、正式には2011年第3四半期と表明されている。ただし、サーバーメーカーには、サンプルチップがすでに渡っていて、テストを開始しているようだ。また、現在のスケジュールでは、2011年の第2四半期には量産を開始する予定になっている。

 BulldozerアーキテクチャのOpteronは、プライベートクラウドや仮想化によるサーバーの統合を考えている企業にとっては、気になるCPUになるだろう。

関連情報