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

Xbox 360の45nmプロセス統合チップ「XCGPU」



●Xbox 360の低消費電力化をもたらした新チップ

 Microsoftのゲームコンソール「Xbox 360」は、今春、チップ構成を大きく変えた。45nmプロセスに移行するのと同時に、CPUとGPUをワンチップに統合した「XCGPU」は、Xbox 360 250GBから搭載されている。「Valhalla(ヴァルハラ)」のコードネームで知られていたマザーボードを載せたXbox 360 250GBは、筐体が大幅にスリムになり、消費電力とファン騒音が大幅に減った。

Hotchipsで講演を行なったIBMのBob Drehmel氏

 MicrosoftとIBMは、米スタンフォードで開催されているチップカンファレンス「HotCHips 22」で、Valhallaの心臓である45nm XCGPUの正体を明らかにした。HotChipsの講演「The new Xbox 360 250GBCPU GPU SoC」では、XCGPUは「CPU GPU SoC(System on a Chip)」と呼ばれていた。タイトルの通り、同チップは、従来のXbox 360のCPUとGPUをワンチップに納めたものだ。CPUとGPUの統合化は珍しくはないが、XCGPUの場合はゲームコンソールらしい工夫が凝らされている。

 目立つのは、後方互換性を維持するために、FSB(Front Side Bus)やCPUコア、GPUコアが、以前と全く同じふるまいをするように注意深くチューンされていること。ゲーム機では、ソフトウェアがハードウェアにゴリゴリに合わせてチューンするため、シリコンが変わっても完全に近い互換性が求められるからだ。

 カスタムデザインのCPUコアと、スタンダードセルベースのGPUを統合することも課題だったと言う。また、省電力化と静音化もXCGPUのカギであり、XCGPUでは初代Xbox 360のCPU+GPUより60%以上の省電力化が達成できたという。チップサイズは50%以上の縮小になっている。電力を大幅に下げたことで、ヒートシンクやファン、電力供給も簡素化することができた。省電力技術については後の記事で説明するが、同じIBM Fabを使うCell Broadband Engine(Cell B.E.)と似たような手法も使われている。

 Xbox 360 250GBのスリム化と省電力化、そして、驚くほどの静音化の背景には、こうしたXCGPUの成果がある。

Xbox 360 250GBに搭載される新XCGPUの効果
Xbox 360 CPUとGPUの製造プロセスの推移(PDF版はこちら)

●IBMの45nm SOIプロセスで製造されるXCGPU

 Xbox 360のCPU GPU SoC(XCGPU)は、基本的にはXbox 360のCPUとGPUをワンチップに納めただけの統合チップだ。2チップを1つにまとめたことで、CPU GPU SoC(XCGPU)は372M(3億7,200万)トランジスタとなった。プロセス技術はIBMの45nm SOIプロセスで、IBMだけでなく、IBMのパートナの中の1社が製造するという。初代のXbox 360 CPUは、IBMとChartered Semiconductor Manufacturingで製造していた。Charteredは現在GLOBALFOUNDRIESに吸収されているため、XCGPUもGLOBALFOUNDRIESで製造される可能性はある。

 ダイサイズは、チップの実寸を測ると170平方mm弱程度。これは、初代Xbox 360のCPUとGPUそれぞれのダイとほぼ同じサイズだ。つまり、2世代のプロセス微細化を経て、2チップを以前の1チップ分のダイに統合することができるようになった。

Xbox 360とCell B.E.とEEのシュリンク(PDF版はこちら)

 CPU GPU SoC(XCGPU)のスペックは、初代Xbox 360から変わっていない。CPUコアは3個のPowerアーキテクチャコアと1MBの共有L2キャッシュで構成されており、3.2GHzで動作する。GPUコアは48個のシェーダプロセッサ(各プロセッサが1スカラ+4-wayベクタユニットを搭載)で構成されており、500MHzで動作する。動作周波数まで初代Xbox 360と同一だ。

 XCGPUと従来チップセットの最大の違いは、CPUとGPUの間を接続していたオフチップのFSB(Front Side Bus)が、今回のXCGPUではオンチップバスに変わったこと。オンチップバスでは、CPUコアとGPUコアを広帯域かつ低レンテイシで接続することができる。ところが、XCPGUでも以前と同じ帯域とレイテンシを維持するように設計されているという。

 PCなら、性能を上げることが可能なら上げるのが“善”だ。ところが、ゲーム機の場合は違う。ゲームがハードウェアに極度に最適化されているため、性能を上げることすらも“悪”になる。ハードウェアのふるまいが変わると、動かないゲームが出てくる可能性があるからだ。そのため、FSBのレイテンシと帯域は、オフチップ時と同様に保たれているという。

 通常のチップなら、CPUとGPUを統合することで、性能や機能が向上した点がポイントになるが、ゲーム機用のXCGPUの場合、性能や機能が変わらないことが重要なポイントとなる。そして、そのためにどんな工夫をしたかが、XCGPU設計の焦点となっている。

XCGPUの統合と主な機能
Xbox 360のCPUとGPUの進化(PDF版はこちら)
Xbox 360初代のGPU(PDF版はこちら)
Xbox 360初代のシステム構造(PDF版はこちら)

