8月22日から24日にかけてスタンフォード大学で開催されたHot Chips 22において、Intelはハイエンドサーバ用の次期プロセサである「Westmere-EX」を発表した。

現在のハイエンドプロセサは45nmプロセスで作られた8コアのNehalem-EX(Xeon 7500シリーズ)であるが、一世代先の32nmプロセスへの移行と、それに伴って8から10コアに増加させたという点がWestmere-EXの大きな改良点である。

このプロセサの開発はインドのバンガロールの設計チームが担当しており、Nagaraj氏が発表を行った。

IntelのWestmere-EXを発表するDheemanth Nagaraj氏

Westmere-EXのレイアウトであるが、昨年のHot Chips 21で発表されたNehalem-EXと同様に左右に半分ずつのコアを配置し、中央に3次キャッシュ(Last Level Cache:LLC)を配置する構造であるが、Nehalem-EXがかなり横長のチップであったのに対して、Westmere-EXでは正方形に近づいてバランスが良くなっている。

Westmere-EXではコア数は2個増加したがパッケージはNehalem-EXと同じであり、QPIの本数は4本、メモリバッファを接続するSMIは2チャネルで、グルーレスで8ソケットまでのシステムを構成できるなどの点は変わっていない。LLCの容量は発表では言及されなかったが、コアとの面積比率からみて、Nehalem-EXと同様にコアあたり3MBで、チップ全体では30MBと思われる。

Westmere-EXのフロアプランと主要な仕様

ということで、Nehalem-EXからの変更は比較的少ないとも言えるが、色々な点で改良が行われている。10コア化に伴いコア間の接続やメモリの性能を上げるための各種の改良と、コアの電源をオフにするC6、PC6ステートのサポート、そして2個のDRAMチップの故障まで救済できる高信頼化がWestmere-EXの主要な改良点である。

コア数が増えた分、コアあたりのQPIのバンド幅やメモリのバンド幅が減少する。現在は6.4GbpsのQPIやSMIの伝送速度を8Gbpsに向上との噂もあるが、今回の発表では速度向上が含まれているかどうかは明らかにされなかった。

一方、マイクロアーキテクチャ的にはスヌープ用のCA(Caching Agent Hub)のキューは48エントリから60エントリ、メモリコントローラのキューは32から48エントリへとコア数の増加より大きい比率で増強されトラフィックの増加に対応している。

また、メモリアクセスに関しては、次に述べるDirectory Assisted Snoopyという方式を採り入れている。

Directory Assisted Snoopyの説明図

あるコアでLLCのミスが発生すると、チップの左右の5コアずつを担当するCA1、あるいはCA2にメモリアクセス要求が送られる。この図の場合はCA1が担当で、要求されたアドレスを担当するメモリが繋がっているCPUチップのHA(Home Agent)にメモリ読み出し要求を送る。また、CA1はこれと並行して、同一チップ内のCA2と他のノード(CPUチップとメモリで構成される)との通信を司るNC(Node Controller)にスヌープ要求を送る。

今回、新しいのは、各ノードは自分のメモリのデータに加えて、それぞれのアクセス単位(キャッシュラインサイズ)のメモリが他のノードのキャッシュに格納され、内容が書き替えられているかどうかを示すディレクトリを持っている点で、ホームノードは要求されたデータに加えてディレクトリを読み出す。ここで、ディレクトリがそのアドレスのデータは他のノードのキャッシュには存在しない、あるいは、キャッシュには存在しても内容は書き換えられておらずホームノードのメモリにあるデータと同じという情報を返すと、HAは他のノードからの応答を待たずに、図の黄緑の線のタイミングでホームノードのメモリから読み出されたデータを要求元のノードのCA1に送り返す。

ディレクトリを持たない従来の方式では、CA2や他のノードのすべてのCAからの応答がHAに届かないと、他のノードのキャッシュに書き換えられたデータが存在しないことが確認できないので、メモリから読み出したデータの転送は図の下側の水色の線のタイミングになってしまう。ということで、Westmere-EXではディレクトリを持つことによって、他のノードに書き換えられたデータが存在しない場合は、メモリアクセスのレイテンシを短縮している。

もちろん、このような動作を可能とするためには、HAは他のノードからの書き込みのためのスヌープインバリデーション要求を監視してディレクトリに記入するという作業を行う必要がある。また、メモリアクセスのたびにデータに加えてディレクトリを読み出すのではDIMMのアクセス回数が増えてしまうので、ディレクトリのキャッシュをチップ内に持つなどの工夫がなされていると思われるが、今回の発表では、詳細についての言及はなかった。

消費電力に関しては、Westmere-EXでは、コアごとにパワーゲートを行い、使用していないコアのリーク電流をカットするC6ステートと、全部のコアがC6ステートとなった場合にはLLCやSMIなどの他のエージェントの電力も低減するパッケージアイドルステートPC6がサポートされている。クラウドなどのサーバはある程度のピーク負荷に対応できる処理能力を持つように作られているので、通常使用状態では、常に全コア、全CPUチップがビジーで動いているわけではなく、遊んでいるコアが存在する。また、時間帯や曜日などでも負荷の変動パターンがある。このため、C6、PC6ステートをサポートし、負荷が軽い場合には消費電力を低減できることはサーバの使用者側にとって大きなメリットである。

そして、メモリの信頼性に関しては72ビット幅のDIMMからのバースト長=4で読んだ288ビットを単位としてECCを行い、x4のDRAMを使う場合には2個のDRAMチップの故障までは訂正できる機能を備えており、1チップの故障しか救えなかったNehalem-EXに比べて信頼性が強化されている。いずれも派手な改良ではないが、着実な改良が行われておりサーバとしては意味のあるCPUであると言える。