[an error occurred while processing the directive]

Fall Microprocessor Forumレポート

OpenGL ES 2.0とともにPowerVR SGX登場

カンファレンス会期:10月10日~11日(現地時間)

会場:米カリフォルニア州サンノゼ DoubleTree Hotel



●懐かしのPowerVR健在

 Fall Micro Processor Forum 2日目、Imagination Technologiesは、世界初となる「Open GL ES 2.0」対応のGPU「PowerVR SGX」について講演を行なった。

 OpenGL ES 2.0は、OpenGLの中でシェーダ部分を規格化したものであり、OpenGL ES 1.xの機能追加部分である。

 PowerVRといえば、NECと英国VideoLogic Groupが共同開発した独自の3次元画像処理アルゴリズムを搭載するGPU。NECは'96年に、最初のPowerVRである「μPD62010」を開発、これを搭載したPC用の3次元グラフィックスカードの販売も行なった。また、セガのDreamcastに「PowerVR2」が採用されたほか、ゲームセンター用のアーケードゲーム基板に使われていたこともある。

 VideoLogicは、'99年9月に名称を現在のImagination Technologiesに変更、現在では、PowerVRのIPを各社にライセンスしている。

 PC関連ではあまり名前を聞かないPowerVRだが、「PowerVR MBX」は、ルネサスのSH-Mobile系やIntelの2700G(XScale用のグラフィックスアクセラレータ)、TIのOMAPシリーズの一部など、携帯電話用の統合型マイクロプロセッサに組み込まれていることが多い。携帯電話用の3Dアクセラレータとしては、標準的といってもいい。

 携帯電話系に普及した原因の1つには、チップそのものではなく、その設計を売るIPビジネスを展開しているため、マイクロプロセッサメーカーが自社の製品に組み込みやすいからである。

 もう1つは、PowerVRアーキテクチャの特徴であるタイリング方式が、外部メモリとの高速なインターフェイスを必要としないなどの特徴があり、小型化、低消費電力が必須となる携帯電話に向いているからである。

 3D表示が携帯電話に取り込まれたのは、ゲームやリッチなコンテンツを考えたときに、レンダリングした情報を送るよりも、3Dデータを送るほうが通信量を削減できるからである。また、携帯電話は、現在では大きくてもVGA解像度程度であり、それほど強力なハードウェアがなくとも実現可能ということもある。

●組み込み機器向け規格のOpenGL ES

 PowerVR SGXの話に入る前にOpenGL ESについて話を整理しておこう。OpenGL ESのESとは組み込み機器を意味する「Embedded System」の略。つまり、OpenGL ESとは組み込み機器向けのOpenGLである。

 ちなみにOpenGLとは、SGIのグラフィックスライブラリ(Graphics Library=GL)をベースにオープン化したもので、3次元グラフィックスでは広く使われているグラフィックスインターフェイスである。Windowsでいえば、Direct3Dのようなものであり、非Windows系では、標準的な地位を確立している。

 OpenGL ESが作られたのは、組み込み機器向けには、フルセットのOpenGLは荷が重すぎることと、仕様が大きすぎるからである。たとえば、カーナビの3次元表示などのように限定された組み込み環境で3Dグラフィックスを使うことを想定して作られたものだ。

 基本的な仕様(Fixed Function)は、OpenGL ES 1.x系で、ハードウェア仕様により1.0~1.5までいくつかバージョンがある。

 OpenGL ES 2.0は、シェーダを装備するハードウェアでのOpenGLを定義するもので、OpenGL ES 1.xの拡張部分となる。

 OpenGLは、大きくジオメトリ処理とラスタライぜーションからなる。前者が3次元空間で定義されたオブジェクト(ポリゴン)を2次元空間に投影し、後者は、それを表示可能なビットマップデータに変換する。

 OpenGL ES 2.0では、頂点シェーダ(Vertex Shader)と、ピクセルシェーダ(Pixel Shader)が定義されている。

