■後藤弘茂のWeekly海外ニュース■なぜPS3のメディアプロセッサはCellではなくNVIDIAなのか |
SCEIとの提携を発表するNVIDIAのJen-Hsun Huan 社長兼CEO |
Cellは汎用プロセッサをベースに、汎用性とフレキシビリティを維持しながら、いかにストリーミング処理を効率的に実現するかを追求したプロセッサだと思われる。そのために、汎用プロセッサコアとストリーミングプロセッサコアを混載する非対称のマルチコアアーキテクチャを取り、スレッドレベルの並列性(TLP:Thread-Level Parallelism)を高めた。
それに対して、NVIDIAはハードウェアが固定されたストリーミングプロセッサだったGPUから出発し、高効率を維持しながら、汎用性とフレキシビリティも併せ持つプロセッサを創ろうとしている。ストリーミングパイプは維持しながら、ある程度の汎用性を持つSIMD(Single Instruction, Multiple Data)ベースのプログラミングユニットである「Programmable Shader」を充実させつつある。パイプライン数を増やすことで、こちらもスレッド並列性を高めている。
つまり、異なる出自から、高いマルチスレッド処理と、汎用プロセッシングと高効率のストリーミング処理の両立という、同じ方向へ踏み出したのが両プロセッサだと言える。その意味では、PS3は、設計の方向がある程度ダブる2つのプロセッサを載せるように見える。
とはいえ、現状ではNVIDIAのGPUはまだ真の汎用プロセッサではないし、3Dグラフィックスのストリーミング処理に特化した機能を削るとも思えない。一方、Cell側には、おそらく、特定機能に特化したハードウェアは実装されていない-特定処理向けのパイプラインはストリームプロセッサを仮想的にパイプライン化して構築する-と思われる。両者には、大きな隔たりがある。
そのため、当然のことながら、ハード実装の処理についてはNVIDIAのメディアプロセッサが優れ、その一方で、フレキシビリティが必要な処理についてはCellが優れる。特に、3Dパイプを効率化するテクノロジについては、NVIDIAにはるかに大きな蓄積がある。3Dパイプで生じる余計な処理を効率よく省き、メモリ帯域を節約し、専用ハードで処理した方が効率的な部分には(固定ハード時代からの積み重ねがある)最適化ロジックを実装する。SCEIが、Cellベースのメディアプロセッサではなく、NVIDIAの技術を採用する最大の理由はそこだろう。
CellはSIMDベースのストリーミングプロセッサを多数搭載し、各プロセッサで共有するメモリ空間を設けることで、連携したパイプライン処理を可能にする。原理的には、Cellを使えば、SIMDベースのShaderで行なっているのと同じような処理が可能になる。しかし、その場合には、3D専用ハードの技術蓄積がないためトランジスタ当たりの効率はどうしても落ちてしまう。SCEIがPCグラフィックスと同レベルの高効率&高パフォーマンスな3Dグラフィックスを望むなら、GPUベンダーの力が必要というわけだ。
では、NVIDIAの創るPS3メディアプロセッサはどんな姿になるのだろう。
●節目を迎えるゲーム機のグラフィックス
ゲーム機の3Dグラフィックスは、2005~2006年のハード世代で大きな節目を迎える。そこには、複数の要因が絡んでいる。
(1)高解像度への対応が必須となる。
(2)PC/ワークステーショングラフィックスとの融合が重要となる。
(3)プログラム性のあるジオメトリ/ピクセルパイプラインが必須となる。
(1)高解像度対応はもっとも重要な要素だ。これまで、ゲーム機はPCと比べて、グラフィックスに対する要求で、大きく異なる点があった。それは画面解像度だ。基本的にTVへの出力を標準とするゲーム機の場合、画面は低解像度に固定されている。そのため、ピクセルプロセッシング性能とフレームバッファ容量&帯域はある程度限られていても問題はなかった。
しかし、2005~201x年にかけて売るゲーム機では、この前提が崩れる。TV側が、HDTVと固定ピクセルに移行するためだ。そのため、ゲーム機も、HDTVの普及を意識した高解像度設計を取らなくてはならなくなる。1,080本×1,920画素インタレースの「1080i」がスタンダードだとすれば、処理パフォーマンス的には1,920×1,080ドットをサポートする必要がある。
画面解像度が上がると何が変わるか。より強力なピクセルプロセッシング能力、より大きなメモリ容量、より広いメモリ帯域が必要になる。このうち、ピクセルプロセッシングは、シリコン上のパイプライン数を増やすことで対応できるため、現在の微細化したプロセス技術なら比較的対応が容易だ。問題はメモリ側の帯域と容量となる。
PS2では、GPUである「Graphics Synthesizer(GS)」にはDRAMは接続されていなかった。ビデオメモリは、GSに混載されているEmbedded DRAM(eDRAM)の4MBだけ。それを超えるデータは、CPUであるEmotion Engine(EE)に接続された32MBのRDRAMのメインメモリからロードする必要があった。このメモリ配置がPS2アーキテクチャの最悪の部分で、極端に狭いメモリ容量のためにゲームデベロッパは、PS2タイトルでは解像度や色数を制限するといった、血のにじむような努力を強いられていた。
では、PS3でのメモリ配置はどうなるのだろう。いくつかの理由から、PS3ではNVIDIAチップ側にも外付けDRAMが接続されていると思われる。まず、3Dゲームで高解像度に対応するとなると、フレームバッファだけでなく各種データが膨大な量になる。つまり、高解像度化のためゲーム機でも、ビデオメモリ量の要求は飛躍するため、現状のeDRAM技術で対応するのはますます難しくなる。また、PS3のDRAMの仕様が昨年から今年の間に変わったことも、NVIDIAのメディアプロセッサ側にDRAMがぶら下がっている可能性を示唆している。
●カギとなるPS3のメモリ配置
PS3のCPUであるCellプロセッサは、それ自身にメインメモリインターフェイスが統合されている。PS3のメインメモリは、Rambusの次世代DRAM技術「XDR DRAM(Yellowstone:イエローストーン)」で、おそらく、64bit幅(4チャネル分)のXDR DRAMインターフェイスを内蔵すると見られる。XDR DRAMは3.2Gtps(transfer per second)でスタートし、インターフェイスはX16(X4/X8へもコンフィギュレーション変更が可能)であるため、Cellのメモリ帯域は3.2Gtps×64bit=約25.6GB/secになると推定される。
デュアルチャネルDDR2-533が8.5GB/secの帯域だから、これはPCの約3倍の帯域となる。しかし、PS3のCellのコア数が、1汎用プロセッサコア+8ストリーミングプロセッサコアだとすると、この程度のメモリ帯域は必須だと思われる。実際、あるCell関係者は、プロセッサ設計ではメモリ帯域がもっともクリティカルだと語っていた。特に、Cellが目指している処理は、データインテンシブな処理が主流であるため、メモリ帯域は重要だ。逆を言えば、Cellのパフォーマンスをフルに活かそうとしたら、25.6GB/secのメモリ帯域を占有し、GPU側と共有しない方が望ましい。
当初、PS3は、メインメモリにXDR DRAMの512Mb(32MX16)品を4個搭載すると見られていた。DRAMベンダー各社の製品計画は、いずれも512Mb品から製造がスタートする計画になっており、XDR DRAMベンダーのひとつ東芝が2003年に出したXDR DRAMの需要予測も、PS3が512Mb品を4個載せるという推定でちょうど計算が合った。
しかし、2004年7月の「Rambus Developer Forum(RDF) Japan 2004」では、DRAMベンダーの製造が、512Mbitから256Mbit品へと切り替わっていることが明らかにされた。あるDRAMベンダー関係者は、その理由として「最大手のユーザーの需要が512Mbitから256Mbitへと変わったため」と説明していた。つまり、この時点でPS3に載せるDRAMの容量世代は256Mbitへと下がっていたわけだ。
2004年のRDFにおける、東芝によるXDR DRAMの潜在市場。赤い部分がデジタルコンシューマー(=PS3)需要 |
だが、もし、NVIDIAのPS3メディアプロセッサも、XDR DRAMのインターフェイスを備えるとしたら、つじつまが合う。つまり、Cell側に64bit、メディアプロセッサ側に64bitと2系統のインターフェイスがあるとしたら、SCEIは合計8個のXDR DRAMチップが必要となる。そこで、コストを抑えるためにDRAM容量を256Mbitへと削ったと考えればXDR DRAMを巡るこの変化も不思議ではない。ちなみに、その場合はメディアプロセッサ側にも約25.6GB/secのメモリ帯域があるため、PS3は合計で約51.2GB/secのメモリ帯域を備えることになる。
とはいえ、現在のトップエンドGPUのメモリ帯域は256bit幅GDDR3で35GB/secを超えており、25.6GB/secのメモリ帯域は決して多い方ではない。トップクラスのGPUが16ピクセルパイプをフル稼働させると、30GB/sec台のDRAM帯域でも足りていない。そう考えると、グラフィックス側だけで約25.6GB/secは必須とも言える。もちろん、実際のPS3では、eDRAMのフレームバッファと、外付けDRAMのビデオメモリという組み合わせになる可能性もある。
ちなみに、PS2のGraphics Synthesizer(GS)では、eDRAM 4MBに対してピクセルパイプラインが256bitのインターフェイス幅で接続され、メモリ帯域は48GB/secにもなっていた。これは、各ピクセルパイプにつき、リードとライトのバスが各64bit、テクスチャ専用バスが32bit割り当てられていると見られる。つまり、GSの思想は、広いバスでピクセルパイプとeDRAMを結ぶことで、ピーク時にも十分なメモリ帯域を確保するというものだった。ビデオメモリに格納するデータを圧縮するというアプローチはそこには見あたらない。
それに対してPC向けGPUは、外付けDRAMチップを使い、ピクセルパイプの処理能力に対してメモリ帯域が限られることを前提に設計されている。そのため、NVIDIAやATIは、さまざまなデータ圧縮技術でメモリ帯域を節約することにフォーカスしてきた。つまり、GPU側のシリコンを使うことで、メモリ帯域を節約することに長けているわけだ。もっと直接的に言うと、NVIDIAの技術を使えば、PS2の時のように膨大なメモリ帯域を確保する必要は薄まるのだ。
□関連記事
【12月9日】【海外】NVIDIAのトップがSCEIとの提携を発表
http://pc.watch.impress.co.jp/docs/2004/1209/kaigai140.htm
【7月16日】【海外】PlayStation 3のスケジュールは変更なし、メモリ仕様は変更へ
http://pc.watch.impress.co.jp/docs/2004/0709/kaigai101.htm
【2003年7月14日】【海外】PlayStation 3は256MBのXDR DRAMを搭載
http://pc.watch.impress.co.jp/docs/2003/0714/kaigai003.htm
(2004年12月16日)
[Reported by 後藤 弘茂(Hiroshige Goto)]