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

28コアサーバーCPU「Skylake-SP」の詳細

デスクトップとは大きく異なるSkylakeコアレイアウト

 Intelは、半導体国際会議ISSCC(IEEE International Solid-State Circuits Conference)で、昨年(2017年)発表したサーバーCPU「Skylake-SP(コードネームSKX)」の詳細を発表した。

 Skylake-SPは、最大28コアの構成まであるサーバーCPUファミリだ。従来のサーバーCPUとは異なり、内部インターコネクトをリングバスからメッシュ型ファブリックに変更した。また、ベクタ命令を512-bit幅の「AVX-512」に拡張、CPUのキャッシュ階層を変更し、LLC(Last Level Cache)をノンインクルーシブ(non-inclusive: 非包括的)キャッシュとした。

 最大の28コア製品では、56スレッド、38.5MBのLLC、6チャネルのDDR4インターフェイス、48レーンのPCI Express 3.0、3xのチップ間インターコネクトUPI、そしてネットワークファブリックのOmni-Pathインターフェイスが統合されている。

Skylake-SPのスペック

 今回明らかにされたSkylake-SPのCPUコアは、デスクトップ向けのSkylakeのCPUコアとはレイアウトがかなり異なる。これは、AVX-512命令の実行ユニットが加わったこと、キャッシュ階層とキャッシュ制御が変更されたこととからんでいる。

 また、CPUコアに付帯するパワーレギュレータやメッシュネットワークのインターフェイスとともに「コアタイル(Core Tile)」として構成されている。Skylake-SPのダイは、このコアタイルがびっしり並んだ構造となっている。

 下のスライドは、Skylake-SPのコアタイルのダイエリアだ。四角形のなかにCPUコア、キャッシュ、パワーレギュレータ、メッシュのエージェントが配置されている。写真がボカされているのは機密のためと思われる。四角形のタイルは配置を自由にできるモジュラリティーがあり、同じタイルの配置の仕方によって、CPUコア数の異なる製品を生み出している。

ISSCCで明らかにされたSkylake-SPのコアタイルの構成

 構成としては、核となるSkylake CPUコアがあり、そこにはみ出す形で、AVX-512の実行ユニットと、増量されたL2キャッシュが加えられている。ノンインクルーシブのL3キャッシュとスヌープフィルタはCPUコアの上にある。コアタイルの右上のコーナーに配置されているのは、オンダイのメッシュインターコネクト「MESH」に接続するインターフェイスである「CHA(Cache-Home Agent)」だ。

 また、コアタイルには、CPUコア毎に専用のFIVR(Fully Integrated Voltage Regulator)とADPLL(All Digital Phase Lock Loop)がCPUコアの下に配置されている。このユニット群によって、Skylake-SPでは各CPUコアの電圧と周波数がつねに最適化されるため、平均のコア消費電力が最小に抑えられるという。

 ダイエリアを見ると、FIVRとADPLLの部分も、意外と面積を取っていることがわかる。PC向けでは外されたFIVRがSkylake-SPでは戻されているのは、低電圧時に効率が悪くなるIntelのFIVRも、サーバーではそれほど問題にならないためだと見られる。

コアとFIVRが密接にコミュニケートすることでドループの緩和などを行なう

コアタイルをタイル状に配置してメッシュで結ぶ

 Skylake-SPファミリは、このコアタイルがXY方向にびっしり並んだ設計となっている。下は左が25コア、右が28コアの例だ。25コアでは5x5の構成でコアタイルが並んでいる。28コアでは5×6構成だが、左右の2つのコアのタイルが、メモリコントローラのタイルに置き換わっている。2個のメモリコントローラタイルの外側に、それぞれ3チャネルのDDR4メモリインターフェイスが配置されている。

右が28コア、左が25コア
Skylake-SP 28コアの全体構成

 Skylake-SPのコアタイル部分の上は、「North Cap」と呼ばれる、I/O回りをまとめたコンプレックスとなっている。UPIリンクやPCI Expressなどはここに配置されている。そして、コアタイルと各ユニット群は、オンダイインターコネクトファブリック「MESH」で結ばれている。

MESHの基本的な構成
Skylake-SPのメッシュネットワークの全体像

 Skylake-SPのオンダイファブリックMESHは、X方向とY方向の2次元メッシュとなっている。それぞれの方向に、バイダイレクショナル(双方向)で、コアタイルとは「CHA(Cache-Home Agent)」で接続する。

 CHAは、MESHによって直近の4方向のCHAと接続されている。Intelは、これまではリングバスの優位をうたってきたが、Skylake-SPからはメッシュのほうがスケーラブルで性能が高いと説明している。ちなみに、SkyLake-SPのSPは、スケーラブルパフォーマンス(Scalable Performance)の略だ。リングバスには、コヒーレントプロトコルのブロードキャストの面で利点があった。

 28コアの場合は、コアタイルは左右鏡像で並ぶため、CHAは隣り合うことになる。メッシュのネットワークアルゴリズムは非常に単純で、ターゲットとするタイルに対して、まず垂直方向へと動き、それから水平方向へと動く。リクエストとレスポンスともに、このアルゴリズムで伝達される。

垂直→水平と動く

複雑なパワードメイン

 Skylake-SPのパワードメインは非常に複雑だ。下のスライドのイエローの部分はCPUコアへの「Vcc」。同じイエローだが、コアタイルごとに電圧を変えることができる。コアタイルのなかには、グリーンの「Vccclm」も供給されている。これは、コアタイルの中のCPUコア以外のアンコア部分やLLCなどへのパワードメインだ。

 さらに、メッシュネットワーク自体はインフラストラクチャサプライ「Vccio」として独立したパワードメインとなっている。これは、コアタイル側が低電圧時でも、メッシュネットワークを高い電圧で一定スピードで動作させ続けるためだ。このほか、システムエージェントエリアやメモリコントローラ、メモリインターフェイスなどがそれぞれ別なパワードメインとなっている。

複雑なSkylake-SPのパワードメイン

 Skylake-SPの物理的な設計では、3種類のリーク電流(Leakage)の異なるトランジスタを使い分けている。基本は、低リーク電流トランジスタ(Low-Leakage Device1)LL1で設計し、ディレイを短縮したいクリティカルパスなどをノーマルトランジスタに切り替え、タイミングに余裕がある部分をよりリーク電流の少ないLL2に置き換えている。全体の67%がLL1で、8%がLL2、25%がノーマルとなっている。

Skylake-SPのトランジスタ区分