●ハードウェアのふるまいを同一に保つ
Hotchipsで講演を行なったMicrosoftのRune Jensen氏

 そもそも、Xbox 360のCPUはIBMが中心となって設計し、IBMとIBMパートナーのFabで製造されて来た。それに対してXbox 360のGPUは旧ATI Technologies(現AMD)が中心となって設計し、TSMCで製造されて来た。CPU側は設計手法がカスタムでプロセス技術はSOI(silicon-on-insulator)。それに対して、GPUはスタンダードセルのASIC型で、バルクプロセス。つまり、IPを開発したメーカーも異なれば、回路設計やプロセス技術も異なる。

 XCGPUでは、それを統合した上で、チップの機能やふるまいを従来チップと同一に揃えなければならなかった。そのためにIBMはかなり工夫を加えている。基本的にはATI設計をハードウェア記述言語の「Verilog」データとして受け取り、それをIBMのバージョンの「VHDL」ハードウェア記述言語にコンバート。その上でCPUのVHDLデータと合わせてチップを設計している。VerilogからVHDLへの転換の過程で、GPUの機能が一致するようにカスタムツールなどで検証を行なったという。

 また、統合化で消えたFSBについては、従来と同じレイテンシと帯域になるように工夫が加えられた。具体的には、せっかくFSBのPHYを取り除いたのに、FSBの代わりをする(=レイテンシを生じさせる)ロジック「FSB Replacement」を組み込んだという。ちなみに、Xbox 360 CPUのFSBは、高速伝送のため1方向(Uni-Directional)が16レーン(16-bit)のバスで、両方向で合計32レーンとなっている。Xbox 360 CPU内部のバスは64-bit幅、GPU内部は128-bit幅のパラレルバスであるため、FSBユニットでSerDes(シリアライザ/デシリアライザ)で4:1にシリアル化している。こうした処理で生じていたレイテンシは、もはや不要だが、XCGPUでは再現されている。

FSBの統合
レイテンシを入れることで完全な互換性を保った

●eDRAMの統合はコストトレードオフから採用せず

 従来のXbox 360のメインチップセットは、3個のチップで構成されていた。CPUとGPU、そしてeDRAMチップだ。XCGPUはCPUとGPUをワンチップに統合した上で、eDRAMと一緒にワンパッケージに封止している。Xbox 360アーキテクチャの最大の特徴は、このeDRAMにある。そして、それが45nmプロセスへの移行で、CPUとGPUを統合せざるを得なかった理由でもある。

 現在のグラフィックスパイプラインの場合、高度なグラフィックスを実現しようとすると広いメモリ帯域が必要となる。メモリ帯域を食う最大の元凶は、グラフィックスパイプラインの最終段になる、いわゆる「ROP(Rendering Output Pipeline)」処理だ。アルファやZテスト、アンチエイリアシングといった処理は、頻繁なメモリ読み書きが伴うため、帯域を食う。そこで、Xbox 360では、ROPを行なう固定機能のピクセルプロセッサ192個を、80M-bit(10MB)のマルチバンク化されたNEC製のeDRAMとワンチップに統合した。

 ピクセルプロセッサ群はeDRAMブロックと256GB/secの超広帯域インターフェイスで結ばれている。eDRAMの強味を活かして、低コストに帯域を稼ぐことができた。eDRAMチップとGPUの間も、32GB/secとかなり広い帯域で結んでいる。

Xbox 360のバスのバンド幅(PDF版はこちら)

 このアーキテクチャは、グラフィックスの品質を高めるには有効だった。特に、ゲームではアンチエイリアシングをかけやすいという、大きな利点があった。しかし、そのために、Xbox 360はチップの統合化では、eDRAMをどうするかという困難を抱えてしまった。

 まず、Xbox 360のGPUは、128-bit幅のGDDR3インターフェイスの他に、eDRAMのインターフェイス「HSIO」、FSB、サウスブリッジチップと接続するPCI Expressを備える。I/Oだらけであるため、チップ面積が100平方mmを切るようになると、全てのインターフェイスを低コストに実装できるパッド配置が難しくなり始める。

 実際、今回のXCGPUのダイ(半導体本体)を見ると、チップの3辺がI/Oで占められている。このことから、GPU単体で45nmにシュリンクした場合は、I/Oパッドが制約となり、チップを小型化できなくなることがわかる。CPUとGPUを統合すれば、チップサイズが大きくなるため、この問題は解決する。

 もっとも、MicrosoftにはGPUにeDRAMを統合するという選択肢もあった。IBMはeDRAMセルの技術を持っているため、Microsoftはそのアプローチを取ることもできた。しかし、Hotchipsでは、コスト面のトレードオフから、その方法は取られなかったことが明かされた。

Xbox 360の進化として考えられた2種類のプラン(PDF版はこちら)
パッケージ内にXCGPUダイとeDRAMダイが並ぶ 電圧レギュレータ回りもすっきりした新Xbox 360マザーボード Xbox 360のマザーボードレイアウト
ヒートシンクの小型化 光学ドライブとHDD部 新筐体デザイン