Mali-T880の省電力機構

携帯機器の場合は、消費電力の低減は非常に重要であり、Mali GPUではクロックゲートとパワーゲートを行って、動作する必要が無い部分の消費電力をカットしている。また、動作状態に応じてクロックと電源電圧を最適化するDVFSを採用している。

Mali-T880ではクロックゲートとパワーゲートを行って、動作を必要としないブロックの電力を抑えている。また、動作するブロックも、負荷に応じてDVFSでクロックと電源電圧を最適化している

使用するメモリバンド幅の低減

最近では、DRAMとのインタフェースのドライバ、レシーバの電力が大きな比重を占めるようになっており、電力を抑えてGPUの性能を上げるためにはメモリアクセスを減らす必要がある。

SoCに許容される電力とメモリとのデータ伝送に使われる電力。メモリとのデータ伝送の電力が大きな比率を占めている

Mali-T880ではタイルごとの表示データのCRCを計算し、次のフレームのデータのCRCが前のフレームと同じなら、そのデータの書き出しを行わない「Transaction Elimination」という手法を使っている。次の図で緑の網が掛かっている部分が前のフレームから変化が無く、書き出しが省略された部分である。書き出しが減れば、その分、メモリアクセスが減り、省電力になる。

この手法で、Broken Sword 5では92%、Angry Birdsでは32%、User Interfaceでは75%、ハイエンドゲームでは10%の書き出しが省略されたという。

前のフレームから変化が無い場合は、メモリへの書き出しを省略して、メモリへの書き込みを減らす

また、Mali-T880ではAFBC(ARM Frame Buffer Compression)というロスレスのデータ圧縮を行ってGPUからディスプレイなどへのデータ転送量を減らしている。AFBCを使うことにより、User Interfaceでは50%、ビデオでは60%、ハイエンドゲームでは46%、Angry Birdsでは33%の転送バンド幅を削減できたという。

表示データをロスレス圧縮して、伝送に必要なバンド幅を低減するAFBC

ASTC(Adaptive Scalable Texture Compression)はARMが開発したテクスチャデータの圧縮手法であるが、現在では、OpenGLやDirect3D規格に取り込まれて他社でも使用できるようになっている。これもテクスチャデータの転送量を減らし、消費電力を減らす効果がある。ASTC 6×6では83%、ASTC 5×5では74%、ETC2では66%、転送データ量が減るとのことである。

テクスチャのデータもASTCで圧縮。ASTCはARMの考案であるが、OpenGLやDirect Xの標準になっている

まとめとして、Mali-T880は階層的タイル方式の描画を行うGPUである。1ピクセル/サイクルの処理能力を持つシェーダコアが基本構成単位であり、T880は1~16コアの構成が採れる。パイプライン処理を行っており、頂点処理とフラグメント処理をオーバラップさせることができる。

Transaction EliminationやAFBC、ASTCなどの適用で、必要なメモリバンド幅を抑えて省電力化を行っていると結んだ。