Enterprise Watch
最新ニュース

エンタープライズ視点でみたIDF上海レポート【前編】

Nehalemでサーバーはどう変わるか

 4月2日から2日間、中国・上海で開催されたIntelの開発者向けのセミナー「Intel Developer Forum 2008(以下、IDF上海)」では、今年の秋に正式発表される次世代マイクロアーキテクチャの「Nehalem(開発コード名:ネハーレン)」に関して、さまざまなセッションが行われた。今回は、Nehalenを中心に、サーバー用CPUの動向を紹介する。


オクタルコアにまで拡張されるNehalem

Nehalemのダイ写真。CPUコアが4つ並んでいる
 インテルでは、2008年秋頃に、現在のXeonで使用されているCPUアーキテクチャ「Coreマイクロアーキテクチャ(以下、Core MA)」の次世代アーキテクチャとなるNehalemアーキテクチャのCPUをリリースする。Nehalemは、サーバー/ワークステーション(以下WS)、デスクトップ、ノートPCまで、幅広い製品に応用される。

 Nehalemの最大の特徴は、CPUコアがモジューラ化されていることだ。これにより、Core MAでは、CPUコアを2つずつ拡張しなければならなかったが、NehalemではCPUコア1つずつ拡張できる。

 Core MAでもCPUコアを2個単位で拡張できるため、Nehalemとはそれほど違わないのではと思う人もいるだろう。しかしCore MAでは、クアッドコアCPUを作るためには、2個のCPUコア2つを1つのパッケージに収めていた。つまり、Core 2 Duo CPU 2個を1パッケージに収めていたといえる。このため、クアッドコアCPUでは、冗長な部分があったり、CPUコア数が増えていくとCPUデザインとしても問題が起こってくる。そこで、Nehalemでは、CPUコアをデザインしなおして、CPUコアやその他周辺回路をモジュール化して、マルチコアCPUを簡単に設計できるように再デザインしている。

 実際Nehalemでは、2009年にはCPUコアが8つのオクタルコアCPUをリリースすることを明言している。さらに、ノートPC用には、NehalemのデュアルコアCPUがリリースされる予定だ。


Nehalemでは、CPUをモジュール化して、CPUコアを簡単に追加できるアーキテクチャになっている Nehalemアーキテクチャでは、サーバー/ワークステーション、デスクトップ、モバイルまで1つのCPUアーキテクチャがカバーする。各セグメントの違いは、CPUコアの数

Nehalemのアーキテクチャ

Nehalemアーキテクチャで追加された機能
 Nehalemは、Core MAをベースとしているため、Core 2 Duoと同じように複数のマイクロ命令を1つにまとめて実行できる機能(μOP Fusion)がある。ただし、以前のCore MAでは、64ビット環境の場合、μOP Fusion機能が動作しなかったが、Nehalemでは64ビット環境でも動作するようになった。これにより、64ビット版のWindows Server 2008のパフォーマンスもアップするとおもわれる。

 また、内部のチューニングもいくつか行われている。

 例えば、分岐予測の機能強化、Loop Stream Detector(LSD:ループを繰り返す命令群を、すでにフェッチしてある部分で繰り返すことで、パフォーマンスをアップ)、Translation Lookaside Buffer(TLB)を2階層化することでメモリのアドレシングを高速化している。これらの命令は、Core MAに機能追加されているため、大幅なアーキテクチャ変更というわけではなさそうだ。

 SSEに関してもCore MAのSSE 4.1から、Nehalem世代でSSE 4.2に機能アップされている。SSE 4.2では、SSE 4.1から7つの命令セットが追加されている。

 例えば、XMLの解析を高速化する「STTNI」(String&Text New Instructions)、CRC32処理(iSCSIなどで使われているエラーチェック)、POPCNT(データマッチを高速に処理する命令)などが追加されている。これらの機能は、サーバーにとっては、非常にメリットのある命令追加だが、OSやアプリケーションがSSE 4.2に対応してくれないと、Nehalemのメリットを生かし切れない。

 将来的には、SSEはAVX(Intel Advanced Vector Extensions)というまったく新しい命令セットに変更されることが発表されている。AVXでは、演算幅を128ビットから256ビットに拡張することで、ベクター型の浮動小数点演算などを高速に処理できるようになる。


