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

AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ

MCM(Multi-Chip Module)に最適化されたレイアウト

 AMDは、将来的なコンピューティングチップとして、複数のダイを1個のパッケージに統合したマルチダイ化を目指している。今後のプロセス技術の進歩の予測では、マルチダイ的なアプローチでなければ、コストを抑えながらチップの機能と性能を一定のレイトで伸ばし続けることが難しいと判断しているからだ。AMDはこうしたビジョンを、昨年(2017年)12月に米サンフランシスコで開催された半導体学会「IEDM(IEEE International Electron Devices Meeting)」で発表した。

 AMDのビジョンの最終的なゴールはシリコン貫通ビア(TSV:Through Silicon Via)技術やインタポーザを使うと見られるが、現状では一般的な商用チップにそうした技術を持って来ることはコスト的に難しい。そこで、同社は、まず現行の技術でマルチダイ化を導入した。それが、新CPU「ZEN(ゼン)」アーキテクチャベースのサーバーCPU「EPYC」だ。

 EPYCでは、SoC(System on a Chip)のダイ「Zeppelin(ゼペリン)」を4個使うことで32コアのサーバーCPUを実現している。また、ハイエンドデスクトップCPU「Ryzen Treadripper」も、同様にZeppelinの2ダイ構成の16コアとなっている。

 Zeppelinのチップアーキテクチャのポイントは、マルチダイ構成に最適化して設計されていることだ。そのために、ダイ同士の接続のインターフェイスを実装、各コンポーネントの配置も、マルチダイを前提として慎重にプレイスされている。AMDは、米サンフランシスコで2月11~15日に開催された半導体国際会議ISSCC(IEEE International Solid-State Circuits Conference)で、そうしたZeppelinの設計を明らかにした。下は、ISSCCで示されたZeppelinのダイのユニットレイアウトだ。

Zeppelinのダイレイアウト

 上のダイレイアウトと、EPYC発表時に公開された下のダイレイアウトを見ると、鏡像になっていることに気がつく。ユニット配置が、ちょうど裏返しの関係になっている。これは、ダイをどちら側から見るかで変わるからだ。通常は、配線層側から見た写真になっているため、下のようなレイアウトになる。しかし、今回のISSCCでは、チップ外の配線について説明されたため、ダイのトランジスタ側から見た図になっていると見られる。

EPYC発表時に公開されたZeppelinのダイレイアウト
PDF版はこちら

絶妙な各インターフェイスのZeppelin上の配置

 AMDのCPUやGPU、APUは、インターコネクトファブリックにAMDが開発した「Infinity Fabric」を採用している。Infinity Fabricには、データ伝送の「Infinity Scalable Data Fabric(SDF)」と、制御系の信号伝達の「Infinity Scalable Control Fabric(SCF)」の2系統がある。データのSDFにはさまざまな実装がある。まず、SDFは、SoCのなかで各ユニットを接続するSDFプレーンとして実装されている。さらに、マルチダイのMCMパッケージで、ダイ同士を接続するインターフェイスにもInfinity Fabricが使われている。さらに、CPUパッケージ同士を接続するソケット間インターフェイスもInfinity Fabricとなっている。それぞれ物理的な実装は異なるがプロトコルでは共通化されている。

HotChipsでのInfinity Fabricの説明

 Zeppelinのダイ上の各インターフェイスの配置は、非常に特徴的だ。まず、2チャネルのDRAMインターフェイスは、ダイの長辺の1つに寄せられている。これは、ダイを4個並べた時に、パッケージの両側に4チャネルずつDRAMインターフェイスを配置できるようにするためだ。

 CPUパッケージ間を相互接続するIFIS(Infinity Fabric Inter-Socket)は、PCI Expressと共有のPHYを使うマルチプロトコルアーキテクチャとなっている。Zeppelinには、16レーンのIFIS/PCIeが2リンク搭載されている。2つのリンクは、ダイの角に1リンクずつ配置されている。これは、パッケージの上下にIFISとPCI Expressのピンを配置できるようにするためだ。パッケージ外へのインターフェイスのピンを上下左右に配置するために、DRAMとIFIS/PCI Expressのインターフェイスは巧妙に配置されている。

 CPUのダイ同士を接続するIFOP(Infinity Fabric On-Package)は、Zeppelinダイに4リンク搭載されており、ダイの長辺に2リンクずつ配置されている。これは、ダイを並べた時に、2リンクが内側に向かい、1リンクが外側に向かうようになっている。本当は3リンクで足りるのだが、ほかのインターフェイスのためにダイをローテイトさせて配置する関係から、余計な1リンクを含めて4リンクが配置されている。

