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

Microsoftが「Xbox One」のチップ概要をHot Chipsで発表

学会でXbox Oneのシリコンを正式に発表

Hot Chipsの会場となったスタンフォード大学のStanford Memorial Auditorium

 Microsoftは、米スタンフォード大学で開催されているチップカンファレンス「Hot Chips 25」(8月25~27日)で、今秋発売する「Xbox One」のチップの概要を発表した。

 メインとなるXbox One SoC(System on a Chip)の特徴は、PS4チップ以上にカスタマイズされたチップであること。オンダイ(On-Die)で32MBのエンベデッドメモリを備えるほか、チップ内部のインターコネクトも大幅にカスタマイズされている。AMDのJaguar(ジャギュア)コアを8コア備え、GPUコアの演算パフォーマンスは1.31TFLOPS、メモリ帯域は内部エンベデッドメモリも含めると、ピークで272GB/secとなる。また、強力なカスタム設計のオーディオプロセッサを備え、カスタム設計のサウスブリッジチップと組み合わせる。

 しかし、32MBものメモリを載せたことで、ダイサイズ(半導体本体の面積)は363平方mmと極めて大きい。200平方mm台後半に留まると見られるPlayStation 4(PS4)チップと比べると大きさが際立つ。システムの製造コスト的には、DRAMのコストが高いPS4と、メインチップのコストが高いXbox Oneという構図となる。ただし、ダイの中のSRAMの部分は、冗長セルを設けているはずなので、面積は大きくても歩留まりへの影響は小さいだろう。

E3でのXbox Oneの発表と展示

メインのチップは2チップ

Xbox Oneのシリコンについて発表を行なったMicrosoftのJohn Sell氏は、元3DOのCTO

 Xbox Oneのシステム全体は下のようになっている。メインとなるチップは、MicrosoftがメインSoCと呼んでいるAPU(Accelerated Processing Unit)型のチップと、サウスブリッジチップチップの2つ。そのほかに、4Gbit品と見られるDDR3チップが8GB分載っている。

 メインSoCは、CPUコアとGPUコア、オーディオプロセッサ、ビデオコーデック、32MBエンベデッドメモリなどを統合。8GBのメインメモリDDR3は、メインSoCの256-bitのDRAMインターフェイスに接続されている。HDMIのビデオ/音声出力はメインSoCから出ており、Gigabit EthernetもメインSoCのPCI Expressに接続されている。

 サウスブリッジチップは各種I/Oとクロック、システムコントローラを統合している。KinectモジュールはサウスブリッジにUSBで接続されており、同じくUSBに接続されたWi-Fiが2系統ある。片方のWi-Fiはゲームコントローラなどを接続する。コントローラはBluetoothではなく、Wi-Fi接続だ。SATA2にBDドライブとHDDが接続される。また、8GBのNANDフラッシュがeMMC4.5インターフェイスに接続されている。

Xbox One全体のブロックダイヤグラム

 また、Xbox Oneの特徴の1つであるHDMI入力はサウスブリッジチップにある。サウスブリッジチップとメインSoCの間は、PCI ExpressとAV用インターフェイスで構成されている。CATVのSTB(セットトップボックス)などと接続した場合は、HDMIインからビデオデータを受けて、メインSoCに送り、メインSoCから画面に出力する構造と見られる。

50億トランジスタの巨大チップ

 メインSoCは、台湾の最大手ファウンドリTSMCの28nm HPMプロセスで製造されている。つまり、スマートフォンやタブレットに使われているモバイルSoCの最先端チップと同じプロセスを使っている。ダイサイズはすでに触れたように363平方mmと、コンシューマ機器の標準的なサイズを大きく越え、サーバーCPU並だ。ちなみに、PLAYSTATION 3(PS3)のCell Broadband Engine(Cell B.E.)は初代で228平方mm、RSX GPUは257平方mmだった。

Xbox OneのメインSoC

 メインSoCのトランジスタ数はXbox Oneの発表の時に公表された通りの5Billion(50億)。トランジスタ数が異常に多いのは、内蔵するSRAMメモリ量が多いためだ。Hot Chipsのプレゼンテーションでは合計で47MBになると示された。GPUコアに併設された32MBのメモリに、キャッシュ等も加えると見られる。それでも47MBは多いが、もしかすると、冗長性のためのメモリアレイ部分なども含んでいるかも知れない。

 32MBのグラフィックス用メモリは、ESRAM(Embedded SRAM)とも呼ばれている。メモリセルが標準的な6T SRAMだとすれば、32MBのESRAM部分だけでトランジスタ数は計算上は約1.6B(16億)となる。さらに冗長セルのトランジスタ数も加わる。約1.6B(16億)のトランジスタが加わるなら、合計で5B(50億)になるのは当然だ。

 省電力機能では、クロックゲーティングによってアイドル時はフルパワーの2.5%の電力にまで抑えることが可能だと言う。

内部インターコネクトがAMD APUと大きく異なる

 メインSoCの内部は、AMDの標準的なAPUとはかなり異なっている。ただし、AMD APUの設計の流れを引きずっている部分もある。CPUコアとGPUコアの両方からDRAMコントローラへのインターコネクトがある点だ。比較用にAMDのTrinity(トリニティ)APUのダイアグラム図を並べてみた。

