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

18コア版Haswell-Eファミリに隠されたIntel CPU進化のトレンド

リングバスを使ってCPUのダイを派生

 Intelは、IDFで発表した18コアモンスターCPU「Xeon E5-2600 v3(Haswell-EP)」ファミリでもリングバスを採用した。Intelがリングバスにこだわるのは、リングバスなら1つの基本設計から複数のダイを派生させやすいからだ。これは、Intelのバス選択の重要な要素で、Intelが好むもう1つのメッシュネットワークもダイを派生させやすい。

 Haswell-E系の最大18コア構成では、4つのリングを採用している。対向するリングのペアが2つあり、2つのリングの間をバッファスイッチが結ぶ構成となっている。CUコアとLLキャッシュスライスのペア毎に、対向するリングペアに対するリングストップがある。また、PCI ExpressなどのI/Oのリングストップと、2リンクのQPIのリングストップは左のリング。3つ目のQPIのリングストップは右のリングにあり、今回発表されたE5系ではこの3つ目のQPIは無効にされている。ホームエージェントは2ユニットで左右のリングに分散されている。

18コアのHaswell-Eのリングバス構成
PDF版はこちら
18コア構成のHaswell-Eのダイ
PDF版はこちら

 サーバー&ワークステーション向けのHaswell系では、1つの基本アーキテクチャから3種類のダイとI/Oの異なる製品系列を産み出している。IntelはNehalem(ネハーレン)系まではデュアルプロセッサ向けの-EP系列と、マルチプロセッサ向けの-EX系列を別個に設計していた。その当時は、コードネームの末尾の“-EP”や“-EX”は、ダイ自体の違いを示していた。コードネームとダイが結びついていた。

 しかし、前世代のIvy BridgeアーキテクチャのIvyTownから、1つの基本アーキテクチャから異なるダイを派生させる方式へと切り替えた。個別の設計のために必要となる設計リソースは膨大だからだ。その結果、-EP系と-EX系は、同ダイでQPIリンク数やメモリバッファの有無などの違いでしかなくなった。つまり、半導体として見れば、もはやコードネームの末尾の-EPと-EXは意味を持たないものになった。

 具体的にはIvyTownから、サーバーCPUも、ハードマクロレベルでのモジュラー設計となった。マルチソケット向けのE7(EX)系列のダイを設計し、そこからQPIリンクなどを削ったE5(EP)系列などを派生させている。また、部分的にコアや機能を削った規模の異なるダイも派生させている。IvyTownでは下の図のように最大15コアのダイから、10コアのダイと6コアのダイを派生させている。そのため、チップ設計的には-EPと-EXだけでなく、シングルソケットの「-E」と「-EN」も区別が意味をなくしている。Ivy世代ではそのダイ系統を総称してIvyTownと呼んでいた。この記事ではダイとアーキテクチャ自体を扱うため、8~18コアまでのHaswellダイファミリも、Haswell-E系として総称している。

前世代のIvyTownのダイの派生方式
PDF版はこちら

 Intelは似たような手法で、PC向けCPUも1つの基本設計から多数の派生ダイを設計している。下がHaswellのPC向けのダイの一覧だ。SoC(System on a Chip)ベンダーが論理合成で派生ダイを作るところを、Intelは物理設計で、ハードマクロのユニットを削るダイチョップによって派生ダイを作り出しているところがポイントだ。

PC向けのHaswellファミリのダイ一覧
PDF版はこちら

Haswell-Eのチョップ手法

 Intelはこの手法をサーバー向けのHaswell-Eファミリにも適用している。デスクトップ向けの8コアのHaswell-E系ダイとサーバー向けの18コアのEP版のダイを比較するとよく分かる。下の図のように、8コア版のHaswell-E系のダイは、18コア版Haswell-E系のダイの左半分を取り出したようなレイアウトとなっている。そのため、8コア版ではダイに大きなデッドエリアまで生じてしまっている。

