このページの本文へ

【ISSCC 2005 Vol.5】SPEが実現するPlayStation3の可能性とは――Cellプロセッサーから見えてくるPlayStation3の姿 その2

2005年02月12日 16時45分更新

文● 西川善司(トライゼット)

  • この記事をはてなブックマークに追加
  • 本文印刷
2月8日に発表となったCellプロセッサー。汎用プロセッサーとして発表されたが、注目はPlayStation3での用途に集中している
2月8日に発表となったCellプロセッサー。汎用プロセッサーとして発表されたが、注目はPlayStation3での用途に集中している

PlayStation3ではグラフィックプロセッサー(GPU)に米エヌビディア社(NVIDIA)のテクノロジーが採用されることが明らかになっている。わざわざ外部から、それもNVIDIAという知名度の高い企業の技術を引っ張ってくることから、ソニー・コンピュータエンターテインメント(株)(SCEI)がPlayStation3にもプログラマブルシェーダーベースのアーキテクチャーを持ち込みたいと考えていることは確実だ。NVIDIAには“Cg”というシェーダープログラムコンパイラーの技術もあり、PlayStation3ではこの技術も積極的に活用したいはずだ。問題はどのレベルのプログラマブルシェーダーを、PlayStation3で対応させるのかという点である。

SPEによる頂点シェーダーはVersion 2.0か?3.0以上か?

前回の記事のように、Cellプロセッサー内のSIMD RISCプロセッサー“SPE(Synergistic Processor Unit)”をプログラマブル頂点シェーダーとして活用する場合、パソコン用GPUのシェーダーモデル何をサポートするのだろうか? SPEにはプログラマビリティーの面で制約はないので、プログラマブル頂点シェーダー2.0+となることは間違いない。しかし3.0以上をサポートするには、SPEがテクスチャーへのアクセス能力を持つ必要がある。最大のポイントとなるのはここだ。

プログラマブル頂点シェーダー3.0の最大の特徴は、ディスプレースメント・マッピングの実現を含む“頂点テクスチャリング”という新概念の導入にあるからだ。そしてSPEが3.0仕様に対応できるかどうかは、PlayStation3のビデオメモリーをどこに置くかによって決まる。

PlayStation2のビデオメモリーは、GPUである“Graphic Synthesizer”自体に内蔵された組み込み型メモリーだった。しかし組み込み型メモリーでは実装可能容量に限界があり、その関係もあってPlayStation2では、“ビデオメモリー4MB”という非常に少ない設計となった苦い思い出がある。次世代のゲーム機では、映像出力解像度がHigh Definition解像度(HD解像度)、具体的には1920x1080ドット(1080p/i)や1280x720ドット(720p)となることは間違いない。そのため表示用のフレームバッファー1枚だけで、4MB(1280x720ドット)や8MB(1920x1080ドット)は必要になる。組み込みメモリーだけでビデオメモリーのすべてを賄う構成は考えにくい。しかしパソコンのGPUのように、グラフィックスサブシステム(ビデオカード)に専用のビデオメモリーを接続する構成も考えられるが、低コストが重要なゲーム機において、その選択肢を取る可能性は低い。

話を戻すと、PlayStation2のようにGPU側にローカルなビデオメモリーを持つ形態では、SPE=プログラマブル頂点シェーダーからは見えないメモリーとなってしまう。これではSPEが直接テクスチャーにアクセスすることはほぼ不可能になる。Xboxのようにビデオメモリーをメインメモリーと共用する“UMA(Unified Memory Architecture)方式”ならば、GPUが扱うテクスチャメモリーの物理アドレス空間はCPUと共有できるので、SPEからアクセスも可能になる。このデザインならSPEによるプログラマブル頂点シェーダーは3.0、または3.0以上に対応することが現実性を帯びてくる。

テクスチャー化された凹凸情報を元に、実際のポリゴンの頂点情報を変移させる仕組みは、プログラマブル頂点シェーダー3.0仕様で初めて実現可能になった。これを実現するには、プログラマブル頂点シェーダーがテクスチャーメモリーにアクセスできなければならない
テクスチャー化された凹凸情報を元に、実際のポリゴンの頂点情報を変移させる仕組みは、プログラマブル頂点シェーダー3.0仕様で初めて実現可能になった。これを実現するには、プログラマブル頂点シェーダーがテクスチャーメモリーにアクセスできなければならない

はたしてPlayStation3はUMAを採用するか?

シェーダーモデル面から考えるとUMA採用が濃厚なPlayStation3だが、UMA方式でグラフィックスサブシステムを実現する際に、不安材料になるのがメモリー帯域の問題だ。CellプロセッサーにはデュアルチャネルXDR DRAMが接続され、メモリー帯域は25.6GB/秒となることが公表されている。最新パソコンのメインメモリーがデュアルチャネルDDR2-533で、そのメモリー帯域が8.5GB/秒であることを考えれば3倍も広帯域のメモリーなのだが、これをグラフィックスサブシステムと共有するとなると、この値はむしろギリギリかややものたりない程度と言える。

