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

それぞれの哲学の違いが感じられる新ゲーム機


●自宅ではゲーム機がフル回転

 自宅で、新ゲーム機がこの2カ月ほどフル回転している。12月から正月にかけて、Xboxのタイトルをがしがしと3本ほどフィニッシュした。一方、ゲームキューブは息子が担当していて、これも順調にゲームを消費している。こうやって、新ゲーム機にさわっていると、それぞれのゲーム機のフィロソフィー(哲学)が大きく異なるのが肌で感じられてくる。

 XboxとゲームキューブはどちらもSGIの流れを汲む。いずれもメインのエンジニアの多くがSGI出身者だ。そのため、特にXboxがそうなのだが、グラフィックスワークステーション的な絵作りになっている。それに対して、PlayStation 2のエンジンは、ゲーム機的でもなくグラフィックスワークステーション的でもない、ユニークなもので。独特の絵となっている。

 まず、ハードウェア的に言うと、各ゲーム機は三者三様に弱点を持っている。それが顕著なのはメモリだ。単純に言うと、次のようになる。

・Xboxはメモリの帯域が弱点
・PlayStation 2はメモリの配置が弱点
・ゲームキューブはメモリの量が弱点

PlayStation 2Xboxゲームキューブ
ビデオメモリ+メインメモリ
容量34MB64MB27MB
メモリ帯域51.2GB/sec6.4GB/sec20GB/sec以上?
ビデオメモリ
容量4MB64MB(メインメモリの一部を利用)2MB+1MB
アーキテクチャ混載UMA混載
メモリ帯域48GB/sec6.4GB/sec10.4GB/sec以上
メインメモリ
容量32MB64MB24MB
アーキテクチャDRDRAMDDR SDRAM1T SRAM
メモリ帯域3.2GB/sec6.4GB/sec2.6GB/sec

クリックすると別ウィンドウで拡大します

●メモリの量に対して帯域が貧弱なXbox

 Xboxのメモリ容量は64MBともっとも多く、しかも、ユニファイドメモリアーキテクチャ(UMA)の単一メモリで、ビデオメモリの領域を自由に設定できる。例えば、半分の32MBをテクスチャに取って、そこにテクスチャ圧縮で32MB×6=約200MB分のテクスチャを押し込むことも可能だ。ゲーム機の極少のメモリ量で苦しんだデベロッパにとっては、夢のような量のメモリがある。

 このメモリの量は、テクスチャだけでなくHDTV対応などでも有利に働く。HDTVの高解像度に必要なフレームバッファを取っても、十分テクスチャなどに回すメモリがあるからだ。実際、米国の発売タイトルだとHDTV(といってもたいていがまだ480P)対応タイトルがある。

 しかし、Xboxのユニファイドメモリの帯域は6.4GB/secと、ビデオメモリも合わせて計算すると3アーキテクチャ中でもっとも狭い。このメモリ帯域の少なさは、理論上、Xboxの弱点となる。理論上と書いたのは、実際のゲーム開発でどの程度弱点になるのかがまだわからないからだ。Xboxは、テクスチャ圧縮やプリフェッチングでメモリ帯域の弱点をカバーしている上に、ワンパスで最大4テクスチャを貼れるため、テクスチャを4つ重ねてもテクスチャリード以外ではメモリ帯域を食わない。そのため、このメモリ帯域でも、ある程度までは問題がない。おそらく、通常のアナログTVの解像度に出力する限りは問題がないだろう。

 しかし、Xboxのスペックをフルに使おうとするとどうなるかは、わからない。例えば、HDTV対応で解像度をさらに上げると、フレームバッファやZバッファの帯域が拡大する。テクスチャも解像度に合わせてリッチにするとテクスチャリードも増える。また、フルスクリーンアンタイエイリアシングや、メモリ帯域を食うタイプのフィルタリングなどをやると、さらに食われる。そうなると、帯域がボトルネックになる可能性がある。このあたりは、実際にゲームデベロッパがXboxの機能を使いこなしてこないとわからない。

 今の段階は、Xboxのスタートダッシュで、デベロッパはXboxの限界を引き出しているようには見えない。まだXboxの潜在性能を引き出しているとは言えない。確かに、「Dead or Alive 3(DOA3)」のテクスチャは圧巻だし、「Halo」はマルチテクスチャで重厚な質感を出しているし、「DOUBLE-S.T.E.A.L」はDOF(Depth-of-Field:被写界深度を設定してぼかしを入れるMultisamplingテクニック)を効果的に使っている。Xboxでないとできないグラフィックスのタイトルは確かにあるのだが、まだフルではない。

 こうしたXboxのメモリに対する考え方を要約すると次のようになる。「メモリ帯域も重要だがそのためにメモリの量が犠牲になるのなら本末転倒」という哲学だ。これは、テクスチャをリッチにガンガン貼るという、CGムービー的な絵作りが、Xboxのベースにあるからだろう。

