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

縮小し続けるAMDの高性能CPUコア

APUはモノリシックダイで設計

AMDのCPUとAPUのダイサイズ
PDF版はこちら

 AMDは、7nmプロセスのZen 2世代のAPU(Accelerated Processing Unit)、「AMD Ryzen 4000 Series Mobile Processor」を発表した。

 AMDはZen 2世代のCPUは、チップレット戦略を取り、CPUコアとI/Oを別ダイに分離した。しかし、APUではCPUコア、GPUコア、I/Oをすべてモノリシックな1個のダイに統合している。この理由はきわめて明瞭で、現在のAMDの持つインターコネクト技術では、APUはシングルダイに統合する以外の実装方法を選択できないからだ。

 クライアントコンピューティング、とくにモバイルも視野に入れたAPUでは、メモリレイテンシ(遅延)をできるかぎり短く、電力消費をできるかぎり小さくしなければならない。そのため、CPUコアとメモリインターフェイスを別ダイに分離して、レイテンシと電力を増やすという選択肢を採りにくい。

 また、GPUコアは膨大なメモリ帯域を必要とするため、GPUコアとメモリインターフェイスを別ダイに分離すると、ダイ間のインターコネクトの電力消費が膨大になってしまう。

 広帯域のダイ間インターコネクトには、1pj/bit(pico joule/bit)以下のエナジーの伝送技術が必須となる。こうした背景から、現状では、クライアント向けのAPUでは、シングルダイのソリューションしか採ることができない(サーバー向けではAMDは一時別ダイのAPUを検討したことがある)。

 高コストな7nmプロセスで、価格競争力が重要なAPUを実現するため、AMDはAPUのダイサイズを抑えた。パッケージから推測される7nm APUのダイサイズは150平方mm前後かそれ以下。AMDのAPUは、32/28nm世代で250平方mm程度、14nm世代で210平方mm弱と、これまでかなり大きめのダイサイズだった。しかし、7nmではダイエリアを一気に縮小した。

 AMDは7nmプロセスでダイサイズを抑えなければならない理由を、一昨年(2018年)の学会「2018 Symposia on VLSI Technology and Circuits」で説明している。下は、AMDが示した、250平方mmのダイサイズのままチップを作り続けると、製造コストがどうなるかという試算だ。

 28nmの250平方mmダイと比較すると、7nmの250平方mmダイの製造コストは2倍以上に上がってしまう。AMDがダイサイズを抑えた理由はここにある。実際には、150平方mmでも製造コスト的には厳しいはずだが、AMDはコストのリスクを取っても性能を求めた。

AMDによるプロセス毎のコスト比較

手間がかかるI/O回りの統合

 AMDは、7nmプロセスでは、まずCPUコアだけを7nmに移行させ、I/Oは別ダイで12nmプロセスで製造したチップレット戦略を取った。この戦略には、コスト以外にも利点がある。

 それは、CPUダイにはI/Oがほとんど含まれないため、迅速に設計が可能になる点だ。現在の新プロセスではI/O回りのIPが足を引っ張る要因となりかねない。プロセスが微細化するにつれてI/O系のIPを載せるのがやっかいになって来ているからだ。

 そのため、CPUコアだけのダイやGPUのように、載せるI/Oがきわめて限定されているチップが設計しやすい。逆に、多数のI/O IPを載せる必要があるチップはやっかいだ。AMDでもすべてのIPを自社で作ることはできないため、他社IPを購入することになるが、そこに落とし穴がある可能性がある。とくにPC系はレガシーが多いため、面倒が多い。

 コードネームで「Renoir(ルノアール)」と呼ばれる、AMDの7nm世代APUは、8個のZen 2 CPUコアと、8個のCU(Compute Unit)のGPUコアを搭載する。GPUコアはVegaベースだと言われている。新しいNavi GPUアーキテクチャベースでない理由は設計開始時期の問題だと推測される。

 CPU製品はGPU製品より設計期間と検証期間が長い。リスクを取らないなら、CPU製品の設計スタート時点では、完成しているGPUコアのアーキテクチャを取りたい。これがディスクリートGPUとAPUの、設計サイクルのずれとなっている。

 しかし、8個のCPUコアと8 CUのGPUコアという構成は、ややアンバランスに見える。AMDの14nmプロセスのZenベースAPUである「Raven Ridge(レイヴンリッジ)」では、4個のCPUコアと11 CUのVega GPUコアという構成だった。

【お詫びと訂正】初出時に上記において、Raven Ridgeのコア数を間違えておりました。お詫びして訂正させていただきます。

 なぜ、こうした構成になったのか。その理由は、AMDのCPUとGPUの設計をチェックすると見えてくる。設計を見ると、AMDにこれ以外の選択肢があまりなかったことがわかる。

14nmプロセスのZen APU Raven Ridge
14nmプロセスのZen APU Raven Ridgeのアーキテクチャ