OpenGL ESは、大きくジオメトリ処理とライスタライズ処理から成り、組み込みを想定したOpenGL ESは、固定的な基本機能をハードウェア処理することを想定している

●プログラマブルシェーダを装備した「PowerVR SGX」

 PowerVRアーキテクチャでは、出力画面を小さなタイルに分割して処理を行なう。

 オーバーヘッドは多少あるが、全体を1度に処理する必要がなく、小さなタイルだけを処理する。このため、チップ内に処理しているタイル部分を記憶するフレームバッファを持つことができる。

PowerVRアーキテクチャは、出力画面をタイルに分割して処理を行なうため、必要なメモリやハードウェアは小さくて良い。このため、フレームバッファやZ/ステンシルバッファをチップ内に持つことができる。また、外部メモリとのインターフェイスは比較的低速でよく、消費電力やコストの面でメリットがある

 グラフィックス処理では、すでに描画した部分にさらに描画を行なうことがあり、フレームバッファの読み出し、修正、書き込みといった処理が必要となる。これをチップ外のメモリで行なうためには、高速なメモリや高速な接続が必要となるが、PowerVRでは、これをチップ内に保持できる。このため、実際に表示を行なうフレームバッファは低速なものでいい。

 小さな範囲にのみ専念して処理できるため、隠面処理のためのZバッファやステンシルバッファなども小さくて良く、これもチップに内蔵することが可能だ。

PowerVR SGXのブロック図。中央のUniversal Scalable Shader Engineがいわゆるユニファイドシェーダ

 現在、携帯電話などに広く使われているのは、PowerVR MBXだが、今回講演が行なわれたSGXは、その後継で、プログラマブルシェーダを装備するもの。1つのシェーダで頂点処理とピクセル処理を行なうユニファイドシェーダ(Imagination TechnologiesではこれをUniversal Shader Engineと呼んでいる)で構成されている。

 PowerVR SGXは、3Dグラフィックス以外に、ビデオや2Dグラフィックス表示なども可能になっている。まずは、表示するそれぞれの情報をタスクに分割し、実行ユニットに振り分ける。ここのタスクはさらにスレッドに分割され、マルチスレッド実行ユニットで処理されていく。

 PowerVR SGXには、実行ユニット数(パイプライン数)により5つのバリエーションがあり、3~100Mポリゴン/秒まで、携帯電話からゲーム機、PC用までをカバーする。

実行ユニットを常に効率よく使うため、描画は、タスク、スレッドに細かく分割され、複数スレッドの同時実行が可能なマルチスレッド実行ユニットが処理を行なう。なお、PowerVR SGXの構成によっては複数の実行ユニットがある

 また、最近では、携帯電話でもLinuxのような高度なOSが搭載され、アプリケーションもマルチスレッド対応などが行なわれている。こうした環境に対応するためには、描画ハードウェアが、1つの処理に専念してしまって、一連の描画が終わるまで次の処理ができないのでは問題がある。

 また、場合によっては、描画の途中で、表示を止め、システム側のメッセージなどを表示しなければならない場合もある。このため、PowerVR SGXでは、パイプライン処理に対する割り込みが可能で、処理を中断、再開することができるようになっている。また、このときに、実行コンテキストを切り替えることが可能になっている。

 PowerVR SGXは、OpenGL/ES 2.0やDirect3D SM3.0などに対応したGPUとして、組み込み系CPUメーカーから登場する予定だという。

PowerVR SGXには、510~550の5つのバリエーションがあり、それぞれパイプライン数(実行ユニット数)が異なる。簡易な携帯電話からゲーム専用機までカバーする

□Fall Microprocessor Forumのホームページ(英文)
http://www.in-stat.com/FallMPF/06/

(2006年10月13日)

[Reported by 塩田紳二]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
お問い合わせに対して、個別にご回答はいたしません。

Copyright (c)2006 Impress Watch Corporation, an Impress Group company. All rights reserved.