Loop Stream Detectorにより、ループの効率化が図られている
クアッドCPUコア化やアーキテクチャのチューニングにより、Core MAよりも33%以上も命令の並列化がされている

 エンタープライズにとって、注目されるのは、仮想化の機能強化だろう。仮想化を高速に動作させるVirtual Processor ID(VPID)、Extended Page Table(EPT)などの機能も追加されている。これにより、現在のXeonよりも高速に仮想環境が動作するようになる。

 もう一つエンタープライズにとってメリットがあるのが、SMT(Simultaneous Multi-Threading)がNehalemでサポートされたことだろう。SMTは、以前のPentium 4で採用されたHyper Threading(HT)と同じような仮想マルチスレッド技術だ。この技術により、1つの物理CPUコアを仮想的に2つのCPUコアとして動かすことができる。つまり、クアッドコアCPUのNehalemは、仮想的に8コアのCPUとして動作する。

 サーバー/WSでは、OSやアプリケーションのマルチスレッド化が進んでいるため、SMTがパフォーマンスに与えるメリットは計り知れないものがある。ちなみに、NehalemのSMTが、HTと名付けられていないのは、純粋にマーケティングの問題からだ。機能的には、HTとほとんど変わらない。


ハードウェアデザインが変わるNehalem

 Core 2 Duoでは、CPUコアのキャッシュは、L1、共用のL2だけだったが、NehalemではCPUコアそれぞれにL1(命令、データがそれぞれ32KB)、L2(256KB)、さらにCPUコアで共有するL3キャッシュとして8MBを持っている(クアッドコアの場合)。ただし、L3キャッシュは、CPUコア数によって増減すると思われる。オクタルコアの場合は、L3キャッシュの容量も多くなり、デュアルコアのノートPC用のNehalemは、L3キャッシュの容量は少なくなるだろう。

 Nehalemで最も大きな変更点としては、メモリコントローラがCPUに内蔵されることだろう。今までのXeonでは、チップセット(MCH)でメモリをコントロールし、CPUとMCHの間は、FSBといわれるバスで接続されていた。しかし、この方法では、メモリのレイテンシ(遅延)が大きくなり、CPUの動作速度やCPU内部にあるキャッシュメモリとの速度の違いが大きくなってきていた。

 そこで、Nehalemでは、CPUにメモリコントローラを内蔵することで、直接CPUがメモリにアクセスできるようにしている。これに伴い、サポートされるメモリも現在のFB-DIMMからDDR3へと変更されている。また、サーバー/WS向けのNehalemでは、Registerd/Unbufferedの両方をサポートすることになる。

 Nehalemでは、メモリチャンネルとして3チャンネルをサポートしている。これにより、25.6Gb/秒のメモリ帯域を持つシステムになる(最大容量24GB)。

 サーバー/WSでのDDR3メモリ(DDR-3 800/1066/1333MHz)の採用は、メモリコストの大幅な低下につながるだろう。特に、ボリュームがでるデスクトップのメモリとほとんど同じであれば、サーバーのメモリも安くなる。今後、仮想化などにより大量のメモリを使用するようになれば、メモリのコスト低下は大きなメリットになるだろう。

 また、MetaRAM社が開発したMetaRAMというテクノロジーを利用すれば、1枚のDIMM上に、今まで以上の容量のメモリモジュールを製造できる。現在、HynixなどのメモリメーカーがDDR3用のMetaRAM RDIMMの製造を始めている。これを使えば、8GBのDIMMを作ることができる。実際、IDFの展示会場でデモされていた。

 また、CPUそれぞれが、メモリを持つために、2ソケット以上のマルチプロセッサシステムでは、メモリアーキテクチャがNUMA(ヌーマ:Non Uniform Memory Access)になる。

 システムとして動作するときに、NUMAでは、それぞれのCPUが管理しているメインメモリを参照する必要がある。これは、現在のXeonのようなSMPとはまったくメモリアーキテクチャが異なる。

 ただし、AMDのOpteronがNUMAアーキテクチャを採用しているため、Windows Server 2008もNUMAアーキテクチャをサポートしている。


Nehalemでは、CPUにメモリコントローラを内蔵している。このため、2ソケットのシステムでは、NUMAアーキテクチャになる
Nehalemでは、3チャンネルのメモリチャンネルを持っている。さらに、メモリはDDR3をサポートしている
Nehalemのメモリでは、32GB/秒のパフォーマンスを持っている

FSBからQuick Path Interconnect(QPI)へ

