x86サーバーでメインフレーム並みの信頼性を実現するXeon 7500番台


 3月31日に発表されたインテルのXeon 7500番台は、Xeon 5600番台とは異なり、メインフレームやUNIXサーバーなどで利用されているItaniumと同じような高い信頼性を実現した。今回は、今後の仮想化環境にも大きな影響を与えるXeon 7500番台を紹介する。


Nehalem世代のXeon 7500番台

Xeon 7500番台は、ミッションクリティカルを意識したCPUだ

 Xeon 7500番台は、8コアを実現したCPUだ(モデル別に8/6/4コアがある)。Hyper Threadingもサポートしているので、仮想的に16スレッドを同時に実行することもできる。非常にパフォーマンスの高いCPUだ。

 Xeon 7500番台は、インテル製チップセットの利用で4ソケットサーバーシステム(4ソケットシステムを1つのノードとすることで8ソケットサーバーも可能)、他社製チップセットの利用で最大256個のCPUを搭載したサーバーを構築することも可能だ。

 Xeon 7500番台は、先日発表されたXeon 5600番台(開発コード名:Westmere-EP)とは異なり、Xeon 5500番台と同じ45nmプロセスで製造したNehalem世代のCPUになる。そのため、Westmere世代のXeon 5600番台ではAES-NI命令などが追加されているが、Nehalem世代のXeon 7500番台ではAES-NI命令やTXT(Trusted Execution Technology)はサポートされていない。また、32nmプロセスのWestmere世代では、製造プロセスが進むことで、省電力化や低発熱化が行われているが、Xeon 7500番台は、8コアを実現しながら、一世代古い製造プロセスが使用されているため、TDPは130Wとなっている。


Xeon 7500番台は、x86サーバーにおいて最高のパフォーマンスを出している。これらのベンチマークが、パフォーマンスの高さを表しているXeon 7500番台は、最大256ソケットまで拡張できるインテルのチップセットを使えば、8ソケットのサーバーが構築できる。これ以上のソケット数のサーバーを作るには、サードパーティが開発しているノードコントローラーを使う必要がある

 Xeon 7500番台は、CPUの1次キャッシュとしては64KB(命令キャッシュ32KB+データキャッシュ32KB)、2次キャッシュとして256KBを持っている。このあたりは、Xeon 5500番台(開発コード名:Nehalem-EP)と変わらない。ただし、3次キャッシュメモリの構造が、Xeon 5500番台とは異なる。

 Xeon 5500番台は、4つのコアで共有する3次キャッシュメモリとして8MB用意されていた(Xeon 5600番台では、3次キャッシュとして12MBになっている)。Xeon 7500番台は、8つのコアを持っているため、3次キャッシュメモリを24MBに拡張している。3次キャッシュメモリの構成が、Xeon 5500/5600番台とは異なる。

 Xeon 7500番台の3次キャッシュメモリは、CPUコアごとの3MBの3次キャッシュメモリを持ち、各CPUコアの3次キャッシュメモリをリング状のバスで接続している。これにより、トータル24MBの3次キャッシュメモリを構築している。Xeon 5500/5600番台のように、すべてのコアがフラットに共有できる構成とは異なる。

 このほか、Xeon 7500番台では、RAS(Reliability、Availability、Serviceability:信頼性、可用性、保守性)機能が用意されている。


Xeon 7500番台は、1996年にリリースされたXeonと比べて20倍のパフォーマンスを示しているXeon 7500番台のブロック図(IDF 2009より)Xeon 7500番台で採用されたRAS機能は、QPI、I/O、メモリ、CPUなどが対象になっている

大きく変わったメモリインターフェイス