たとえばNvidiaの現行ハイエンドGPU“GeForce 6800 Ultra”のピクセルレンダリングパイプラインは16本で、組み合わされるビデオメモリー帯域は35.2GB/秒(1.1GHzのGDDR3メモリー)である。CellとデュアルXDR DRAMで提供される帯域よりもかなり大きいのだ。繰り返しになるが、PlayStation3世代のゲーム機では映像出力解像度がHD解像度になるために、グラフィックスサブシステムのメモリーバス占有量はパソコンとほとんど変わりなくなる。25.6GB/秒というメモリー帯域がCellプロセッサーとGPUで奪い合いになれば、3Dグラフィックス性能はメモリー帯域に大きく制約されてしまう。

そこで浮上するのはPlayStation2同様に、PlayStation3のグラフィックスサブシステムにもローカルな小容量の組み込みメモリーを内蔵させ、これをキャッシュメモリー的に活用する方法だ。Nvidiaも“TurboCache”という、GPUが取り扱うキャッシュ技術を持っている。PlayStation3のGPUはNVIDIAの設計だが、製造は日本のソニーグループの長崎工場“Fab2”と、(株)東芝とSCEIの合弁企業である(株)大分ティーエスセミコンダクタで行なわれることが昨年12月に発表されている。これらの半導体工場は、プロセッサーと組み込みメモリーを一体成形する技術がある。この方式はビデオメモリーを外部実装するよりもだいぶ低コストになり、それでいて帯域の奪い合いを低減して性能を稼ぐことができるため、かなり現実的なアイデアと思える。

CellプロセッサーのメモリーインターフェースはデュアルXDR DRAM対応で、メモリー帯域は25.6GB/秒。メインメモリーとしては破格の速度だが、グラフィックスサブシステムのメモリーとしてはそれほどでもない
CellプロセッサーのメモリーインターフェースはデュアルXDR DRAM対応で、メモリー帯域は25.6GB/秒。メインメモリーとしては破格の速度だが、グラフィックスサブシステムのメモリーとしてはそれほどでもない

結局SPEには何ができる?

Cellプロセッサーの8基のSPEをすべてプログラマブル頂点シェーダーとすると、Cellプロセッサーを3GHzで駆動させると60億頂点/秒、4GHzでは80億頂点/秒となり、オーバースペック過ぎることは前回で触れた。PlayStation3のGPUは、開発期間を考えればASICで製造されるであろうから、動作クロック周波数が数GHz台になることはまずありえない。GPUの製造プロセスは90nmなので、GeForce 6800 Ultra(600MHz)よりもクロック周波数自体は高くできるが、それでも1GHz前後かそれ以下になるだろう。たとえば800MHzだと仮定して、GPUのピクセルレンダリングパイプライン数が16本だとすれば、フィルレート性能は128億テクセル/秒となる。ここ数年のGPUの頂点性能値はフィルレート性能値の約10分の1程度のバランスで進化してきているので、SPEでは10数億頂点/秒の性能が出せればいい。これなら3GHzのCellプロセッサーでも、2基のSPEで十分達成できる値だ。

つまりSPEをプログラマブル頂点シェーダーとして利用する可能性は非常に高いが、8基すべてをそのために使う可能性は低い。では残りのSPEは何に利用されるのか? さまざまな用途が考えられる。たとえばカナダATIテクノロジーズ社やNVIDIAが考える次世代のグラフィックスパイプラインでは、“テッセレーター(Tessellator)”と“ジオメトリーシェーダー(Geometry Shader)”が組み込まれることになっている。

次世代3Dグラフィックスパイプラインの形。Longhorn世代ではこの最新3Dグラフィックパイプラインが、“WGF(Windows Graphics Foundation)”として実装される
次世代3Dグラフィックスパイプラインの形。Longhorn世代ではこの最新3Dグラフィックパイプラインが、“WGF(Windows Graphics Foundation)”として実装される

テッセレーターとは、ポリゴンを特定の方法に従って自動分割する仕組みのことだ。たとえば少ない頂点で構成される3Dモデルを、自動的に多頂点で構成される滑らかな形状に変形させられる。入力された頂点量に対して出力頂点量が増えるこの仕組みは、それまでのグラフィックスパイプラインの考え方と適合しない概念であるため、GPUの機能としてなかなか実装されなかった。CellプロセッサーのSPEの場合、あるSPEからの出力ストリームを別のSPEに受け渡す仕組み、すなわちパイプラインの組み替えが任意に行なえるので、この概念の実現に支障はない。

たとえば、凹凸情報が記載された頂点テクスチャーを読み込んで、これを元にポリゴンモデルを分割、変形させるといった、本当の意味でのディスプレースメント・マッピングがSPEで十分実現可能となる。

同一の基本3Dメッシュモデルを、テクスチャー情報に従ってポリゴン分割して変形させるディスプレースメント・マッピングの例(カナダMatrox社の資料より)