Xbox One SoCの構成要素
AMD Trinityのアーキテクチャ(PDF版はこちら)

 上の図のXbox OneメインSoCの図の中を右から見て行くと、DRAMコントローラは64-bitのチャネルが4つの合計256-bit幅となっている。メインメモリのピーク帯域は68GB/secなので、DDR3を2,133Mbpsで駆動していることになる。メモリモジュールは使わない、オンマザーボード接続なので、2,133Mbps動作をさせることは相対的に容易だ。そのため、DDR3でもコストは低いと推測される。

 68GB/secのメモリ帯域は、GPU側のMMUからのアクセスではフルにアクセスができる。しかし、同じGPUからのアクセスでも、CPUとキャッシュコヒーレンシを取るCPU側を経由するアクセスでは、利用できるメインメモリ帯域は30GB/secに抑えられる。CPUとのコヒーレントを取る帯域が制約される点はAMDのAPUと同様だ。

 左のグリーンの塊はGPUコアと専用プロセッサ群だ。GPUコアとビデオコーデックなどがGPU側のホスト-ゲストGPU MMU(Memory Management Unit)に接続されている。このホスト-ゲストGPU MMUは、CPU側とI/O側のMMUと連携し、メモリを共有しページテーブルを同期させる。そのため、CPUとGPUの間でメモリポインタも共有できる。

 Xbox Oneのメモリシステムの最大の特徴である32MBの組み込みSRAMは、GPU側のホスト-ゲストGPU MMUに直結されている。8MBずつのブロックにそれぞれ256-bitのリード&ライトバスで接続されている。バスは合計で1,024-bitとなる。メモリ帯域はピークで204GB/secで、ミニマムが109GB/secとなっている。204GB/secなら転送レートは計算上1.6Gbpsとなる。

 GPU MMUはDRAMコントローラに68GB/secのフル帯域を活かす帯域で接続している。AMDのAPUなら、Radeon Memory Bus(GARLIC)と呼ばれているバスだ。また、GPU MMUから、CPU側のメモリコントローラにも接続している。これは、AMD APUではFusion Compute Link(ONION)と呼ばれているバスに当たる部分だが、Xbox Oneでは異なる。メモリ共有の仕組みがAMD APUと異なるため、コヒーレントプロトコルなどが拡張されていると見られる。

GPUコアは850MHz程度で駆動し1.31TFLOPS

 CPUコアはJaguarアーキテクチャで、4コアと2MBのL2キャッシュずつ1個のコンピュートユニットにまとめられている。Xbox OneはTSMC製造であるため、AMDの28nm世代のコアではJaguarしか選択肢がない点は、PS4と同様だ。ただし、メモリ共有の仕組みが異なるため、バスプロトコルなどは拡張されている可能性がある。

Xbox One SoCのCPU部
Jaguarのアーキテクチャ(PDF版はこちら)

 GPUコアは、演算パフォーマンスが1.31TFLOPSで、テクスチャフィルタリング性能が41GTexel/sec。GPUコアの演算ユニットは、12 CU(Compute Unit)で768 FMADと言われているので、逆算するとGPUコアの動作周波数は850MHz程度となる。800MHzで動作させると見られるPS4のGPUコアより若干高い周波数に持って来ると見られる。ゲーム機のチップの場合は、スペックの周波数で動作しないチップは使うことができないので、スピードイールドが問題となる。850MHzで動作させることは、50MHz上げてもスピードイールドがさほど落ちないという見極めができたことを意味しているかも知れない。

GPUとそのMMU接続

 ROP(Rendering Output Pipeline)のパフォーマンスは13.6Gpixel/sec。850MHzで逆算するとROPユニットが16個であると見られる。GPUコアで目立つのは、コマンドプロセッサ。チャートでは、グラフィックスとコンピュートの両コマンドプロセッサが二重化されている。また、コマンドプロセッサはカスタム設計とされている。

 Xbox Oneで、意外なほど強化されていたのはオーディオプロセッサだ。2個の128-bit SIMD(Single Instruction, Multiple Data) FPエンジンを備え、15.4GFLOPSの演算性能を持つ。また、2個のスカラDSPコアも持つ。専用ハードウェア部分の処理性能は18Gオペレーション相当だ。強力なオーディオプロセッサ群は、Kinectのオーディオ処理なども行なうためだ。

強力になったオーディオプロセッサ

違いが目立つXbox OneとPS4のチップ

 正体が見えてきたXbox Oneのメインチップを、PS4と比べると、いくつか違いが見えてくる。CPUコアやGPUコア回りのインターコネクトなどについて言えば、Microsoftの方がカスタム度が高い。PS4はAMDのFusion Compute Link(ONION)とRadeon Memory Bus(GARLIC)を拡張して使っている。Microsoftはそれより一歩進んだカスタマイズとなっている。逆を言えば、Microsoftの方がチップコストだけでなく、設計コストもかけている。

Xbox Oneチップのまとめ

 とはいえ、PS4 APUもOnionが拡張されていたり、GPUコンピュートのWavefrontを生成するACEs (Asynchronous Compute Engines)を大幅に拡張するなど、さまざまな効果的な機能拡張が加えられている。また、メインメモリで広帯域を実現しているPS4の方が、プログラミング的には扱い易い。また、PS4はサウスブリッジに当たるコンパニオンチップがある程度独立して動作可能な構成になっている。

 PS4とXbox Oneは、CPUコアやGPUアーキテクチャなどに共通性がある程度あるものの、全体的に見るとかなり性格が異なるハードウェアだ。

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