Xeon 7500番台では、メモリのインターフェイスはシリアル(SMI)になっている。SMIにSMBチップを接続して、シリアル/パラレル変換をして、DDR3メモリを接続している(IDF 2009より)

 Xeon 7500番台では、メモリインターフェイスがこれまでと大きく異なっている。使用できるメモリはDDR3 Registeredだが、CPUからはシリアルインターフェイス(SMI:Scalable Memory Interface)が出力されており、SMB(Scalable Memory Buffer)というチップを経由して、パラレルインターフェイスのDDR3メモリを接続する。

 Xeon 7500番台では、4本のメモリインターフェイスが出力されており、1本あたりSMBを経由して2本のパラレルメモリチャンネルで構成されている。このパラレルメモリチャンネルには、2本のDIMMを挿すことができる。つまり、合計16本のDIMMを挿せるということだ。16GB DIMMを挿せば、1CPU当たり256GBのメモリを搭載できる。4ソケットサーバーなら、32物理コア(HTで64スレッド)、メモリは1TBとメインフレームに匹敵するサーバーが実現する。

 パラレルメモリで8チャンネルものメモリインターフェイスを直接CPUから出すのは、ピン数からいって無理がある。Xeon 7500番台でメモリインターフェイスがシリアルのSMIがサポートされたのは、こういった理由で、CPUからシリアルメモリインターフェイスを出し、SMBでパラレルメモリインターフェイスに変換したとおもわれる。

 将来的には、メモリ自体がシリアルインターフェイスを採用し、より高速化していく必要があるだろう。ただ、メモリ規格は、インテル1社でかじを切っても、うまくいかないので(RDRAMという苦い思い出がある)、多くのメモリベンダーがシリアルメモリを出荷しないと、パラレルメモリからシリアルメモリへの移行は進まないだろう。

 なお、Xeon 7500番台で使用できるメモリは、DDR3 1066MHz、978MHz、800MHzの3種類。メモリクロック数は、インターコネクトのQPI(QuickPath Interconnect)のクロック数に左右される(6.4GT/sのQPIだと1066MHzのメモリ、5.8GT/sのQPIだと978MHzのメモリ、4.8GT/sのQPIだと800MHzのメモリ)。

 QPIとSMI(Scalable Memory Interface)のクロック数が同じなのは、SMI自体がQPIの物理インターフェイスをそのまま流用しているからだ。上位のプロトコルとしては、QPIとして公開しているモノではなく、インテルが独自に開発したメモリアクセス専用のプロトコルで構築されている。SMIの実体は、メモリ専用のQPIなのかもしれない。つまり、物理インターフェイスとしてQPIで接続されたSMB(Scalable Memory Buffer)を経由して、パラレルメモリが接続されるという仕組みになっているようだ。

 Xeon 7500番台では、1CPUあたり4本のQPIを持っている(4ソケットサーバー構成時に、ほかの3つのCPUと接続するチャンネルと、I/Oチップ向けのチャンネルの合計4本)。


高い信頼性を実現するRAS機能

Xeon 7500番台では、20種類を超えるRAS機能に対応している

 Xeon 7500番台の特徴として、RAS(Reliability=信頼性、Availability=可用性、Serviceability=保守性)機能がある。

 RAS機能は、CPUやメモリ、I/Oなどのモジュールにトラブルが起こった際、システム全体をダウンさせずに動かし続けられるようにする機能だ。これにより、24時間365日動かし続けなければならないサーバーでトラブルが起こったとしても、パフォーマンスは落ちるもののサーバーを動かし続けることができる。また、故障したモジュールは、システムから切り離され、正常に動作するモジュールに交換することで、再度動作するようにできる。ただし、OSやサーバー自体の設計とも関連するため、Xeon 7500番台を使ったサーバーなら必ずRAS機能が利用できるとは限らない。昨年の秋にサンフランシスコで開催されたインテルの開発者セミナー「IDF 2009」では、VMwareのESX、マイクロソフトのWindows Server 2008 R2などのOSでRAS機能のデモが行われた。このほか、NovellのSUSE Linux、Red HatのRed Hat Enterprise Linuxなども、RAS機能をサポートする予定だ。


今までのXeonでは、1ビットのメモリエラーが起こった場合、ECCなどでエラーを修正した。しかし、これ以上のエラーが起こった場合は、システムダウンするしかなかったx86で初めて採用されたマシン・チェック・アーキテクチャ・リカバリーを使えば、エラーを検出して、エラーが起こったハードウェアを切り離して、リカバリーを図る。これによりエラーが起こってもシステムダウンは起こらないWindows Server 2008 R2では、Windows Hardware Error Architectureにより、Xeon 7500番台のRAS機能をサポートしている

 Xeon 7500番台には、Corrected Machine Check Interrupts(CMCI)とRecoverable Machine Check Architecture(MCA)という機能がある。この機能を使えば、CPUコアにトラブルが起こった場合でも、トラブルを検知して、CPUを再設定(8個あるCPUコアを7個で動かす)して、システムダウンを起こさずにシステムを動かし続けることができる。

 Xeon 7500番台のRAS機能は、QPI、メモリ、I/O HUBなどでも有効だ。ただし、I/Oチップに関しては、OSをブートするHDDなどのドライブやネットワークカードなどが関係するため、サーバーの設計や構成が重要になる。サーバーベンダーが、RAS機能に対応したシステムを設計すれば、高い可用性を実現するサーバーが提供できるということだろう。Xeon 7500番台では、RAS機能のベースを提供したCPUともいえる。

 メモリの場合は、Xeon 7500番台のSMI(Scalable Memory Interface)ごとに、切り離しを行うことができる。このため、1枚のDIMMにトラブルが起こっても、SMB(Scalable Memory Buffer)ごと切り離される。