Nehalemの4ソケットシステムでは、このようにQPIが4方向に出てくる
 Nehalemでは、メモリコントローラを内蔵したり、メモリアーキテクチャがNUMAに変更されたりしたことで、今までのFSBバスという仕組みではなく、Quick Path Interconnect(QPI)で周辺チップ(MCHからIOHへと名称変更)と接続される。

 QPIは、PCI Expressと同じようなポイントツーポイントのインターフェイスだ。QPIは、上り下りそれぞれに20ビットずつのバンド幅を持っている。これにより、25.6GB/秒のデータレートを実現している。

 QPIは、IOHとの接続だけに利用されるわけではない。Nehalemでは、メモリコントローラを内蔵しているため、それぞれのCPUにメインメモリを持っている(NUMAアーキテクチャ)。このため、CPU同士で高速な通信ができないと、それぞれのメインメモリの情報をやりとりできない。そこで、2ソケットのマルチCPU用のNehalemでは、QPIを2本持っている。

 1本はIOHとの接続のため、もう一本はCPU同士の接続のためだ。また、4ソケットのシステムでは、Nehalemには4本のQPIが必要になる。それぞれのCPUをポイントツーポイントで接続することになる。

 4ソケット以上のNehalemではQPIがどうなるかは、発表されていない。しかし、どんどんとQPIを増やして、バリエーションが増えていくとは思えない。このため、4ソケットを1単位として、クラスタを組んで、大規模なシステムが構築されると思われる(現在の大規模なXeonシステムとほぼ同じ)。


Nehalemのパフォーマンスは?

IntelとVMwareは、Intel Virtualization Technology FlexMigrationにより、異なるプラットフォームでも仮想環境をリアルタイムに別の物理環境移行するVMotionが利用できるようになる
 今回のIDFでは、Nehalemのパフォーマンスに関しては、詳細な数字は出てこなかった。しかし、現在のXeonに比べると、確実にパフォーマンスは上がっている。また、サーバー/WSでは、クアッドコアCPUが標準となり、SMTサポートにより、8つのスレッドを処理できるようになった。メモリに関しても、大幅にバンド幅がアップしている。

 これらのことを考えれば、現在のXeonから比べると高いパフォーマンスが予測される。また、サーバー用途にとっては、仮想化関連の命令が強化されていることは、今後のOSの仮想化にとっては、非常に大きなメリットがあるだろう。Intelでは、仮想化において40%ものパフォーマンスアップが見込めると話している。これ以外にも、SSE 4.2はXML処理、CRC32のサポート(エラーチェック)などは、サーバーにとってはパフォーマンスをアップする一因となるだろう。

 しかし、これらの機能は、OSやアプリケーションでの対応が必須となるため、Nehalemのパフォーマンスを活かしきるソフトウェア環境が整うには、もう少し時間がかかるだろう。ただ、Nehalemの性能は、非常に期待を持たせるものだ。

 このため、今年サーバーの購入を検討しているユーザーは、もう少し待ってNehalemを検討してもいいのではないだろうか? さすがに、2008年にNehalemサーバーを導入するのはお勧めしないが、2009年になればいろいろなことが落ち着き導入しやすくなるだろう。また、メモリコストの低下ということもNehalemのメリットの一つとなるかもしれない。今後、仮想化を考えれば、大容量のメモリが必要になる。デスクトップ用のメモリと同じようなコストで入手できることは、仮想化にとっては大きなメリットだろう。

 Intelでも仮想化に関して非常に力をいれており、IDF上海の基調講演でもVMwareとの連携をアピールしていた。現在、VMwareが提供しているVMotion機能(仮想環境が動作した状態で、別のサーバーに移行する機能)では、同じシステム間でしか仮想環境を移行できない。インテルでは、VMwareと共同でIntel Virtualization Technology FlexMigrationというソフトウェアスタックを提供することで、CPUの異なるシステムでもVMotionが行えるようにした。


Nehalemでは、仮想化機能の強化により、仮想環境が40%以上高速に動作する
Extended Page Tables(EPT)により仮想メモリと物理メモリの変換が高速に行える

ItaniumもNehalemと同じようなシステムへ

Itaniumの次世代CPU「Tukwila」では、クアッドコアがサポートされている。命令コードはIA64だが、CPUのデザイン方針としてはNehalemに似ている
 IDF上海では、Itaniumプロセッサに関してもいくつか発表があった。次のItaniumプロセッサ「Tukwila(開発コード名:タックウイラ)」は、クアッドコアとなり、Nehalemと同じようにSMTをサポートする。これにより、1つのCPUで、仮想8CPUコアとして動作することになる。キャッシュメモリは、トータル30MBに上る。Nehalemと同じく、QPIをサポートし、メモリコントローラもCPUに内蔵。次世代のItaniumプロセッサは、Nehalemと同じような構造を採用することになる。大きな違いとしては、CPUの命令セットが、Intel64(x86)ではなく、IA64ということだ。

 Itaniumプロセッサは、メインフレーム・UNIXからの移行用として、今後も大規模なシステムで使われ続けることになるだろう。ただ、Nehalem系プロセッサのように、多くのサーバーに搭載されるマスマーケットのCPUではなく、限られた用途のサーバー用CPUとして利用されるだろう。



URL
  Intel Developer Forum
  http://www.intel.com/idf/


( 山本 雅史 )
2008/04/15 00:00

Enterprise Watch ホームページ
Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.