ISSCCで説明されたダイレイアウトとパッケージの関係
4個のZeppelinダイのEPYCパッケージ。左右にDRAMピン、上下にI/Oとパッケージ間接続のピンが出る。
Zeppelinのシステムブロック図
PDF版はこちら

 もう少し詳しく見ると、パッケージ上で、4個のZeppelinダイは、左右に2個ずつ配置される。左右のダイは180度回転されて配置される。これによって、各ダイにつき2チャネルのDRAMインターフェイスはパッケージの左右に面した位置に配置される。2ダイの2チャネル、合計4チャネルがパッケージの片側に寄り、もう片側に残りの2ダイの4チャネルが配置される。

4個のZeppelinダイの配置とインターフェイスの位置関係

 ダイ同士を接続するIFOPは、上のスライドではグリーンで表示されている。IFOPは、ダイの左右に2個ずつの配置となる。左右に隣り合うダイ同士は向かい合ったIFOPで接続される。さらに、対角のダイはパッケージ中央で対角に交差する配線で内側のIFOP同士が接続される。上下のダイは、逆サイドのIFOP同士が接続される。各ダイに1個ずつIFOPが使われるに残る。しかし、それによって、DRAMの配線をまたがずにIFOPの配線を配置することができるようになっている。2層のパッケージ層でIFOPを行なうためには、4個のIFOPリンクが必要だったという。使われない1リンクのIFOPは、クロックゲートされる。

 オフパッケージのI/Oとパッケージ間のIFISの接続のためのインターフェイスは、ダイの角に配置されている。上のスライドではオレンジで表示されている。

 上のスライドで各ダイの左上の角のIFIS/PCIeは、CPUパッケージ間の接続のためのIFISとして使われる。各ダイの右下の角のIFIS/PCIeは、I/Oデバイスの接続のためのPCI Express/SATAとして使われる。各ダイの左上の角からは上に配線が延びる、右下の角からは下に配線が延びる。16レーンのシリアルリンクは、どちらもIFISとPCI Expressの両方のプロトコルを使うことができる。そのために、ローテイトしたダイ配置で、上下にそれぞれIFISとPCI Expressのピンを配置可能となる。

8チャネルのDRAM配線と複雑なダイ間/パッケージ間インターコネクト配置

 4ダイのZeppelinのMCMパッケージ上の配線は下のスライドのようになる。まず、稠密なDRAMインターフェイスの配線は、左右に1チャネルずつ1パッケージレイヤに配置される。下のスライドのレイヤAとレイヤBでは、それぞれのレイヤに左右にそれぞれ1チャネルのDRAM配線が配置されている。各レイヤに、左右合計で2チャネルのDDR4配線がなされている。加えて、IFOPの6リンク接続が2つのレイヤに分散されて配線されている。

DDR4メモリとIFOPの配線

 DDR4メモリは、さらにレイヤCとレイヤDにも、それぞれ左右に1チャネルずつ2チャネルのDDR4が配線されている。レイヤAからDまでの4層で、各2チャネルずつ、合計8チャネルのDDR4の配線が実現される。加えて、レイヤCとDには、それぞれIFISリンクが配線される。

DDR4メモリとIFISの配線

 このように、ダイ上のインターフェイスの巧妙な配置によって、窮屈な配線でも4配線レイヤでパッケージに収まるようになっている。結果として、4ダイ構成で、パッケージ内のトータルのデータ帯域は256GB/sec、オフパッケージの帯域は450GB/sec以上という、強力な構成になった。高速インターフェイスのピンだけで1,760、パッケージは4,094ピンのLGAだ。