ハイパーバイザーがサポートするRAS機能

 Xeon 7500番台のRAS機能は、ハイパーバイザー上ではどのようにサポートされるのだろうか?

Xeon 7500番台では、メモリ、CPU、QPI、I/Oなど4つのRAS機能が用意されている。RAS機能を実現するために、Xeon 7500番台では命令セットが拡張されている

 Xeon 7500番台のRAS機能は、ハードウェアエラーをハイパーバイザーに知らせる機能を持つ。しかし、実際のリカバリーはハイパーバイザー自身で行う必要がある。

 RAS機能をハイパーバイザーでサポートするには、エラーが起こったハードウェアを切り離し、別のCPUコアやメモリに仮想マシンを移行する必要が出てくる。また、リソース管理という面からは、移行できるだけのハードウェアリソースがあるのかどうかということも問題になってくる。

 RAS機能をきちんとサポートするのは、ハイパーバイザーにとっては大きな改良になる。しかし、RAS機能をサポートすることで、x86アーキテクチャベースのハイパーバイザーが、メインフレームと同じような信頼性を獲得すできる。RAS機能をサポートしたサーバー、ハイパーバイザーの両方が揃うことで、仮想化されたサーバーがミッションクリティカルな用途でも安心して利用できるようになるだろう。

 VMwareのESXに関しては、RAS機能のサポートが進められているが、マイクロソフトのHyper-Vに関してはハイパーバイザー部分でのRAS機能サポートは明言されていない。Windows Server 2008 R2上でのRAS機能サポートは表明されているため、将来的にはHypre-VでRAS機能がサポートされることになるだろう。


Itaniumと共通のチップセットを採用

 Xeon 7500番台では、RAS機能をサポートするために、Boxboro(開発コード名)というI/O HUBチップが使用される。このBoxboroは、PCI Express 2.0を36レーン(x8が4本、x4が1本)、ICHを接続するESI(Enterprise South bridge Interface)を1本サポートしている。

 このBoxboro I/O HUBチップは、2月に発表されたItanium 9300番台(開発コード名:Tukwila)とほとんど同じモノが使われている。つまり、サーバーメーカーは、Itanium 9300番台とXeon 7500番台のサーバーをほとんど同じ設計で開発できるというわけだ。とはいえ、まったく同じチップが使われるわけではなく、それぞれのCPU専用のチップとなっている。ただし、基本設計は同じため、Boxboroの派生品と考えて問題ないだろう。

 サーバーベンダーにとっては、メインフレームと同様に独自設計が必要だったItaniumサーバーが、Xeonサーバーと同じように設計できるのは、設計コストを抑えるという点で大きな意味がある。実際、インテルは、Xeon 7500番台と同じサーバー設計ができれば、Itaniumサーバーのコストも変わるかもしれないと考えているようだ。

 しかし、ユーザーやサーバーベンダーからみれば、Xeon 7500番台で、高いパフォーマンスが出せるサーバーが構築できるなら、何もItaniumである必要はない。多くのアプリケーションが存在するx86アーキテクチャの方が、メリットが大きいと考えるだろう。

 実際、富士通はXeon 7500番台を使ったミッションクリティカルサーバー「PRIMEQUEST」を発表している。発表会で富士通は、ItaniumからXeonへの移行を明言した。つまり、現状販売しているItaniumサーバーのサポートなどは継続していくが、2月に発表されたItanium 9300番台を使ったサーバーは開発しないとしている。

 こうなると、Itaniumサーバーはより特殊な領域やメインフレームでもハイエンドな分野へシフトしていくだろう。メインフレームクラスのサーバーもミッドレンジ以下は、x86アーキテクチャのXeonを使用することになる。

XeonおよびItaniumのロードマップ。Itaniumは、Itanium 9300番台のTukwilaの後に、Poulsonがリリースされ、その後新しいアーキテクチャに移行するとしている。Xeon 7000番台では、今年後半にはWestmere-EXがリリースされ、2011年にはSandy BridgeベースのXeonに移行する

 ミッションクリティカル分野にチューニングされたXeon 7500番台だが、半年後ぐらいには32nmプロセスを使用したWestmere-EX(開発コード名)のリリースも決まっている。Westmere-EXは、ASE-NI、TXTなどのサポートが行われる。

 最も注目されるのは、32nmプロセスに移行することで、3次キャッシュメモリの容量が増えたり、もしかするとCPUコアの数が10個や12個にアップする可能性もあることだろう。さらに、32nmプロセスを使うことで、CPU自体の消費電力が低下する。このようになれば、さらにItaniumを採用する理由もなくなってくる。もしかすると、Xeon 7500番台はItaniumに引導を渡す大きなターニングポイントになるCPUなのかもしれない。





(山本 雅史)

2010/4/5/ 00:00