APUはモノリシックダイで設計 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はコストのリスクを取っても性能を求めた。

手間がかかる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にこれ以外の選択肢があまりなかったことがわかる。

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プロセスを使っているが、使っているセルライブラリのセルハイトは同一であるため、ダイエリアにほぼ違いはない。

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と比較すると、下のようになる。 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が占めると見られる。 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コアのコストが半分になるわけではない。

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で、ほぼ半減している。 もっとも、Zen 2はZenに対してアーキテクチャ拡張されており、SIMD(Single Instruction, Multiple Data)演算ユニットなどの面積が倍増している。このアーキテクチャ拡張はどの程度影響するのか。ダイエリアに大きく影響するアーキテクチャ拡張は、SIMDユニットの拡張で、128-bit幅から256-bit幅へと拡張されている。 影響は、アーキテクチャだけでなく、トランジスタ数でもある程度計算できる、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程度と見積もることができる。