PlayStation2で実現されるゲームは、どんなものになるのだろう?
まず、スーパーリッチなテクスチャと膨大なポリゴンで描かれたフォトリアリスティックな3Dグラフィックス。キャラクタは、今までの3Dゲームのように、あらかじめ記録されたシーケンスで動くのではなく、現実世界の物質と同様に物理的な属性を持ち、物理法則に従って動く。ゲーム世界のすべての3Dオブジェクトが物理属性を持ち、インタラクティブに扱うことができるほんもののバーチャルワールドだ。そこに、MPEG2のリアルなムービーが織り込まれ、さらにリアリティを高める。
これは、たんなる想像だが、現実に、こんなゲームが実現しても不思議はない。ソニー・コンピュータエンタテインメント(SCE)が東芝と共同開発している、次世代エンターテイメント機器向けのプロセッサなら、これだけのことを十分実現できるからだ。両社が開発したのは、マルチメディア拡張命令を搭載した128ビットのCPUコアに、10個の浮動小数点積和演算ユニット、4個の浮動小数点除算ユニット、MPEG2デコーダを組み合わせたチップだ。SCEと東芝は、2月15日から米国で開催されている半導体業界の学会「1999 ISSCC (IEEE国際固体回路会議)」で、このプロセッサを発表した。
もっとも、ISSCCは、研究発表の場であり、ここで発表されたチップが、かならずしも実際の製品として登場するわけではない。だから、ISSCCで発表されたチップが、次世代PlayStationに搭載されると決めつけることはできない。しかし、このプロセッサの発表を行なったSCEが、第4世代のエンターテイメント機器を実現するチップとうたっており、すでに実際のチップを試作していることなどを考えると、かぎりなく“クロに近い”のはたしかだ。
実際、ISSCCの会場でも「これは次世代のPlayStationに搭載するつもりなのか」という質問が出た。その質問に対して、笑いのうずが巻き起こったのは、誰もが同じことを考えているからにほかならない。SCEの解答は、「ノーコメント」だったが、ISSCCで発表されたチップそのものではないとしても、同じアーキテクチャが、次世代PlayStationに使われる可能性は非常に高いと思われる。
●ゲーム機は第4世代へ
'80年代に、非常に単純なコンピューティングデバイスとして産まれたコンシューマ向けエンターテイメント機器は、'80年代の終わりにはリアルタイムのシンセサイズドサウンドを扱える第2世代に進化した。そして、'90年代半ばに登場した第3世代では、リアルタイムの3Dグラフィックスが実現された。だが、21世紀を迎えるころのゲーム機は、ただの3Dグラフィックスにとどまらない、新たなステージへと踏み出す。これが、SCEがISSCCで描いた、ゲーム機の世代交代ビジョンだ。そして、SCEと東芝が開発したチップは、この、第4世代ゲームマシンを実現するものだという。
ISSCCでの発表によると、来世紀のゲーム機で重要になるのは、「Behavior Synthesis」「Realistic Geometry」「High Resolution Image」の3つの要素だという。
ひとつ目のBehavior Synthesisは、物理シミュレーションを行ない、リアルなフィーリングを再現することだ。例えば、キャラクタのモーションは、プリレコードされた動きを再生するのではなく、物理シミュレーションでリアルタイムに計算される。ゲームの世界の環境も同様で、おもなオブジェクトは物理特性が定義されていて、物理法則に従って動く。例えば、道具を取り損なえば、それは設定された重さに従って落ちて自然に転がるだろう。水に足を突っ込めば、自然な波紋が広がるだろう。おそらく、これは現実世界そのままを、ゲームのなかに再現するようなアプローチを指すのだと思われる。こうした世界なら、決まった動き、決まったシーケンスがなく、物理法則の中でなんでも起こりうる。
ふたつ目のRealistic Geometryは、こうしたバーチャルワールドに、さらに現実感を与える、よりリアルな3Dグラフィックスの実現を指す。これまで以上に膨大なポリゴン、高度なライティング、複雑なサーフェイスモデルがこれを実現する。
みっつ目のHigh Resolution Imageは、より緻密で精細なグラフィックスを実現することだ。ISSCCの発表では、コンシューマ機の限られたメモリの中で、テクスチャマッピングでのリアリティを向上させるために、テクスチャデータの圧縮を行なうと述べた。また、MPEG2で圧縮されたビデオをデコード、ゲームに織り込むことができるようにする。
●4つの演算ユニット群を128ビットバスで接続
ダイアグラム図 ISSCC99で発表された図をベースに、独自に作成 |
しかし、SCEと東芝が描く第4世代ゲーム機を実現するためには、膨大な演算が必要となる。そこで、両社がとったアプローチは、3つの異なる演算ユニットをワンチップに搭載して、それぞれのタスクを、それぞれのエンジンに割り当てるという手法だ。
ダイアグラム図を見るとわかる通り、この次世代プロセッサには、4つの大きな演算ユニットがある。
○CPUコアと浮動小数点ユニット
○VPU0と呼ばれるベクターユニット(ベクトル演算ユニット)
○VPU1と呼ばれるベクターユニット
○IPU(イメージプロセッシングユニット)
そして、このそれぞれのユニットが、役割を分担する。つまり、CPUコアがトータルのコントロールを行ない、VPU0がBehavior Synthesisを担当、VPU1がジオメトリ処理を行ない、IPUがMPEG2などの圧縮されたイメージの展開を行なう。VPU0はCPUのコプロセッサで、VPU1がいわゆるジオメトリエンジンで、IPUがデコーダだ。また、これらのユニットは、128ビットの内部バスで接続されている。10チャンネルのDMAコントローラが、このバスをハンドルする。各演算ユニットの動作クロックは250MHzで、バスやインターフェイスユニットのクロックは125MHzだ。
●浮動小数点ベクターユニットVU0--CPUのコプロセッサ
各ユニットのうち、VU0とVU1は、役割こそまったく異なるが、アーキテクチャは基本的に同じものだ。どちらも、アーキテクチャ的にはVLIW(very long instruction word:ひとつの命令語の中に複数のオペレーションを入れることができる)だ。
まず、VU0だが、こちらは4個の浮動小数点積和算ユニットFMACと1個の浮動小数点除算ユニットFDIVを持つ。浮動小数点演算と言っても、各ユニットはIEEE単精度フォーマットだけをサポートし、倍精度はサポートしない。これは、このプロセッサの浮動小数点演算ユニットすべてに共通している。今のところ、ゲームでは、単精度しか要求されないので、これは当然のことなのだろう。
積和算はスループット1、除算はスループット7で実行できる。もちろん、FMACは、各サイクルごとに4個の並列演算が可能だ。VU0には、32個の128ビット幅の浮動小数点レジスタがあり、各レジスタが4個の単精度浮動小数点データを格納できる。また、このほかに16個の16ビット整数レジスタもある。
VU0は、データ用のメモリとしてVUMEM0と名付けられた4KBのメモリを持つ。また、VU0内の各ユニットをコントロールするマイクロコードを収める4KBのメモリ「microMEM0」がある。このmicroMEM0もプログラマブルで、マイクロコードを入れ替えられる。
VU0は、CPUコアと専用の128ビットポートで接続されており、メインバスを使わないでデータを転送できる。VU0がCPUコアと密接に連結されているのは、VU0の処理するBehavior Synthesisのタスクが、CPUのタスクと同期しているからだという。
●浮動小数点ベクターユニットVU1--ジオメトリエンジン
もうひとつのベクターユニットVU1は、VU0と基本的なアーキテクチャは同じだ。ただし、VU0にはないEFU(エレメンタリファンクションユニット)という、ジオメトリパイプラインで多用されるサイン/コサイン演算などを担当するユニットが加えられている。また、VU1はマイクロコード用メモリmicroMEM0と、データ用メモリVUMEM1も、それぞれ16KBに拡張されている。
VU0がCPUのコプロセッサ的な位置づけになっているのに対して、VU1はCPUとは独立して動く別エンジン的な扱いになっている。これは、VU1がジオメトリ処理という、CPUのタスクとはあまり同期する必要がないタスクを担当しているからだという。そのかわり、VU1は、このプロセッサの外につけられるレンダリングチップと密接に結びつく。具体的には、レンダリングチップとのインターフェイスである、グラフィックスインターフェイスシステム(GIF)への、専用ポートを持っている。VU1は、この専用ポートを使って、生成した膨大なディスプレイリストを渡すため、チップ内部のメインバスは使わないですむ。GIFはレンダリングチップと、専用ポートで接続する。
●イメージプロセッシングユニットIPU--デコード支援ユニット
3番目のユニットIPUは、圧縮されたイメージデータのデコードのアクセラレータだ。MPEG2のマクロブロックデコーディングをサポートし、カラースペースコンバージョンとベクター量子化も行なう。ただし、IPUは完全なデコーダではなく、基本的にはCPUのデコード処理を補助するデコード処理のアクセラレータとなっている。MPEG2のマクロブロックデコードは、768クロックで処理できる。テクスチャデータの展開も、IPUで行なう。
●128ビットに拡張されたCPUコア--SIMD命令を追加
このプロセッサのCPUコアは、MIPSアーキテクチャをベースに、128ビット拡張された新設計のコアになっている。東芝は、ISSCC99で、このCPUコアに関して、独立した講演を行なっている。
このCPUコアでは、MIPSの命令セットに、107のマルチメディア命令を新たに加えている。マルチメディア命令では、ひとつの命令で複数のパック化されたデータに対して同じ処理を同時に実行する並列処理を行なう「SIMD(Single Instruction, Multiple Data)」をサポートする。SIMDは、IntelがMMXで採用したのと同じ技法だが、IntelのMMXが64ビット幅SIMDであるのに対して、このCPUコアのSIMD命令は128ビット幅のデータを扱える。つまり、8ビット×16個、16ビット×8個、32ビット×4個のデータに対して、1サイクルで同じ処理を行なうことができる。
CPUコア内部は、64ビットの整数演算パイプを2つ備えた2ウェイのスーパースカラ構造で、128ビットのロード/ストアユニットを持つ。2個の整数演算ユニットは、128ビット幅のSIMD命令を実行できる1個の128ビット整数演算ユニットとしても機能する。
このほか、CPUコアは、単精度浮動小数点演算ユニット、シングルサイクルでアクセスできる16KBのスクラッチパッドRAM(SPRAM)、8KBのデータキャッシュ、16KBの命令キャッシュなどを含む。
CPUコアは、他の演算ユニット同様に250MHzで動作し、Dhrystone2.1ベンチマークでの性能は363MIPSだ。ただし、この性能値は、GNU Cコンパイラを使ったもので、コンパイラを今後チューンしてゆくにつれて、ベンチマーク値は大幅にアップするだろうという。
●55Mポリゴン/秒のジオメトリ性能
今回、SCEと東芝が発表したプロセッサは、メモリコントローラを内蔵し、DRAMを直接駆動できる。対応するDRAMは、Direct RDRAM(ラムバスDRAM)だ。Direct RDRAMは、1チャンネルで1.6GB/秒の帯域(400MHz時)を持つが、このプロセッサに搭載するラムバスチャネル数は明らかになっていない。
ISSCC99の発表では、プロセッサの性能も明らかになった。メモリアクセスも含めた、トータルなジオメトリ演算性能は、55Mポリゴン/秒。ライティングやフォッグなどの処理を加えた場合でも30Mポリゴン/秒だという。
今回発表のプロセッサは、ゲート長0.18ミクロン(マイクロメートル:μm)で、4層メタルレイヤ、1,050万トランジスタを集積し、コアとI/Oは1.8ボルトで駆動する。ダイサイズ(チップ面積)は239.7平方mm(17mm×14.1mm)で、これは、初代Pentium II(Klamath)よりも大きい。また、消費電力も見積もりで15ワットだ。このダイサイズと消費電力は、どう考えても組み込み用としては大きすぎる。
そのため、このチップがそのまま次世代PlayStationに乗ってくるとは考えにくい。チップの歩留まりが悪くて供給不足になる危険があったり、高価なクーリング機構が必要となったりするのでは、コンシューマゲーム機に採用できないと思われる。このアーキテクチャが採用されるとしても、実際に搭載されるチップは、もう1世代、製造プロセスがシュリンクしたあとのチップかもしれない。
('99年2月22日)
[Reported by 後藤 弘茂]