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

Intelの15コアCPU「Ivytown」の3リングバス

2設計から派生するIvy Bridge製品ファミリ

 Intelは、これまで、PC向けCPUファミリ、DP(Dual-Processor)までのサーバー向けCPU、MP(Multi-Processor)向けサーバーCPUの3系統に異なる設計を行なっていた。しかし、22nmプロセス世代からは、この仕組みを大きく変え、PC向けとサーバー向けの2系統の設計へと収束させた。PC向けの基本CPU設計からPC向けCPUの全てのバリエーションを派生させ、同様にサーバー向けの基本CPU設計から全てのサーバーCPUを派生させる。

Ivytownのチョップアプローチ(PDF版はこちら)
Ivytownのプロセッサファミリ

 その結果、Intelは「Ivytown(アイビタウン)」の基本設計から3種類のダイ(半導体本体)を派生させることができるようになった。また、3種類のダイから、4~15コアまでのCPUコアとLLキャッシュ量とインターフェイスが異なるバリエーションを産み出している。

Ivytownのコア数とキャッシュ容量のバリエーション

 こうしたスケーラブルな設計が可能になったのは、IntelがCPU内部のインターコネクトにリングバスを採用しているからだ。Intelは2月の半導体カンファレンス「ISSCC(IEEE International Solid-State Circuits Conference)」で、Ivytownでのリングバスの構成の詳細を明らかにしている。

Ivytownの拡張性の要となるリングバス

 リングバスのインターフェイスであるリングストップは、各CPUコア+LLキャッシュスライスのユニットに1ペアずつ設置されている。上りと下りの双方向のリングに対するペアになったストップだ。また、QPIやPCI Express、ホームエージェントなどにもそれぞれ1ペアがある。Ivytownでは、このリングストップが絶妙に配置されており、リングの途中にスイッチを噛ませており、構成を変更できるようになっている。

リングバスの構成

 リングバスの構成は、Ivytownの10コア版のリングから見るとわかりやすい。10コア版では、双方向に二重化されたリングが、CPUコアと各ユニットの間を双方向に結んでいる。実際には、下の図よりリングストップは多いが、簡略化すると図のようになる。左回りと、右回りの2リングの、シンプルなリング構成だ。

10コアIvytownのリングバス(PDF版はこちら)

 これが、15コア版になると、リングは片方向が3リングとなる。面白いのは、リングの動作構成をスイッチで変更できることだ。「VRing0」オペレーションでは左回りリングが2つ、右回りリングが1となる。「VRing1」オペレーションでは逆に左回りリングが1、右回りリングが2となる。Ivytown 15コア版では、このリングの切り替えにより、各CPUコア間の接続を最適化できる。

リングの動作を変更可能

 しかし、この切り替えでも、変わるのはリングの経路の接続だけで、実は、各ユニットのリングストップには一切変更がない。CPUコアやI/O、ホームエージェントそれぞれのリングストップは、それぞれ固定されたペアのストップで、リングストップ部分の動作には変更がない。これは、10コア版と15コア版との比較でも同様だ。分かりやすくしたのが下の図だ。

15コアIvytownのリングバス(PDF版はこちら)

 15コア版でのリングのVRing0とVRing1の2つのオペレーションモードの違いは、スイッチを繋ぎ替えているだけに過ぎない。そして、15コア版と10コア版の違いは、このスイッチがあるかないかだけだ。スイッチは、15コア版にだけ存在する「リングチャネル」の部分と見られる。スイッチは、VRing0とVRing1の切り替えのためというより、10コア版のリングから15コア版のリングへの切り替えのために設置されたと考えられる。

 ちなみに、6コア版は、10コア版からCPUコアとLLキャッシュスライスのペアをリングバスストップごと4ユニット取り去ると派生させられる。この場合も、残ったユニットのリングバスの動作に変更を加える必要がない。この簡便さがあるため、Intelはリングバスにこだわると見られる、

6コアIvytownのリングバス(PDF版はこちら)