●メモリの配置の効率が悪いPlayStation 2

 それに対して、PlayStation 2はメモリ帯域では圧倒的なスペックを誇る。PlayStation 2のビデオメモリは、グラフィックスチップ「Graphics Synthesizer(GS)」に内蔵するエンベデッドDRAMで、帯域は48GB/secだ。ところが、ビデオメモリの量はというと、たったの4MBしかない。だから、フレームバッファ、ダブルバッファ、Zバッファと取ってゆくと、テクスチャメモリは半分程度しか残らない。

 そのため、PlayStation 2では、メインメモリ上にテクスチャをロードしておき、使う分のテクスチャをビデオメモリに頻繁に転送する必要がある。ところが、メインメモリはCPU+ジオメトリエンジンである「Emotion Engine(EE)」に接続されている。EEのメモリユニットでアクセスしてGSに専用ポートで転送するためどうしてもレイテンシが長くなる。しかも、このキャッシングは自動的には行われないので、ゲームのエンジニア側が面倒を見る必要がある。また、メインメモリ上で圧縮されているテクスチャは、伸張してビデオメモリに送る必要があるので帯域も食ってしまう。

 こうした効率の悪いメモリの配置のため、PlayStation 2ではテクスチャが弱点となっている。リッチなテクスチャが使いにくく、デベロッパはテクスチャデータを削ることとテクスチャのキャッシングに頭を使わなくてはならない。例えば、ステージを暗くして色数を抑えたりといった逃げのテクニックを使うことになる。また、PlayStation 2ではレンダリングパイプは1パスで1テクスチャなので、テクスチャレイヤを重ねにくい。PlayStation 2のこの弱点は有名で、ゲームデベロッパの多くが苦労をして来た。

 もっとも、PlayStation 2のこうした弱点は、意図したものであるという気もする。つまり、アーキテクチャからは、マルチテクスチャやフィルタリングでリアルな質感を出すのではなく、デザイナーが美しいテクスチャを描く方がいいという、デザイン哲学が感じされる。

●インテリジェントなキャッシングでカバーするゲームキューブ

 一方、ゲームキューブもPlayStation 2と同じようにビデオメモリにエンベデッドRAMを使っている。しかし、アプローチはかなり異なる。ゲームキューブのグラフィックスチップ「Flipper(フリッパ)」に内蔵するビデオメモリの量は、フレームバッファとZバッファで約2MB、テクスチャバッファで1MB。PlayStation 2よりプアだ。これは、ダイサイズ(半導体本体の面積)を減らしてコストを抑えるためだ。このテクスチャメモリの量だと、リッチな今風の3Dグラフィックスを作るのは難しい。そのため、PlayStation 2と同じように、メインメモリ上に取ったテクスチャ領域との間でキャッシングが必要となる。

 ここで、ゲームキューブがPlayStation 2と違うのは、このキャッシングをハードウェアが面倒を見ることだ。つまり、デベロッパ側はテクスチャデータがどこにあるかをケアしなくても、自動的に使われるテクスチャがエンベデッドメモリの方に取り込まれる。もちろん、それでメインメモリが遅ければうまく働かないわけだが、Flipperの場合はメインメモリもランダムアクセスに強い1T-SRAMなので、サステインのレイテンシは約10nsと異常に小さい。

 また、PlayStation 2と違ってグラフィックスチップ自体がメインメモリに接続されている。そのため、PlayStation 2よりずっとテクスチャは扱いやすい。ゲームキューブでは、この高速なメインメモリの上にダブルバッファ領域も取ることができる。つまり、ダブルバッファで、直接描画する方のバッファは内蔵メモリに置き、DACに出力して表示する側のバッファはメインメモリに取る。ちなみに、ゲームキューブの場合、DACはFlipperではなくなんとビデオケーブルに内蔵されている。

 こうしたアーキテクチャで、ビデオメモリの量をうまくカバーしているゲームキューブだが、泣き所がある。それはメモリの量だ。ユニークな1T-SRAMをメインメモリに使ったため、メインメモリは96Mbitのx32チップ2個の合計24MBとなっている。この不利を補うために、ゲームキューブでは128MbitのSDRAM(x8)を1個積んでいる。これで16MBがプラスされるわけだが、このメモリはメインメモリとはアーキテクチャもバスも異なるわけで、使い方は限られる。実際にどう使っているかはわからないが、あまり有効に使えるとは思えない。

 このメモリ量の少なさは、理論上、ゲームキューブの弱点となる。理論上と書いたのは、こちらもXbox同様にこの弱点をカバーする仕掛けをいろいろ備えているからだ。できる限りデータ量を少なくできるように工夫をこらしている。

 また、こうしたアーキテクチャを採るゲームキューブは、チップ数がたった5個と極めて少ない。実装面積も小さく、それがあの小さな箱を実現している。そこには、ゲーム機は小さくコンパクトで、子ども部屋の床に置けるものでなければならないというフィロソフィーが感じられる。


バックナンバー

(2002年1月18日)

[Reported by 後藤 弘茂]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp

Copyright (c) 2002 impress corporation All rights reserved.