Zen CPUの特徴は4個のCPUコアをクラスタ化したCore Complex (CCX)

 AMDのZen系列CPUは、CPUコア4個でクラスタ化して「Core Complex (CCX)」を構成している。4個のCPUコアでL3キャッシュを共有する仕組みだ。L3キャッシュSRAMの量は、サーバー/パフォーマンスデスクトップ向けと、メインストリームクライアント向けで異なる。14nmプロセスでは、AMDはL3キャッシュ量が8MBと4MBの2種類のCCXを設計した。

 CCX L3 8MBバージョンはサーバー&デスクトップCPU向けで、「Zeppelin(ゼッペリン)」ダイに搭載されている。CCX L3 4MBバージョンはAPU向けで「Raven Ridge」ダイに搭載されている。

 CCX L3 8MBは14億トランジスタで44平方mmのダイエリア。L3キャッシュ量が半分のCCX L3 4MBは、12億トランジスタと推定され39平方mm程度のダイエリアを占める。4MBのL3の面積は8MBのL3の半分よりやや大きいが、これはアービターなどL3コントロールの部分があるためだ。

 4MBと8MB版で、Zen CPUコアとCCXの設計には、パッと見て大きな違いが見当たらない。L3 SRAMセルアレイが少ない分、CCX L3 4MBのほうが、CCX L3 8MBより12%ほどエリアが小さいと見られる。

 ちなみに、AMDは改良版のZen+世代で12nmプロセスを使っているが、使っているセルライブラリのセルハイトは同一であるため、ダイエリアにほぼ違いはない。

AMDの14/12nmプロセス世代のCCXのレイアウト

7nmプロセスのCCXのダイエリアは同じキャッシュ量で比較すると半分

 AMDは次のプロセス世代ではTSMCの液浸7nmプロセスN7に移行。7nmプロセスでは、AMDはCPUコアをZen 2に拡張し、L3キャッシュが16MBのCCXをリリースした。

 TSMC 7nm Zen 2 CCX L3 16MBは、ダイエリアが31.3平方mmとなっている。GLOBALFOUNDRIES 14nmプロセスのL3 8MBのCCXと比較すると、下のようになる。

14nmと7nmのCCXのレイアウト

 7nmのL3 16MB版のCCXも、基本的なレイアウトは14/12nm版CCXと同様だ。キャッシュスライスをはさんで4個のCPUコアが向かい合う。

 ちなみに、AMDは7nm版のCCXは、14nm版CCXの約半分の面積だと説明していた。しかし、実際には14nmのサーバーデスクトップ向けCCXは44平方mmで、7nmは31.3平方mmとダイエリアは71%の縮小となる。

 ダイエリアが半分になるというのは、同じL3 SRAM量のCCXとの比較だ。14nmで、16MBのL3キャッシュのSRAMを設計したとすると、CCXのダイエリアが60平方mm程度になるから、7nm版は半分という計算となる。

 サーバー&デスクトップCPU向けのCCX L3 16MB版は、「CCD(Core Complex Die)」チップレットダイに2個搭載されている。CCDには2個のCCXで8個のZen 2 CPUコアと、I/Oチップとの接続のためのIFOP(GMI2)が2リンクペア搭載されている。

 CCDのトランジスタ数は38億で、ダイサイズは74平方mm。ダイのほとんどはCCXで占められており、CCX以外ではI/O部分が多くを占めるため、38億のトランジスタの内訳の多くはCCXが占めると見られる。

AMDのCCDのダイレイアウト
Zen 2のCCXのバリエーション

 Renoirは、まだダイの詳細が発表されていないが、CCXのダイエリアのラフな試算はできる。各L3キャッシュスライスは1MBなので、SRAMセルアレイの面積が4分の1になり、付帯ユニットもある程度小さくなるとすると、次のような推測が成り立つ。

 7nmのCCX L3 4MBのダイエリアは、おそらく21平方mmかその前後。16MB版CCXと比べると70%以下のダイエリアになると推測される。14nm CCXで、8MB版から4MB版で88%程度にしか縮小していないことと比べると差が大きくなる。つまり、14nmのときのCCXバリエーションよりも、7nmのCCXバリエーションのほうが、ダイエリアの差別化が大きい。

 7nmのCCX L3 4MBは、14nmの同じSRAM量の構成と比べると、ダイエリアはほぼ半分となる。言い換えれば、14nmで4 CPUコアを積んでいたダイエリアに、7nmでは8 CPUコアを積むことができる。

 同じ面積で2倍のCPUコア数となる。従来のCMOSスケーリングなら、これでCPUコアのコストが半分になったわけだが、今回は異なる。ウェハ面積あたりの処理コストは14nmに対して7nmのほうがずっと高くつくため、CPUコアのコストが半分になるわけではない。

AMDのZenファミリのCCXの比較