スヌープダイレクトリをメインメモリ上に取る

 Ivytownには、合計で105レーンのシリアルリンクが実装されている。40レーンのPCI Expressと、最大60レーンのQuickPath Interconnect(QPI)、それに4レーンのDMI(Direct Media Interface)だ。PCI ExpressはどのレーンもGen1/2/3対応で最大転送レートは8Gtpsとなる。QPIもIvytownでは6.4/7.2/8.0Gtps対応で、Westmere-EXの6.4Gtpsより高速化した。DMIは2.5/5Gtpsとなっている。

 下のスライドはIvytownのシリアルインターフェイスの構成だ。15コアのEX版には、さらに20レーン分のQPIが加わる。トランスミッタ(TX)とレシーバ(RX)がx2ずつペアになっており、QPIにはフォワーデッドクロックのブロックが挟まっていることがわかる。PCI Expressはx4レーン毎にクロックゲートできるようになっている。

Ivytownのシリアルリンク

 ちなみに、IntelはIvytownベースのXeon E7では、ダイレクトリベースのスヌーププロトコルを導入している。Intelは、元々QPIについて説明した時に、キャッシュコヒーレンシプロトコルについて、通常のスヌーピングのほかに、ダイレクトリベースのプロトコルもあると説明していた。下は2009年のHotChipsでのスライドだ。しかし、x86系CPUに導入されたのは、この世代になってからだ。

2009年のHotChips時のQPI説明スライド

 ダイレクトリはメインメモリ上に設けられており、スヌープトラフィックを軽減できる代わりにメモリアクセスが必要となる。ダイレクトリ参照をスキップすることもできる。Ivytown設計では、スヌープの制御を行なうホームエージェントはDRAMコントローラと接続している。

 IvytownのQPIは3リンクだが、チップセットとの接続はDMIになったため、3リンクをCPU間の接続に使うことができる。CPUソケット間のアクセスが1ホップなら4ソケット、2ホップなら8ソケットの構成が可能だ。

Xeon E7-8800/4800/2800 v2のCPU間接続

DDR3とメモリバッファチップに両対応する2667Mtpsのメモリインターフェイス

 IvyTwonは下位のサーバーからハイエンドサーバーまで同じ基本設計でサポートしている。そのため、DRAMインターフェイスはDDR3とメモリエクステンションバッファ(MXB)の両対応となっている。DDR3メモリを最大4チャネル直接続することもできれば、MXBを使って8チャネル分のDDR3を接続することもできる。MXBのインターフェイスは「Intel SMI2」と呼ばれる「Voltage Mode Single-Ended (VMSE)」インターフェイスだ。ECCを含む72ピンで、転送レートは2,667Mtps。VMSEでIvytownと接続したMXBに、2チャネルのDDR3を接続する。最大で4チャネルのVMSEを備えるため、合計で8チャネルのDDR3をサポートできる。

VSMEのアーキテクチャ
Intel SMI2

 メモリバッファMXBの動作モードは2つ。パフォーマンスモード時には8チャネルのDDR3に同時にアクセスできる。この場合はVMSEはフルスピードの2,667Mtpsで動作し、DDR3は1,333Mtpsまでをサポートできる。VMSE対DDR3のバス比は2対1となる。もう1つのロックステップモード時には、VMSE対DDR3のバス比は1対1で、DDR3側は片方のチャネルだけが動作し、転送レートは1,600Mtpsまでとなる。DIMM/チャネルは1,600Mtpsでは2DIMM/チャネル、1,333MtpsではLRDIMMで3DIMM/チャネル。

MXBの2つの動作モード
メモリの実装バリエーション

 Ivytownでは、こうしたメモリインターフェイス構成のためにDDR3と互換のピンアウトで、2,667Mtpsまでの転送レートをサポートしなければならない。そのため、DDR3インターフェイスを単純に高速にするのではなく、回路設計をかなり工夫してデータアイを開かせている。しかし、次の世代のサーバーCPU「Haswell-E」系列になると、メモリインターフェイスはDDR4に移行するため、アプローチがまた変わると見られる。

 ちなみに、高可用性サーバーもカバーするE7では、メモリにDRAMチップの障害時にデータの訂正を行なうことができるチップキルやダブルチップスペアリングと同等の機能も盛り込んでいる。Intelの独自の名称がつけられているが、機能的にはIBMやHPの技術とほぼ同等だ。微細化によりDRAMチップ自体に障害が生じる可能性が増えているため、通常のECCでカバーできないメモリエラーをカバーするこうした機能は重要となっている。

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