ARMは米国で開催中の開発者向けイベントである「Tech Conference 2013」に合わせ、GPU Mali-T760およびT720を発表した。イベント内では両コアの説明がプレス向けに行われた。
ARM系プロセッサの標準的なGPUである
Maliシリーズがアップデート
Maliシリーズは、同社のプロセッサと組み合わせてSoCを作成するためのIP(設計や回路パターンなど)として提供されるもので、半導体製品そのものではない。ARMプロセッサを製造する半導体メーカーなどがライセンスを受け、自社製品に組み込んで利用する。
現在のMaliシリーズに使われているアーキテクチャはMidgardと呼ばれるもので、シェーダーコアを並列動作させて処理を行なう。シェーダーコアの数を増やすことで性能を向上でき、コア数を変化させることで、製品の適用領域を変え、エントリー向けからハイエンドまでを同一のアーキテクチャでカバーしている。
PC用のGPUと違い、表示画面を複数に分割したタイルに描画を行い、タイルを順次処理して表示画像を生成する「タイリング」方式を採用している。モバイル向けのGPUのほとんどがタイリング方式を用いているが、その理由は表示メモリに専用のメモリチップを接続する必要がなく、フレームバッファ(表示用データを記憶する場所)にメインメモリが利用できるからだ。フレームバッファに専用のグラフィックスメモリを使うものに比べると複数のタイルを繰り返し処理するため、描画速度的な問題があるが、最近では、複数のタイルを同時処理処理するなどして、高速化が行なわれている。
これまでのMaliシリーズは、エントリー向けのMali-T400シリーズとミッドレンジ向けのMali-T62xシリーズ、ハイエンド向けのMali-T678の3系列があった。今回のMali-T700系列は、ハイエンド向けのT760とミッドレンジ、エントリー向けのMali-T720の2つからなる。
ハイエンドのMali-T760は16コア
ハイエンド向けのT760は、第3世代のMidgardアーキテクチャを採用し、シェーダーコアを強化している。現行製品であるMali-T600シリーズの詳細な性能は公開されていないが、T760では600MHzのクロックで動作させた場合に、最大構成である16シェーダーコアでのピクセルフィル・レートが9.6ギガピクセル/秒、トライアングルレートが1066.6メガトライアングル/秒と公開された。また、GPUを汎用計算に利用したときの浮動小数点演算性能は、326.4GFLOPSである。
T600シリーズの最大シェーダーコア数は8までだったが、T760ではシェーダーコアを最大16ユニット搭載可能にすることで、性能を向上させている。また、製造する半導体プロセスに応じて最大動作クロックも向上させることができる。当初T760は、台湾の半導体製造企業であるTSMCの28nmプロセス(28HPM)と16nm FinFETプロセス(16FF)での製造が可能だという。
T760は、さらにAFBC(ARM Freme Buffer Compression)と呼ばれるメモリ圧縮技術を搭載する。タイリング方式では、メインメモリ上に置いたタイルデータを繰り返し処理することになるが、そのたびにGPU内部にタイルデータを読み込み、描画が終了したらメインメモリへ書き戻す。
また、最近では、一般的な画面表示やGUIなどにもGPUを利用するため、システム側のGUIモジュールやアプリケーションなどの描画が個別に行なわれると、単純に1つのプログラムだけが描画を行なって終わりというわけにはいかない。たとえば、スマートフォンやタブレットでは、表示画面はアプリケーション自身が行なう描画もあれば、システムが表示するメッセージや通知領域などの表示もある。アプリケーションの表示には変更がなくても、通知領域のアイコンが書き換わるということも起こり得る。
こうした処理のため、1つのタイルに対して複数のプログラムから複数の書き込みが行われることも珍しくない。タイリング方式では、タイルデータをメインメモリとGPUの間で転送するが、その間は、CPUがメモリにアクセスできなくなる。また、メインCPU側からも、テクスチャデータなどがGPUが管理する領域に転送される。
このとき、メモリ上に書き込まれるデータを圧縮することで、データ量を小さくすれば、メモリの読み書きに必要な時間を短縮できる。これをハードウェアで行なうのがAFBCだ。また、メインCPU側にはソフトウェアによる圧縮コードが提供され、CPUでデータを圧縮したうえで、GPU側に引き渡すことでGPU側でもこれを正しく扱えるようになる。
また、LCDなどに表示を行なうディスプレイコントローラーは、一定周期でフレームバッファをアクセスしてディスプレイ側に表示データを転送するが、こちら側にもAFBCを搭載することで、表示データの読み出しによるメモリアクセス時間も短縮が可能だ。メモリを読み書きするデータ量が小さくなることで消費電力を削減することも可能だ。
また、GUI表示では、既存の画面データとGUIによる表示を合成することが必要になる。たとえば、ユーザーがタッチした場所に半透明の円を表示してタッチした場所がわかるようにするような場合、既存の画面と半透明の円を合成する必要がある。
このとき、アプリケーションの表示画面やGUIの表示画面などをそれぞれ独立した描画(サーフェース)として管理しておき、これを組み合わせて最終的な表示データを作成するが、このときの描画処理などを個別にやっていると、同一のタイルやサーフェースへ繰り返しアクセスが発生する。これを抑制して、合成処理における重複読み出しなどを避けるのがT760に搭載される「Smart Composition」という技術だ。ARMによればAndroidのGUI画面では、描画データの読み出しを最大50%減らすことができるという。
Mali-T720はAndroidスマホに特化して最適化
T720は、T760と同じ第三世代のMidgardアーキテクチャを採用し、同じシェーダーコアを搭載する。ただし、T720はミッドレンジからエントリー向けSoCの大半を占めるAndroid用に最適化されたGPUとなっている。Androidに最適化することで、高い性能と低いコストを実現できる。たとえば、Windowsに対応しないことでDirectX 3Dに対応する必要がない。また、OpenGLなど各種の共通仕様でも、現行のAndroidが使わない過去のバージョンとの互換性をとる必要がなく、やはりそのためのハードウェアを省略して回路を最適化可能だ。
このMali-T720では、シェーダーコアの最大搭載数は8とT760の半分で現行のT678と同じになっている。ARMによれば、動作クロック600MHzの場合に8シェーダーコアで、ピクセルフィル・レートは4.8ギガピクセル/秒、トライアングルレートが533.2メガトライアングル/秒であり、浮動小数点演算性能は81.6GFLOPSとなる。最大性能的には、T760の半分程度になり、シェーダーコア数を変えることでエントリレベルからミッドレンジまでをカバーする。このMali-T720はつ当初TSMCの28nmプロセス(28HPM)での製造が可能ということだ。