左がデスクトップ向け8コア版Haswell-Eのダイ、右がサーバー向け18コアのダイ
PDF版はこちら

 デスクトップ版Haswell-Eでは、CPUコアのうち右のリングの10コア分がなく、また右上の3つ目のQPIリンク、右下の2つ目のホームエージェントがない。しかし、DRAMインターフェイスは2つとも残されている。そして、右端の中央部分に大きなデッドエリアがある。

 このHaswell-E系ダイのチョップを、リングバスのトポロジ的に見ると下の図のようになる。これは、3つ目のQPIが無効にされている-EP構成の場合だ。12コア版では右端の6コア分がなくなり、右側のリングバスは途中で折り返す1リンクとなる。8コア構成になると、右側のリングが全てなくなり、リングは左のペアだけになる。ホームエージェントも1ユニットとなり、DRAMコントローラは4ユニット全てが1つのホームエージェントに接続される。メモリ帯域は変わらないがホームエージェントは1個になる。ただし、ホームエージェントが受け取るメモリアクセスリクエストも、8コア分になるので見合っている。

Haswell-Eファミリの各ダイのリングバス構成
PDF版はこちら

18コア版のダイサイズはIntel IA-32としては過去最大クラスに

 ダイのチョップによってそれぞれのダイのダイサイズとトランジスタ数も大きく異なる。Haswell-E系で最大の18コア構成のダイは662平方mmで、IvyTown 15コアの541平方mmと比べると22%ほど大きくなった。Haswell-E系とIvyTownをダイで比較すると下のようになる。ダイで見ると、両CPUの基本的なレイアウトは非常に似ていることが分かる。Haswellの方がCPUコアが大きいため、単純には比較できないが、基本的には右の6個のCPUコアの列の部分だけHaswell-Eの方が大きい。ただし、レイアウトは異なるが、大枠での各ユニットの配置は類似性が強い。

左が15コアのIvyTownのリング、右が18コアのHaswell-Eのリング
PDF版はこちら
左が15コアのIvyTownのダイ、右が18コアのHaswell-Eのダイ
PDF版はこちら

 Intelはマルチコア時代になってから、同一CPUマイクロアーキテクチャで、CPUコア数の異なるダイを多数派生させてきた。Haswell系は、その設計方式の1つの行き着いた姿だ。基本となる設計はPC系とサーバー系の2系列で、そこから2 CPUコアから18 CPUコアまでのバリエーションを作り出している。Haswellでは派生ダイは合計で11種類(実際には量産していない設計もある)に達している。ダイサイズは2 CPUコアで100平方mm程度の最小構成から18 CPUコアで662平方mmまで。

Intel CPUのダイサイズ一覧
PDF版はこちら

 662平方mmというHaswell-E系 18コアのダイサイズは、IA-32系で過去最大だったNehalem(ネハーレン)-EXの684平方mmに近い。巨大に見えるNVIDIA GPUでさえGeForce GTX Titan(GK110)で561平方mmなので、Haswell-E系18コアの方が20%ほど大きい。IBMのサーバーCPU並のサイズだ。トランジスタ数も56億9,000万で過去最高だが、トランジスタ数は稠密なファウンダリプロセスのGPUの方が多く、NVIDIAのGK110で71億だ。

CPUのトランジスタ数の増加のペースが変わった

 Intel CPUのトランジスタ数をトラックすると、面白い傾向が見えてくる。Intelは初期の8086以来、一定のペースでCPUのトランジスタ数を増やして来た。下の図中に白い矢印として描いてあるのは、2年で2倍弱のペースでトランジスタ数が向上した場合のラインだ。言い換えれば、ムーアの法則のラインだ。これを見れば分かる通り、つい最近まで、Intelは2年で2倍弱のペースでCPUのトランジスタ数を増やして来た。なぜ2年で2倍“弱”という中途半端なペースかというと、Intelが主張するロジックエリアスケーリングが50数%だからだ。2年で2倍より少しだけ低い。つまり、この白いラインは、Intelが主張するロジックエリアスケーリングに沿ったトランジスタの増大カーブとなる。

 この時、指標となるトランジスタ数は、パフォーマンスPC向けのクラスのCPUのものだった。つまり、ハイエンドのPC向けCPUは、おおまかに言って前プロセス世代の2倍のトランジスタ数で登場した。途中でサーバーCPUが加わるが、サーバーCPUは通常のトランジスタ数向上のカーブよりもはるかに上の、トランジスタ数が非常に多い特別なCPUだった。

Intel CPUのトランジスタ数の変遷
PDF版はこちら

 ところが、現在のIntel CPUのトランジスタ数を見ると、8086以来のトランジスタ数倍増のラインには、PC向けのCPUは乗っていない。クライアントPC向けのCPUのトランジスタ数は、旧来の2年で2倍弱のカーブよりも下、つまり、本来あるべきトランジスタ数よりも少ない量になっている。その一方で、IvyTownやHaswell-E系のハイエンドサーバーCPUが、本来のトランジスタ数のラインに上から近づきつつある。

 つまり、IntelのパフォーマンスPC向けの製品のトランジスタ数は、Nehalem(ネハーレン)世代までは順調に伸びてきたのに、Bridge世代になってからは伸びが鈍化し、どんどん2年で2倍のラインから外れつつある。

複数の理由が絡み合うIntel CPUのトランジスタ数増加の鈍化

 理由は複数ある。まず、IntelのPC向けCPU群は、ダイサイズが小さくなりつつあり、そのため搭載するトランジスタ数も、CPU世代が変わっても、あまり伸びなくなって来ている。PC市場は伸び悩み、その結果、価格が下がり、システムコストを下げなければならなくなっている。Intelも、メインストリームCPUのダイを大きく保ち、ガンガンと機能を強化して、高価格へと顧客を誘うことが難しくなっている。その結果、CPUのダイサイズは相対的に小さくなり始め、トランジスタ数の伸びも鈍化しつつある。

近年のIntel CPUのトランジスタ数の変遷
PDF版はこちら

 また、図が示唆するのは、本来あるべきトランジスタ数にしようとすると、従来よりチップのダイサイズが大きくなる傾向にあることだ。言い換えれば、同程度のダイサイズに詰め込むことができるロジックトランジスタ数が鈍り始めている。これはプロセス技術のスペック上の話ではなく、実際にCPUを設計した場合のトランジスタ密度が、従来より上がらなくなりつつあることも示唆している。

 ただし、これには明確な理由がある。元々、ロジック回路とI/O部分だけなら、チップのトランジスタ数は、2年で2倍弱の比率では集積度が上がらない。縮小しにくいI/O部分があるからだ。しかし、トランジスタ密度の高いSRAMのキャッシュ部分が順当に増え続けた結果、トランジスタ数が上がって来た。実際、過去にもPentium II/IIIの時に、トランジスタ数は2年で2倍のトレンドラインから外れ始めた。しかし、SRAMのL2キャッシュを内蔵することで、再びムーアの法則の倍増ラインに復帰している。

 だが、現在のIntel PC向けCPUは、キャッシュの量は一定に留めてGPUコアなどの面積を増やす方向へ向かっている。かつては世代毎にキャッシュが倍々に増えていたのが、このところ増えていない。ワークロードによってキャッシュ増量の効果は一定水準で鈍るが、すでにIntelのPC向けCPUはそこに達している。ダイサイズが小さくなり始めたことと、SRAMの伸びが止まったことが相まって、パフォーマンスPC向けのCPUのトランジスタ数の伸びが鈍化していると見られる。

 いずれにせよ、トランジスタ数の増加の鈍化は、Intel CPUの方向性の変化を示している。次のSkylake世代でどうなるかが注目される。

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