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

次世代スマートフォンのGPU「PowerVR Series6 Rogue」の設計思想

PowerVRの新しいGPUコアアーキテクチャ

 英Imagination Technologiesは、PowerVRの次世代シリーズ「PowerVR Series6(Rogue、ローグ)」を開発、OEMに提供してきた。アーキテクチャを一新したPowerVR 6系列は、来年(2013年)から実際の製品に登場し始める。来年のiPhoneやiPad、各社のスマートフォンやタブレットは、RogueアーキテクチャのGPUを搭載している可能性がある。

 Rogueの目的は、半導体技術やメモリ技術の進化を利用して、モバイルGPUのパフォーマンスを数百GFLOPSのレンジに伸ばすこと。目立つのは、大規模なGPU構成に最適化したこと、GPUのパフォーマンス/電力/ダイ面積の効率を引き上げること、テクスチャリッチなグラフィックスに最適化することなど。性能を上げるだけでなく、新しいモバイルSoC(System on a Chip)やグラフィックス技術のトレンドに沿うアーキテクチャを採る。

 Imagination TechnologiesのGPUコアは、PowerVR Series5から、マルチコア対応になったPowerVR Series5XTへと進化して来た。PowerVRの演算ユニットの構成は、2〜3年前までは4〜8個のALU(Arithmetic Logic Unit)が主流だったのが、現在、トップエンドは128 ALUにまで膨れ上がっている。モバイルSoCの中では、CPUコアが増える以上のペースで、GPUコアの演算ユニットが急拡大している。

PowerVRのロードマップ
※PDF版はこちら

 PowerVR Series6(Rogue)は、こうした流れを受けて開発された新アーキテクチャコアで、より大規模でパワフルなコアを目指している。Rogue系では、すでに第1世代のPowerVR G6x00系としてG6400/G6200が発表されているが、さらに11月には第2世代のPowerVR G6x30系のG6630/G6430/G6230の3系列が発表された。

 Rogue世代の命名規則は、最初の数字の6がアーキテクチャ、次の数字がシェーダプロセッサのクラスタ構成、その次が世代を示すと見られる。PowerVR Series5系では末尾の1桁がサポートAPIの違いなどを示していたが、Rogue世代ではどうなるのかわからない。

 PowerVR Series5系との命名規則の大きな違いは、従来はプロセッサ構成の違いがコア数の違いであるため、名称の末尾にMP2などマルチプロセッサ数で示していたのが、今回は3桁目にクラスタ構成の違いとして示すようになったことだ。この命名規則の違いは、アーキテクチャの根幹の違いを表している。詳しくは後述する。

 ちなみに、Imagination TechnologiesもソフトマクロでGPUコアを提供しているため、同社がコアを発表してから、実際にSoCに組み込まれて登場するまでにタイムラグがある。通常、1年以上かかる。Rogueの場合は、アーキテクチャ開発を2010年に発表し、コアの提供が始まったことを今年(2012年)1月に発表している。つまり登場は2013年の見込みだ。

半導体やメモリ技術の進歩に合わせたアーキテクチャの進化

 現在分かっているRogueの大きな特徴は、PowerVRがこの世代でPCグラフィックスに大きく近づくことを示している。

 まず、(1)GPUコアの構成を変えて、より大規模なプロセッサ構成を容易に採れるようにした。また、(2)GPUコア内部の命令制御を大幅に変更してよりダイ面積や電力当たりのパフォーマンスを引き上げようとしている。さらに、(3)テクスチャパイプをプロセッサと同期したスケーラブルな構成にして、テクスチャを多用する"今風"なグラフィックスに対応できるようにしている。加えて、(4)DirectX 10以降の最新APIへの対応も果たす(従来は一部だけ)。

 そして、これらの特徴は、半導体やメモリ技術の進歩とリンクしている。まず、プロセスの微細化によってトランジスタの予算が増えるため、より多くの演算ユニットを載せることが可能になる。PowerVR Series6は28nmプロセス以降をターゲットとしている。

 しかし、使うことができるトランジスタ数は増えても、消費電力の制約は相対的にきつくなるため、パフォーマンス/電力を向上させなくてはならない。一方、モバイルメモリは2年で2倍のペースで帯域の急進化を続けている。メモリ帯域は以前ほど制約にはならなくなったため、テクスチャ読み込みの量が膨れ上がっても対応が可能になった。その結果、シェーダパフォーマンスやテクスチャの多用が必要となるグラフィックスに対応しやすくなる。

 従来のPowerVRアーキテクチャは、最大で16〜32 ALUで1個のGPUコアを構成していた。より大規模な構成にする場合は、GPUコア自体を複数個並べたマルチコア構成を採っている。下は、PowerVR SGX544の推定されるダイアグラム図で、中央のブルーの円柱群が演算ユニット(ALU)だ。SGX544では、4パイプの構成になっている。