14nm Zenの半分のサイズになった7nm Zen 2 CPUコア

 CCXの中身をさらにブレイクダウンすると、もっとよく見えてくる。14nmのZenは、ダイ写真を見るとCPUコアのダイエリアが5.6平方mm程度。512KBのL2キャッシュを含めると7平方mm程度だ。

 それに対して7nmのZen 2は、CPUコアが3平方mm以下、L2を含めても3.5平方mm程度に見える。言い換えれば、CPUコアのサイズは、14nmから7nmで、ほぼ半減している。

AMDの14nmと7nmのCCXのパーツ比較

 もっとも、Zen 2はZenに対してアーキテクチャ拡張されており、SIMD(Single Instruction, Multiple Data)演算ユニットなどの面積が倍増している。このアーキテクチャ拡張はどの程度影響するのか。ダイエリアに大きく影響するアーキテクチャ拡張は、SIMDユニットの拡張で、128-bit幅から256-bit幅へと拡張されている。

Zen/Zen+のマイクロアーキテクチャ
PDF版はこちら
Zen 2のマイクロアーキテクチャ
PDF版はこちら

 影響は、アーキテクチャだけでなく、トランジスタ数でもある程度計算できる、Zenの14nm CCX 8MB L3のトランジスタ数は14億、ZeppelinダイはCCXを2個搭載しているのでCCX部分のトランジスタ数28億となる。Zeppelinダイの総トランジスタ数は48億なので、単純計算では残りの20億がI/Oやノースブリッジなどのトランジスタ数となる。

 それに対してZen 2の7nmでは2個のCCX 16MB L3を搭載したCCDダイのトランジスタ数は38億。I/OはIFOP(GMI2)だけなので非常に小さく、I/O回りのロジックも最少にされている(Infinity Scalable Data Fabric(SDF)などは実装されていない)。おそらくI/O回りのトランジスタ数は1億にも達していない。

 Zen 2の2個のCCX 16MB L3のトランジスタ数は、37億台と推測される。14nmのCCXは2個分で28億トランジスタなので、7nmのZen 2世代でのCCXのトランジスタ増加分は10億トランジスタ以下と見積もることができる。

 7nmでは、CCX内のL3キャッシュSRAMは8MBずつ増えている。2個のCCXで合計16MBのSRAM増加となる。SRAMセルの部分だけで計算すると、トランジスタの増加分は6Tで計算して約8億トランジスタとなる。

 実際にはデータセルアレイだけでなく、周辺も増加するため、2個のCCXでのトランジスタ増加は8億トランジスタ以上となる。2個のCCXのトランジスタ総数の増加は10億以下なので、SRAM増加分を差し引くと2億以下のトランジスタ数増加となる。CCX 1個あたりのトランジスタ数の増加は、1億をかなり下回る、おそらく数100M程度と見積もることができる。

トランジスタ数ではそれほど多くないCPUコア

 実際には、もとのトランジスタ数自体がラフな数値なので正確にはいかないが、Zenに対してZen 2でのCCXのトランジスタ数増加がそれほど大きなものでないことはわかる。

 しかし、CPUコアの面積ではどうなのか。そもそも、CCX 8MB L3のトランジスタ数の14億のうち、L3が8MB、L2が2MB、これでデータSRAMだけで5億のトランジスタ数となる。

 4個のCPUコア自体のトランジスタ数は、残りの9億というラフな計算となる。つまり、ラフに言えば、Zen CPUコアは1個あたり2億2,500万のトランジスタ数となる。このあたりになると誤差が大きいので、正確な数値は出せない(そもそも上のキャッシュトランジスタ数もタグなどを無視した数字になっている)が、CPUコアは、トランジスタ数的には大きくないことがわかる。

 理由は明瞭で、SRAMセルは高トランジスタ密度だが、CPUコアの部分のロジッックセルはそれほど高トランジスタ密度ではないからだ。正確にはわからないが、それなりのダイエリアインパクトがあったことが推測できる。

 つまり、7nmで半分のCPUコアダイエリアは、アーキテクチャ拡張によるダイ肥大分を含んでおり、実際には半分よりスケールダウンしている可能性が高い。

 とはいえ、7nmのダイレイアウトを見ると、コア内部のSRAM部分の配置などとの比較から見て、それほどコアが大幅に拡張されているようには見えない。おそらく、1.5倍といった拡張にはなっていないだろう。アーキテクチャ的に考えても、そうした規模の拡張ではない。

 ちなみに、AMDのK8移行のCPUコアのサイズを一覧にすると下の図のようになる。130nmプロセスではCPUダイのほとんどはCPUコアで占められていたのが、いまではCPUコアはダイのなかの小さなパーツだ。

AMDのCPUコアのサイズ移行図
PDF版はこちら

 7nm世代のZen 2コアのサイズは3平方mm以下、これは、PlayStation 4に搭載されている28nmプロセスの省電力コアJaguarのサイズ3.1平方mmよりも小さい。高性能CPUコアは、少し前の省電力コアと同程度のサイズのユニットになったことがわかる。