AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック
■AMDのチップ設計の要となるコントロールファブリック
AMDは、新CPU「Ryzen」から、チップ内の各ユニットを接続するインターコネクトのファブリックに「Infinity Fabric」を採用した。
Infinity Fabricには、データ転送を行なう「Infinity Scalable Data Fabric(SDF)」と、制御系の信号を伝達する「Infinity Scalable Control Fabric(SCF)」の2系統がある。
データ転送のInfinity SDFがチップのデータの流れを司る血管系なら、制御系のInfinity SCFはチップの神経系にあたる。
データファブリックと比べると目立たないが、AMDのチップ設計上非常に重要となるのが、制御系のInfinity SCFだ。
Infinity SCFでは電源管理、クロック供給、テスト、初期化、セキュリティといったさまざまな制御のための信号の伝達を行なう。
現在のAMDのCPUやGPUは多数のセンサーを搭載しているが、そうした各種センサーの接続もSCFが行なう。
AMDのMark Papermaster氏(SVP & CTO, AMD)は次のように説明する。
「SCFでは、クロック供給と電源管理、初期化とテスト、セキュリティといったさまざまな制御に関する通信を共通化した。
AMDの開発する、CPU、APU、GPUのすべての製品に渡って、共通のメソドロジーと標準化した手続きで各IPユニットを協調させる。
Ryzenでは、チップ全体で数千のセンサーを搭載しているが、これらのセンサーを連結することもInfinity Fabricによって容易になった。
これが、2011年頃のAMDの開発態勢と大きく異なる点だ。
2011年頃は、我々は各SoCそれぞれにユニークなバスを開発していた。
たとえば、『Onion(APU内でのCPUとGPU間のインターコネクト)』や『Garlic(APU内でのGPUとメモリコントローラのインターコネクト)』だ。
これらのバスは、ユニークなメソドロジであり、独自の制御を行なっており、IPをスケールすることが非常に難しかった」。
AMDはAPUにおいて、これまでOnion、Onion+、Garlic、Chive(Xbox Oneのバス)など、異なるファブリックを作ってきた。
SoC毎に異なるため、設計の手間が大きかった。
しかし、Infinity Fabricでは制御に関するメソッドとプロトコルを、IP間や異なるチップ間で共通化した。
それによって、共通したメソッドとプロトコル、さらに共通化したコントロールブロック設計によって、制御ネットワークの構築を容易にする。
「コントロールファブリックは、SoC上のIP群すべてを接続する。
すべてのIPに同じコントロールブロックが含まれる。
CPUコアやGPUコアだけでなく、マルチメディア、ディスプレイコントローラ、ビデオコントローラ、メモリ、I/OなどあらゆるIPについてだ。
各IPに、クロック供給、電源管理、テスト&初期化、セキュリティ、それぞれにおいて、共通の制御アプローチ、共通のメソドロジを提供する。
その結果、複雑なSoCの設計を容易にし、設計にかかる時間を短縮し、エンジニアリング労力を減らす」(Papermaster氏)。
■Ryzenの膨大なセンサー搭載を可能にしたInfinity Fabric
Ryzenが搭載しているセンサーは数千に上る。
4個のCPUコアのコンプレックスである「Core Complex(CCX)」に、1,300以上のクリティカルパスモニタ(クリティカルパスのレプリカ回路)、48のパワーサプライモニタ、20のサーマルダイオード、9つのドループディテクタを搭載する。
Ryzen 7は2個のCCXを搭載するため、CPUコア回りだけで2,700以上のセンサーを搭載していることになる。
これらのセンサー群を制御するためのインターコネクトも、Infinity FabricのSCFが担当する。
逆を言えば、Infinity Fabricがなければ、Ryzenにこれだけのセンサーを搭載することは難しかったという。
「たとえば、SCFがない状態で、Ryzenを設計したとしてみよう。
私はエンジニアに「数千個のセンサーを載せたい、そのセンサー群をマイクロコントローラに接続してくれ」と要求することになる。
エンジニアは「えっ、それを全部インターコネクトして制御するんですか。
センサーのためのメッシュネットワークを設計しなければ。
それに、個々のセンサーのテストと、センサーネットワーク全体のテストの仕組みも設計しなければならない……」と愕然とするだろう。
それが2011年の状況だった。
2011年の我々のアプローチで設計するなら、ユニークなサイドバンドがそこら中に張られ、数千ものサイドバンド信号を管理しなければならなかった。
非常に複雑で大変な作業になったはずだ。
それに対して、Infinity Fabricがある現在は、慎重に設計されたバスが、電源管理、セキュリティ、テスト、初期化といったすべての信号を運ぶ。
従来のような、ユニークなサイドバンド信号が必要なくなる。
そのため、数千個ものセンサーを載せても、SoCを容易に設計できる。
Infinity Fabricがなければ、これだけの数のセンサーの搭載は難しかっただろう。
つまり、Infinity Fabricによって、効率的にセンサーを接続できるようになり、より多くのセンサーをチップに配置できるようになった。
結果として、より細粒度でチップを制御できるようになった。
Ryzenのきめ細かな電力制御や周波数のブーストは、Infinity Fabricによって実現されている」(Papermaster氏)。
■PlayStation 5(PS5)世代のカスタムAPU設計も容易に
Infinity FabricのSCFの採用は、AMDのチップ設計においては死活問題的に重要だった。
現在のAMDの限られた開発予算の枠では、CPU、APU、GPUを多数平行して設計することが非常に難しくなっていたからだ。
AMDは、多数のダイを円滑に市場に出すためには、設計の効率を上げて開発費を抑える必要があった。
「なぜ、Infinity Fabricによるコントロールが必要なのか。
それは開発の効率を上げるためだ。
Infinity Fabricによって、新チップを市場に出すまでにかかる時間も労力も、ずっと少なくて済むようになった。
正直な話、我々の開発予算は競争相手と比べると、大幅に少ない。
それどころか、残念なことに、2011年当時のAMDよりもかなり少ない。
そのため、周囲はAMDに対して疑問を持っている。
“AMDが、複数のSoCを開発することができると信じることができない。
それだけの投資ができないだろう”と思われている。
実際、2011年当時のアプローチでは、複数のSoCを平行して開発し続けることは難しかった。
そこで、2012年に我々は新しいファブリックを作ることを決定した。
そして、今、我々にはInfinity Fabricがあり、2017年以降はInfinity Fabricを使った新しいSoC群が登場する。
Infinity Fabricによって、高い開発効率とよりよい品質を実現できるため、SoCを順当に開発できる」とPapermaster氏はSCF導入の背景を語る。
AMDは開発予算がカットされたために、28nmプロセス以降はCPU製品を設計できなくなっていた。
しかし、今回のRyzenからは、CPUとAPUのどちらも提供できるようになった。
その背景には、Infinity Fabricによる設計コストの低減があるようだ。
Infinity SCFの導入は、また、SoCのカスタム設計も効率的にする。
AMDは、「PlayStation 4(PS4)」や「Xbox One」のAPUなど、チップのカスタム設計サービスも提供している。
PS4とXbox Oneでは、それぞれAMDのAPUとは異なるカスタムバスを導入した。
設計はそれだけ複雑になっていたはずだ。
しかし、今後のPS5やScorpioの後のXboxなどの新世代のゲームAPUがAMD設計なら、SoCはInfinity Fabricを使うことになり、カスタム化した場合の設計の効率が上がる。
「今後のカスタムSoCの顧客にとって、異なる数のCPUや異なる規模のGPUの組み合わせや異なるIPブロックの統合、あるいはサードパーティのIPの搭載であっても、Infinity Fabricによって、もっと簡単に実現できるようになる。
カスタム化が容易になることも、Infinity Fabricの利点だ」(Papermaster氏)。
サードパーティIPの統合については詳しくはわからないが、AMD側のコントロールファブリックがきれいに規定されていれば、他社のファブリックに合わせたIPの統合も比較的容易になることが予想される。
■Infinity Fabricによるダイオーバーヘッドは許容範囲
Ryzen以降のAMDのチップでは、制御する頭脳となるマイクロコントローラ群と、各センサーや各コントロールブロックがSCFで結ばれている。
特に、電源管理はマイクロコントローラによる制御が非常に複雑だ。
ただし、マイクロコントローラ自体がInfinity Fabricによって大きく変わったわけではないという。
「もともと、電源管理のロードマップでは、その時点で要求される制御に最適化したマイクロコントローラを搭載する方向だった。
Infinity Fabricの採用でも、マイクロコントローラ自身や電源管理のアルゴリズムの拡張は、もともとのロードマップから変えていない。
Infinity Fabricで変わったのは、センサーとマイクロコントローラを接続する方法だ。
各IPにまたがって、一貫した電源管理のサブユニットを分散配置しており、それを共通化したバスを通じて接続している」。
電源管理の機能については、当初の予定通りの実装で、制御するマイクロコントローラも予定通り。
Infinity Fabricによって電源管理の機能自体が拡張されたわけではない。
ちなみに、今回のRyzenは、オンダイのMIMキャパシタを使った高度な電力制御が実装されている。
高度にアーキテクトされたバスは、しばしばダイエリアの増大やレイテンシの増大をまねく。
Infinity Fabricを採用したことによるペナルティは、どうなのか。
Papermaster氏はペナルティはあるものの、許容範囲だと説明する。
「最初、エンジニア達はInfinity Fabricによってオーバーヘッドが大きくなるのではと心配した。
実際に、ある程度のエリアオーバーヘッドがあった。
しかし、許容できるコスト範囲に収まっている。
オーバーヘッドはエリアだけなく、レイテンシにも生じる可能性があった。
アーキテクトされたインターフェイスとバスによって、レイテンシが増える場合が多い。
しかし、Infinity Fabricの場合は、レイテンシは増大しなかっただけでなく、逆に減少した。
設計が非常によかったためだ」。
AMDは、2012年から5年かけて、ファブリックの一新を行なった。
RyzenではZEN CPUコアのマイクロアーキテクチャが注目されるが、その土台となっているInfinity Fabricも重要な革新となっている。
Infinity Fabricでは、広帯域でスケーラブルなデータファブリックが注目されているが、じつはコントロールファブリックが設計上のカギとなっている。