このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第138回

GPU黒歴史 2Dから3Dへの移行期に生まれた鬼子 Matrox m3D

2012年02月13日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

PowerVR MBXシリーズの「PowerVR MBX Lite」を採用したSoCのサンプル機。2005年のもの

 VideoLogicもSTMicroelectronics撤退の後に方針を転換し、社名をImagination Technologiesに変更するとともに、PowerVRのグラフィックコアをIPの形で提供するという、ARMとかMIPSのようなビジネスに切り替えた。

 その最初の製品が「PowerVR MBX」という低消費電力のグラフィックコアで、分類によっては、これをSeries 4と数えることもある。PowerVR MBXはARMベースの携帯機器向けSoCで、3Dグラフィックが必要とされる用途向けに広く採用された。これに続いて投入された「PowerVR Series 5」は、特にスマートフォン向けのARMベースの携帯電話向けSoCに多く採用され、変わったところではインテルのAtom(Atom Z600シリーズ)にまで搭載されている。現在では「PowerVR Series 6」が開発中で、主要な携帯電話向けSoCベンダーが相次いで、これのライセンスを受けたことがアナウンスされている。

 PowerVRは独特の「Tile Rendering」(正式にはTile-Based Deferred Rendering、TBDR)という手法を採用することで、少ないメモリー量で高速な3Dレンダリングができることを特徴とする。PC向けとしてはPowerVRのほかに、3dfxに買収されたGigaPixel社とか、ATIに買収されたArtX社のコアが、このTBDRを採用していた。PowerVRは一貫してこの方式を採用しており、最近でもARMの「Mali」シリーズGPUがこのTBDRを採用するなど、息の長い技法である。

 TBDRは画面を適当なサイズの「Tile」に分割して、Tile単位でレンダリングをするという方法だ。画面サイズがそれほど大きくない限りは、効率よくレンダリングできる。一方で、最近主流のフルHD解像度や、近い将来登場するといわれる4K2Kといった大画面サイズになると、むしろ効率が落ちるとも言われている。だが、今回のお題であるm3Dが登場した1997年あたりは、最近のスマートフォン向けよりも小さい画面サイズを少ないメモリーで処理する必要があったという時代。むしろこの方式は適切とも言えた。

PCI経由でのグラフィック転送が
当時のチップセットには重荷に

 NECが最初に手がけたPowerVR Series 1は、0.5μmプロセスを使って製造された「PowerVR PCX1」(動作周波数60MHz)と、0.35μmプロセスに微細化した「PowerVR PCX2」(動作周波数66MHz)の2つがあった。m3Dに搭載されたのは後者である。フレームバッファは66MHz動作のSDRAMを4MB搭載しており、レンダリングパイプラインは1本となっている。描画APIはDirectX 3.0準拠であるが、1997年当時はこれで十分であった(関連記事)。

 m3Dの使い勝手はどうだったかと言うと、性能に関してはそれほど悪くはなかった。競合はまさしく初代「Voodoo Graphics」などだが、理論描画性能は45万ポリゴン/秒で、Voodoo Graphicsの100万ポリゴン/秒に比べると半分程度。だが実際はここまでの差はなく、ゲームの描画オプション次第で同等とまでは言わないが、やや性能が低い程度に収まった。描画機能もMystiqueで欠けていると言われた機能をすべて持ち合わせており、表示がおかしいということもなく正常に表示できた。ここまではごく真っ当な製品に見える。

 では、まっとうなm3Dがなぜ黒歴史になってしまったのか? まずはPowerVR PCX2の構造的欠陥である。PowerVR Series 1は、3Dアクセラレーター機能とフレームバッファの機能は搭載されているが、肝心のビデオ出力機能がない。もともとPowerVR自体が、アクセラレーター的な使い方を想定して設計されていたためだ。そのため画面表示をするには、いったんPCIバス経由で3Dレンダリング後の映像を2Dグラフィックスカードのフレームバッファに転送し、2Dグラフィックスカード側から出力するという手の込んだ細工が必要になる。

m3Dと2Dグラフィックスカードの接続方法

 これはテレビチューナーカードやビデオキャプチャカードで使われる「オーバーレイ」と呼ばれる処理に近いのだが、この当時のオーバーレイ入力には、2Dグラフィックスカードのオーバーレイ端子を使うことが多かった※1。ところがPowerVRは、この端子を使うための映像出力をそもそも持ち合わせていないので、必然的にPCIバス経由でデータを送るようになっていた。
※1 「VESA Feature Connector」と呼ばれる、オーバーレイ入力専用端子が標準化されていた。

 悪いことに、この当時のチップセットはまだ、PCIバスの潜在能力をフルに生かしきれるものが少なかった。インテルではIntel 430HXチップセット以降で、「PCI Busmaster」や「Burst Transfer」といった機能が使えるようになったが、まともにこれで性能が出るようになったのは、Intel 430TXやIntel 440LXあたりから。またVIA/SiS/ALiといった互換チップセットベンダーの製品では、まだ性能が低迷していた。そのため、せっかくm3Dが頑張って3Dレンダリングを行なっても、2Dグラフィックスカード側への転送がボトルネックになって性能が出ない、ということがしばしば起きた。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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