PowerVR SGX 54x MP4のブロックダイヤグラム
※PDF版はこちら
PowerVR SGX 54xのブロックダイヤグラム

 PowerVR Series5系列では、コア当たりの演算ユニットの数は4 ALU程度の小規模構成から図の4パイプ16 ALU構成、さらに最新のPowerVR SGX 554では8パイプ32 ALU構成まで拡大してきた。ハードウェアのタスクスケジューラである「Coarse Grain Scheduler (CGS)」が各ALUを制御する。そして、iPadやiPhoneのようなハイエンドのモバイルデバイスでは、コアを複数載せて、各コアが画面の異なる部分をレンダリングすることで、マルチコア動作を行なわせる。

PowerVR Series5におけるパイプラインの拡大
PowerVR Series5のタスクスケジューラ
複数のコアで画面の異なる部分を描画

クラスタ構成になるRogueのGPUコア

 PowerVR Series6では、この構成を根底から見直した。現在のPowerVR Series5XTでは、1個のGPUコアに、Coarse Grain Scheduler(CGS)で制御されるプロセッサクラスタが1個の構成となっている。しかし、PowerVR Series6では、1個のGPUコアの中に、CGSで制御されるプロセッサクラスタを複数個載せることができるという。そのため、GPUコアを複数個並べなくても、GPUコアの中のクラスタを増やすことで、演算プロセッサ数を増やすことが可能になった。

PowerVR Series5のタスクスケジューラ

 つまり、これまでは小さなALU構成を主眼に設計されたGPUコアを、マルチコア構成で無理矢理、大規模なALU構成に拡大してきた。しかし、PowerVR Series6からは、GPUコア自体の設計が、大規模なALU構成を前提として作られるようになる。具体的には、現在発表されているコアのうち、G6200とG6230は2クラスタ構成のコア、G6400とG6430が4クラスタ構成のコア、G6630が6クラスタ構成のコアとなっている。

PowerVR G6630のブロックダイヤグラム
PowerVR Series6の概要
PowerVR Series6各モデルのクラスタ構成

 下は推定されるブロック図だ。6クラスタのPowerVR G6630の例を示している。PowerVR Series5では、クラスタは「Universal Scalable Shader Engine (USSE)」と呼ばれていたが、PowerVR Series6では「USC(Unified Shading Cluster)」と呼ばれる。クラスタとテクスチャユニットを束ねたコアが「Unified Shading Cluster Array (USCA)」だ。各クラスタが16 ALUの構成だとすると、PowerVR G6630は合計96 ALUの構成となる。

PowerVR G6630のブロックダイヤグラム
※PDF版はこちら

 また、PowerVR Series6もマルチコア構成にすることで、さらに大規模なGPU構成を採ることが可能だと予測される。ちなみに、ST-EricssonはPowerVR Series6を載せた最初のモバイルSoCになると見られる「Nova A9600」を開発している。Nova A9600はPowerVR G6400を載せていると推測されるが、演算パフォーマンスは210GFLOPSに達するとアナウンスしている。G6400が64 ALU構成だとすると、通常のモバイルGPUの動作周波数ではこの性能を達成できないため、Nova A9600はPowerVR G6400のマルチコア構成である可能性が高い。

PC向けGPUと似通ったアプローチのPowerVR Series6

 Imagination TechnologiesのPowerVR Series6は、GPUコアアーキテクチャがマルチクラスタ構成へと切り替わった。GPUコアの構成を変えることで、より多くのALUを載せた大型コアへと向かう。Imagination Technologiesはこれまで、多様なSoCのニーズに応えるために、コア自体の構成を柔軟に変更できる点を重視してきた。コア当たりのパイプ数は、ローエンドのPowerVR SGX520ではシングル構成だ。しかし、PowerVR Series6では、一定規模の構成にフォーカスしたように見える。

 また、PowerVR Series6のクラスタ方式は、コアを複製する従来の方式と比べると、ムダを省くことでダイ効率が上がることを意味する。この構成の変更だけでも、同じダイ面積に、より多くのプロセッサを積むことが可能になる。また、複数クラスタをまたがるハードウェアスケジューラが、プロセッサに対するタスクの割り振りを行なうため、スケジューリングの効率も向上する。

 ちなみに、こうしたアーキテクチャは、実際にはPC向けGPUでは、以前から一般的だった。PC向けGPUは、内部をクラスタ化して、クラスタ構成の増減で、ローエンドからハイエンドまでを作り分けて来た。PowerVR Series6のアーキテクチャは、それと同じことをしている。

 また、GPU構成だけでなく、Imagination TechnologiesはGPUコアの中のスレッドのスケジューリングについても、PC向けGPU的な手法を取り入れた。現在の、極端に小さな分岐粒度(ピクセルまたは頂点単位)から、一定の粒度を持つコントロールフロー制御へと変更すると見られる。この変更も、GPUコアのパフォーマンス/ダイ面積/電力を高めるために重要だ。これは次回の記事で説明したい。

(後藤 弘茂 (Hiroshige Goto) E-mail