インテルが7月に発表したXeonスケーラブル・プロセッサー(開発コード名はSkylake-SP)は、同社が「10年に一度の大規模な進化」と位置付けるほど大きな世代交代だ。ブランドやラインアップの切り替えについて解説した前回に続いて、今回は新Xeonの内部構造について解説する。
リングからメッシュへ、データアクセスの遅延を抑える
Skylake-SPの最大の特徴はコア間の接続をリングバスからメッシュネットワークに変更したことにある。リングバスは、コアがあまり多くない場合、効率の良い伝送が可能だが、コアが多くなると通信量が増え通信効率が落ちる。リングが長いと遅延(レイテンシー)も増える。このため、一定数より多くのコアをリングバスに配置できなくなる。
こうした背景から、コア数の多いXeon E7 v2(Haswell-EX)ではリングバスを3本にして、全てのコアが2本のリングバスで接続される構成にした。Xeon E7 v3(Broadwell-EX)では、2本の独立したリングにコアを接続し、リング間を2個のバッファスイッチで接続していた。
一方、Skylake-SPではコアを格子状に配置し、上下左右を接続するメッシュ・インターコネクト・アーキテクチャを採用した。どのコアも縦方向を接続するリンクと横方向を接続する2つのリンクを持ち、コア間の通信では、縦横のリンクを組み合わせて経路を構成する。これにより、コア間の通信(他のコアが持つキャッシュへのアクセス)やコアからアンコア部分(独自インタフェースのUPIやメモリーコントローラー、PCI Expressなど)へのアクセスでは、最短経路で接続できるし、複数の経路が選択可能になった。
28コアのSkylake-SPでは、12本のリンクが縦横に通っている。28個のコアに加え、2個のメモリーコントローラー、UPI、PCI Expressなどの6個のユニットから成る36個のノードを縦横に6個並べて接続している。
なお、Skylake-SPでは、内部を大きく2ブロックに分割して、論理的なマルチプロセッサとして動作させる「Sub NUMA Clustering」という機能がある。これを使うと、ソフトウエアからは、左右が独立したプロセッサのように見える。いわゆるハードウエアパーティション機能だ。同様の機能は、Broadwell-EXにもあった。ブリッジバッファの両側でプロセッサを論理的に分割する機能で「Cluster On Die」(COD)と呼ばれていた。