プレイステーション2(PS2)をターゲットにしたX-Box。だが、両者のアーキテクチャには様々な違いがある。なかでも、もっとも両者の違いが際だつのが、メモリ回りだ。
X-Boxでは、メモリはUMA(Unified Memory Architecture)構成で、CPUとグラフィックスがメインメモリを共有する仕組みになる。つまり、メインメモリとビデオメモリは一緒になるわけだ。それに対して、PS2はメインメモリとは別に、グラフィックスチップである「Graphics Synthesizer(GS)」にビデオメモリが内蔵されている。この構成のため、X-Boxではビデオメモリの量は優位だが帯域は不利、PS2ではビデオメモリの帯域は優位だが量は不利となっている。
表:PS2とX-Boxのメモリスペック
PS2 | X-Box
ビデオメモリ | メインメモリ | UMAメモリ
| メモリ量 | 4MB | 32MB | 64MB
| メモリ帯域 | 48GB/秒 | 3.2GB/秒 | 6.4GB/秒
| メモリ種類 | 混載 | DRDRAM | DDR SDRAM
| インターフェイス幅 | 2,560bit | 32bit | 128bit
| クロック | 約150MHz | 400MHz | 200MHz
| 転送速度 | 約150MHz | 800MHz | 400MHz
| DRAMチップ数 | 混載 | 2個 | 4個?
| DRAMチップ容量 | ― | 128Mbit | 128Mbit?
| テクスチャ圧縮 | なし | あり | あり
| |
●論理的なPS2のメモリ帯域
PS2とX-Boxのメモリスペック |
一般に、混載DRAMでは容量を大きくすることが難しい(混載DRAMのセルサイズが大きいプロセスが多いため)。その反面、メモリインターフェイスの幅を広く取ることができる。GSでは、この利点をいかして2,560bitという途方もないメモリインターフェイス幅を実現している。このバスは、リードとライトがそれぞれ1,024bit、テクスチャが512bitの構成だ。つまり、GSの16並列のピクセル処理パイプ1本あたりにリード専用バスが64bit、ライト専用バスが64bit、テクスチャ専用バスが32bit割り当てられている計算になる。
このスペックは非常にロジカルだ。というのは、GSのピクセルデータはRGB各色とαがそれぞれ8bitづつで32bit、Zバッファ32bitと発表されている。つまり、1ピクセルのデータは64bitで、貼り込むテクスチャデータは32bitということになる。つまり、GSのビデオメモリの帯域は、レンダリングエンジンがピークで必要とする量にピッタリと合った理想型というわけだ。
●計算上足りなくなるX-Boxのメモリ帯域
論理的なPS2のビデオメモリ帯域に対して、X-Boxのメモリ帯域は非常にアンバランスだ。X-Boxのグラフィックスチップ「X-Chip」のフィルレートは、PS2の2倍の4.8Gピクセル/秒ということになっているが、このフィルレートだと単純にフレームバッファへの書き込みと読み出しだけでも、40GB/秒近くのメモリ帯域が必要になってしまう。ところが、X-Boxのメモリ帯域は6.4GB/秒で、しかもCPUと共有するUMA構成であるため、グラフィックスが使える帯域はさらに少ない。つまり、全然足りない。でも、逆に考えれば、このフィルレートが異常に高すぎる。ただ描画するだけならHDTVの解像度でさえ、こんなレートは不要だ。これはどうなっているのだろう。
現時点で、Microsoft側が説明しているのは、X-Box世代のゲームでは、「ピクセルを何回もプロセッシングする必要がある」(NVIDIA)ということだ。例えば、複数の光源をサポートしたり、「画面全体にアンチエイリアシングをかけて3Dグラフィックスのジャギーをなくす」ために、ピクセルパフォーマンスが必要なのだという。
こうした説明からすると、1ピクセルにレンダリング処理を複数回かけるということになる。ピクセル処理が終わったピクセルを、メモリに書き込まずにそのまま再びピクセルパイプに流すということだ。確かに、そうした処理を繰り返すのなら、フィルレートはメモリ帯域以上に高くても不思議はない。
だが、X-Boxのメモリ帯域だと、X-Chipのフィルレートのスペック値を出すには、ひとつのピクセルを7回もピクセルエンジンにかける必要が出てくる。逆を言えば、そうした処理をしない限り、X-Boxはフルのグラフィックス性能が出ないことになる。性能のオーバーヘッドと言えばそれまでだが、今の3Dグラフィックスを考えると、あまり現実的とは思えない。このあたりは、MicrosoftがX-Boxでどんなグラフィックスを実現しようとしているのかを、もっと知る必要がある。今後の取材で明らかにしていきたい。
●PS2のビデオメモリ量はエンジニアにはきつい制約
狭いメモリ帯域は、X-Boxの性能の制約になる可能性が高い。しかし、メモリサイズになると立場は逆転する。64MBのメモリを好きなだけビデオメモリに割り当てられるX-Boxに対して、PS2は4MBのビデオメモリしか持たない。これは、Dreamcastの8MBよりも少ない。PS2の大きな弱点になっているように見える。
少ないビデオメモリで、まず制約を受けるのはテクスチャデータの格納に取れるメモリサイズだ。フレームバッファ、ダブルバッファ、Zバッファと取ってゆくと、インターレースで描画するとしても半分近くまでビデオメモリを使ってしまう。つまり、テクスチャの格納に使えるメモリの量は極めて少ない。おまけにテクスチャを圧縮してビデオメモリ上に置いておくこともできない。
X-Chipは、8対1で圧縮ができる圧縮テクスチャの伸張機能を持つことになっているので、テクスチャを実メモリ以上に詰め込める。ところが、PS2の場合は、圧縮テクスチャの伸張機能を持つのはGSではない。CPU+ジオメトリである「Emotion Engine(EE)」が内蔵するIPU(イメージプロセッシングユニット)がメインメモリ上にある圧縮テクスチャデータを展開する仕組みになっている。そのため、ビデオメモリ上ではテクスチャの圧縮ができない。
こうしたアーキテクチャのため、PS2ではテクスチャを多用するゲームはメインメモリ上にテクスチャを置いておき、EEからビデオメモリに小出しに転送するというテクニックが、必要になる場合があるという。つまり、ビデオメモリ上のテクスチャメモリは、キャッシュのように使うわけだ。その場合、エンジニアは、ビデオメモリ上にあるテクスチャを把握し、EEから次々にテクスチャを送り込むことに神経を使わなければならない。
それに対して、X-Boxでは気兼ねなく大きなテクスチャをビデオメモリに置いて、自由に貼ることができる。Microsoftでもこの利点をよく承知しているため、X-Boxの説明会ではひたすら大きなテクスチャを貼ったデモを見せていた。
また、ビデオメモリの少なさは、HDTVのような高解像度に将来対応する場合にも制約になる。単純計算ではHDTVの1080i(1,920x1,080ドット/インターレース)や720p(1,280x720ドット/プログレッシブ)に出力するには、フレームバッファだけで4MB近くが必要になる。ダブルバッファやZバッファ、テクスチャメモリにビデオメモリを割く余裕はほとんどない。ゲームにはちょっと苦しそうだ。とは言え、これが問題になるのはHDTVが普及し、HDTV向けのソフトが必要となってからなので、現状では問題ではない。
●メモリアーキテクチャの違い
この他、メモリ回りで重要なのは、メインメモリにPS2がDirect Rambus DRAM(DRDRAM)を、X-BoxがDDR SDRAMを採用する点だ。両者を比較するとメモリ帯域でX-BoxがPS2の約2倍のように見えるが、実際はそうではない。このメモリ帯域のスペックはあくまでもピーク性能で、実効帯域ではDDR SDRAMはぐっと落ちる。X-Boxが4.xGB/秒に対してPS2が3GB/秒だろう。これは、DRDRAMの方が、1チップ当たりのバンク数がずっと多いことが影響している。メモリ搭載量が少ない組み込み向けには、DRDRAMの方が向いている。
メインメモリの量は、ビデオメモリを差し引いてもX-Boxの方が有利だが、メモリの制約がきついゲーム機に慣れた日本のゲーム開発者にとっては、32MBあれば十分だろう。しかし、PCゲームに慣れた米国の開発者にとっては、64MBはかなり嬉しいかもしれない。
ちなみに、X-Boxはx32(32bitインターフェイス)の128Mbit DRAMチップを4個搭載すると見られる。x32にするのは、帯域を広くしながらチップ個数を減らせるからだ。DDR SDRAMではグラフィックスと通信向けに、x32の方が先行している。コスト的な比較は、両DRAMアーキテクチャの普及と価格低下にかかっているので、現状ではまだ見えない。
□関連記事
プレイステーション2 関連記事リンク集
http://pc.watch.impress.co.jp/docs/article/20000221/ps2i.htm
X-Box関連記事リンク集
http://pc.watch.impress.co.jp/docs/article/link/xbox_i.htm
(2000年4月21日)
[Reported by 後藤 弘茂]