実際のCPU製品でのダイと各インターフェイス

 こうして実現した4ダイMCMパッケージのシステム構成は下のスライドのようになる。パッケージ間は、4つの16レーンIFISによって結ばれている。トータルでPCI Express/SATAのハイスピードI/Oは128レーン。そのため、GPUカードのようなアクセラレータなどのPCI Expressデバイスを多数搭載できる。I/Oリッチなシステムであることも、ZeppelinベースのEPYCの強味となっている。

4ダイを使ったEPYCのデュアルソケット構成
Zeppelin 4ダイのEPYCはI/Oもリッチとなる

 2ダイのハイエンドデスクトップ向けCPUのRyzen Treadripperは、下のような構成となる。最大のポイントは2つのダイが2リンクのIFOPで接続されていること。また、64レーンのPCI Expressが上下に配置されている点。ダイ自体のレイアウトは、4ダイのケースと同じで、よく知られているようにパッケージには4個のダイが配置されている。実際に使われる2個のダイ以外のダイは、ダミーダイとなっている。

Ryzen Treadripperの構成

 通常のシングルダイのPC向けCPUのRyzenは下のとおり。シリアルインターフェイスのレーンは24レーンがイネーブルとなっている。

PC向けのRyzen
3系統の製品ファミリ
1個のダイから3系統の製品ファミリを派生させる
PDF版はこちら

コア単位でリニアボルテージレギュレータで電圧制御

 EPYCの4ダイMCMパッケージへの電力供給は下のスライドのようになっている。上からは、ダイのコア部分へのサプライが、下からはダイの非コア部分へのサプライが、左右からはDRAMとDRAMインターフェイス部分へのサプライとなっている。

4ダイパッケージへの電力ピン

 ZENでは、デジタルLDO(Low Drop-Out)タイプのボルテージレギュレータによるコア単位の電圧制御を行なっている。CPUコア毎に個別の電圧供給が可能だ。この機能により、チップ全体での電力の低減を図っている。

 CPUコアには駆動電圧あたりの動作周波数にばらつきがあり、低い電圧で高い周波数動作できるコアもあれば、高い電圧をかけないと一定周波数で動作できないコアもある。そのため、CPUコア群全体に単一の電圧で電力供給を行なう場合は、もっとも低速なコアに合わせた電圧で供給する。そのため、高速なコアについては電力のムダが生じてしまう。

 Zeppelinでは、コア毎にLDOで電圧の低減が可能だ。オンボードのプラットフォームボルテージレギュレータ(VRM)から、CPUコアのもっとも高いVIDで入力されたコア電圧RVDDを、各コア毎に個別のVDDに落とし込む。CPU毎に最適な電圧となるため、電力効率が向上する。

コア毎の電圧のばらつき

 ZENでは、CPUコンプレックスにオンダイの周波数センサーを実装している。クリティカルパスのレプリカ回路によって、そのCPUコアの特定の動作周波数での動作を、どの最低電圧で可能になるかを検知する。その計測をベースに、LDOによって各コアに最適な電圧で電力供給を行なう。また、アイドル状態になったCPUコアはパワーゲートする。

EPYCでのLDOによるコア毎の電圧最適化

 Zeppelinダイには、電力制御を含めたシステム管理を行なうシステムマネージメントユニット「System Management Unit(SMU)」が搭載されている。AMDの「Infinity Fabric」には、データ伝送の「Infinity Scalable Data Fabric(SDF)」のほかに、制御系の信号伝達の「Infinity Scalable Control Fabric(SCF)」がある。SMUはSCFプレーンを通じて、電力などの制御を行なっている。

HotChipsでのInfinity Fabricの説明
Zeppelinのインターコネクト構成

 ZeppelinのSMUは、ほかのダイやほかのパッケージのSMUと連携する。SMU間の通信は、専用のシングルレーンのIFISを使う。1個のSMUがマスターとなり、スレーブとなるSMUと通信する。

SMU同士の通信の仕組み