ジオメトリーシェーダーは頂点シェーダーからの出力を、“プリミティヴ・プログラム”と呼ばれるシェーダープログラムによって、ジオメトリー構造の改変を施す仕組みだ。たとえばレンダリングするシーンの画角を360度全天全周とし、これをジオメトリーシェーダーを駆使して六面体にレンダリングするようにすれば、1パスでキューブマップのレンダリングが行なえる。あるSPE(プログラマブル頂点シェーダー)からの出力ストリームを、ジオメトリーシェーダーの働きをするようにプログラムした別のSPEに受け渡せれば、こうした処理系もCellプロセッサーで十分実現可能だ。

キューブマップの例。6面体の内側に360度全天全周の情景をレンダリングしている
キューブマップの例。6面体の内側に360度全天全周の情景をレンダリングしている

Cellプロセッサーの8基のSPEは多すぎない

こうして見てみると、8基のSPEをすべてプログラマブル頂点シェーダーに使うのは、確かにオーバースペックすぎる。しかし任意のSPE同士をつないでコンフィギュラブルなパイプラインを形成できる特長を生かし、テッセレーターやジオメトリーシェーダーとして活用することまで考えれば、8基のSPEというのはちょうどよい個数に思えてくる。

PlayStation3のブロックダイアグラムの想像図。Cellプロセッサーは左下部分。8基のSPEをすべて使って最新のグラフィックスパイプラインを構成したイメージ
PlayStation3のブロックダイアグラムの想像図。Cellプロセッサーは左下部分。8基のSPEをすべて使って最新のグラフィックスパイプラインを構成したイメージ

SPEをテッセレーターやジオメトリシェーダーとして使わなかったとしても、これまでの3Dグラフィックス処理ではCPUで行なわざるをえなかった“Level of Detail処理”(LOD:視点からの距離に応じてモデルのポリゴンを増減させる処理)などをSPEに任せるというアイデアもある。ベクトルデータのストリーム処理系なのにゲームエンジンに密着し過ぎていて、グラフィックスパイプラインには任せられなかった処理系をSPEに任せられれば、より高速な処理が可能になるだろう。このほかにも、ストリームプロセッサーであるSPEの特長を生かして、音声認識処理や、画像認識処理などに活用するのもおもしろそうだ。

LODとは視点に近い位置のオブジェクトは多ポリゴンで表現し、視点から遠い位置のものは低ポリゴンで表現する仕組み。CellプロセッサーのSPEならばこの処理系のアクセラレーションも可能と思われる
LODとは視点に近い位置のオブジェクトは多ポリゴンで表現し、視点から遠い位置のものは低ポリゴンで表現する仕組み。CellプロセッサーのSPEならばこの処理系のアクセラレーションも可能と思われる

PlayStation3はBlu-Rayディスクドライブを内蔵することが明言されているが、かつてPlayStation2がDVDビデオの再生に対応してきたように、PlayStation3はBD-ROMベースのハイビジョン映像ソフトの再生に対応するだろう。そうした映像データのデコード処理も、SPEを活用したソフトウェアプレーヤーで行なうことになると思われる(PS2ではMPEG-2デコード専用回路を、CPU内に持つ必要があった)。

サウンド再生についてはどうだろうか。最終的な音声出力用のD/Aデバイスやインターフェースデバイスだけあれば、波形の音程制御や合成から、チャンネルごとのエフェクトといったすべてのサウンド処理をCellプロセッサーのSPEに行なわせることも可能だろう。デジタル音源デバイスとしてSPEを活用するアイデアだ。この話をCell関係者にすると「やってできなくはないが……」と笑みをこぼす。

よくよく考えれば、PlayStation3はPlayStation2との互換性を維持することを半ば公言している(編注:正式には明言していない)ので、PlayStation2コアを丸ごと内蔵するのではと予想されている。かつてPlayStation2がPlayStation1との互換性を保つために、内蔵したPlayStationコアをI/Oプロセッサーとして利用した。PlayStation3もこの方式を採用するのが確実視されていて、音源処理などはPlayStation2コアに任せるという方針を採るものと思われる。

“NVIDIAの右腕”の異名を取る米Epic Games社が、NVIDIAの全面協力の下に制作中の“Unreal Engine3.0”(UE3)は、次世代のNVIDIA GPUでの動作を前提にしている。この画像は制作中のUE3エンジンによる実際のリアルタイムレンダリング結果。PlayStation3のゲームグラフィックスは、このレベルになることは間違いない
“NVIDIAの右腕”の異名を取る米Epic Games社が、NVIDIAの全面協力の下に制作中の“Unreal Engine3.0”(UE3)は、次世代のNVIDIA GPUでの動作を前提にしている。この画像は制作中のUE3エンジンによる実際のリアルタイムレンダリング結果。PlayStation3のゲームグラフィックスは、このレベルになることは間違いない

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン