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

ARMの次世代GPU「Skrymir」と「Tyr」の謎



●CPUとGPUを2種類ずつ今年後半に発表

 ARMは、次々期GPUコアとして「Skrymir(スクリミール)」、「Tyr(ティール)」を投入することを、1月末に開催した会計年度末のカンファレンス「Fourth Quarter & Full Year Results」で明らかにした。SkrymirとTyrは今年(2012年)後半に発表される予定で、搭載チップが市場に登場するのは2013年以降になると見られる。

 ARMはほぼ1年置きに新GPUコアを発表しており、昨年(2011年)もMali-T658を発表した。そのため、2012年に新GPUコアを発表すること自体は、何も不思議ではない。ポイントは、2012年のコアがSkrymirとTyrの2種類であり、CPUと同様にハイパフォーマンスとローパワーの両極であることが示唆されている点だ。

 ARMは、CPUでは「big.LITTLE Processing」と呼ぶ、ハイパフォーマンスCPUコア(big)と、ローパワーCPUコア(LITTLE)を組み合わせて省電力化を図る技術を発表している。これは、マイクロアーキテクチャが異なるが、命令セットが共通のCPUコアのペアで実現される。最初の世代はCortex-A15とCortex-A7の組み合わせで実現され、次の世代は「Atlas(アトラス)」と「Apollo(アポロ)」の組み合わせで実現されると見られる。

big.LITTLEの消費電力と性能レンジ
PDF版はこちら

 ARMの次期GPUコアがペアになっていることは、big.LITTLEと類似のアプローチをGPUにも当てはめることを示しているように見える。ところが、ARMのGPUアーキテクチャをよく見てみると、これには疑問符がつく。というのは、ARMのGPUアーキテクチャは、そもそもモジュラー化された小さなコアの塊であり、粒度の小さな制御が可能で、CPU的なbig.LITTLEのアプローチを必要としないように見えるからだ。

●電力制御の面では優れているARMのGPUコア

 ARMのGPUアーキテクチャは、従来のMali-200/400/300系の「Utgard(ウトガルド)」ファミリと、Mali-600系以降の新しい「Midgard(ミッドガルド)」ファミリに分けられる。Utgardは、固定パイプラインにシェーダプロセッサをはめ込んだ、言ってみればDirectX 9世代のアーキテクチャ。それに対して、Midgardはユニファイドシェーダ型のDirectX 10世代アーキテクチャとなっている。

 下は昨年秋に発表されたMali-T658の全体図だ。Mali-T658は最大8個のシェーダプロセッサコアで構成可能だ。4個のシェーダコアとL2キャッシュを備えたコアグループを、2個備える。言ってみれば、デュアルGPUのような構成となっている。個々のコアグループの中もコンフィギュラブルになっており、設計段階でシェーダコア数を変更可能となっている。

Mali-T658の概要
PDF版はこちら

 ユニットは全て単一のジョブマネージャで統合されており、単一のタスクディスパッチャから、タスクがそれぞれのグループにディスパッチされる。ジョブマネージャはパワーマネージメントユニットと一体化されており、使わないユニットをシェーダコア単位でパワーゲートすることで、電力をセーブするという。

 こうした構造から、ARM GPUは、そもそも負荷に応じて電力を一定の粒度で制御可能となっている。CPUの場合は、ハイパフォーマンスCPUコアはOut-of-Orderの命令制御などのオーバーヘッドが大きく、電力効率が悪い。そのため、ローパワー化のためには、シンプルなアーキテクチャのCPUコアが別に必要となる。それがbig.LITTLEでのCPUコアの切り替えの最大のモチベーションだ。しかし、GPUでは命令制御がそれほど複雑ではないため、同じ命令セットならコアの複雑さにCPUほど大きな差が出ない。

 もっとも、シェーダコアには若干シンプル化する余地はある。下はMali-T658と、1世代前で現在登場しつつあるMali-T604の比較図だ。両コアは個々の演算ユニットの構成自体は同じだが、スレッドスケジューラにぶら下がっている演算パイプの本数が異なる。そのため、ある程度、命令/スレッドスケジューリングは複雑化しているはずだ。Mali-T658が演算パイプを増やしたのはGPUコンピューティングのためで、グラフィックスを中心に据えるならシンプル化の余地はあるが、増える設計のバラエティに見合うほど省電力の効果があるとは思えない。

Mali-T604とT658のシェーダーコア比較
PDF版はこちら
Mali-T604からT658の進化

 しかし、より革新的なアーキテクチャを考えているとすれば、big.LITTLE的なスイッチングも意味を持つ。想定される可能性の1つは、Mali-T6xx系シェーダGPUと、Mali-4xx系セミシェーダGPUの組み合わせのような構造だ。GPUの場合は、ランタイムレイヤであるドライバがGPUハードウェアのネイティブ命令/構造を隠蔽するため、そうした構成も考えられないわけではない。シェーダGPU自体が、グラフィックス処理時には電力効率が悪いため、可能性としてはある。

 現状では、まだSkrymirとTyrの違いはわからない。しかし、CPU側とは違ったアプローチであることは確かだ。ちなみに、ARM GPU系のコードネームは現在は北欧神話シリーズとなっている。これは、開発拠点がノルウエーにあるためで、Utgardは巨人の都、ミッドガルドは中つ国(人間の国)で、Skrymirは巨人族の王、Tyrは軍神だ。

●ハードマクロから現在はソフトマクロが主流に

 ARMは会計年度末のカンファレンスで、物理設計を補助する同社のソリューションが成長していることも明らかにした。これは、イコール、動作周波数の高いARMコアを創りやすくなりつつあることを示している。ARM系CPUコアは、過去2年ほどで急速に動作クロックが上がっているが、その背景には、こうしたARMの取り組みもある。

 もともと、ARMのようなIPプロバイダは、IPを各ファウンドリのプロセスに載せた物理設計済みのハードマクロとして提供していた。しかし、SoC(System on a Chip)化が進んだため、チップ設計の主流は、現在ではソフトマクロをEDAツールで論理合成するスタイルへと変わっている。そのため、ARMもプロセッサの設計をRTL(Register Transfer Level)で、多くの顧客にライセンスして来た。RTLなら、チップベンダーがある程度カスタマイズできる。例えば、CPUコア数やキャッシュサイズ、あるいはECCといった機能もカスタマイズが可能になるのが一般的だ。また、高パフォーマンスまたは低消費電力へとチューンすることもできる。

 しかし、ハードマクロに対して、RTLから生成する回路は、一般的に、動作周波数やエリア面積、消費電力などで不利になる。プロセスへの最適化を行なえば大きく改善されるが、そのためにエンジニアリング労力と時間が必要となる。最適なPPA(Power, Performance and Area)のバランスを得るためには、高度なスキルが必要となる。この点では、自社Fabのプロセス技術にぎりぎりまでチューンして来るIntelなどが強敵だ。

 そこで、ARMは大きく分けて2つの方法でこの問題に対処している。1つは、大手ファウンドリの主要プロセスのライブラリとしてチューンしたハードマクロの提供。もう1つは、「POP(Processor Optimized Packages)」とARMが呼ぶ、ファウンドリプロセス毎の最適化パッケージの提供だ。

ハードマクロやソフトマクロの課題の解決

●高パフォーマンスのハードマクロと中間解のPOP

 下のスライドは、ARMのハードマクロの例で、TSMCの一般的な40nmプロセスである「40G」にデュアルコアのCortex-A9を載せている。この例のハードマクロはスピード最適化と、パワー最適化の2種類がある。スピード最適化のハードマクロは動作周波数は最高2GHzで、TDPは1.9Wとデュアルコアでも2W以下、面積はL2を除いたデュアルコア部分で6.7平方mmとなっている。それに対して、パワー最適化のハードマクロは、最高800MHzだがTDPも0.5Wと低いため、パフォーマンス/電力は高くなっている。面積は4.9平方mmでこちらも小さい。

ハードマクロの例

 しかし、ハードマクロではトレードオフでコンフィギュレーションができない。そこで、ARMは中間解的なソリューションとしてPOP(Processor Optimized Packages)を提供し始めた。RTLにPOPやARM側の実装知識を組み合わせることで、フレキシビリティを維持しながら、最適化の労力を軽減しつつ、PPAのバランスを取った物理設計を行なうことができるという。ハードマクロを開発するノウハウを切り売りしているとも言える。POPを使うと、標準的なRTLと比べて同じプロセスでも高パフォーマンスや低消費電力を達成できるというのがARMの説明だ。TSMCの40-Gプロセスの場合、POPを使うことでCortex-A9で1.7GHz(ワーストケース時)を達成できるとしている。

最短の製品化期間でARM Cortexプロセッサの最適化設計を実現するPOP

 ARMは今回の1月末の発表で、Cortex-AファミリではPOPをライセンスするベンダーが増えていることを明らかにした。50%のCortex-AライセンシがPOPを選択しているという。

 この話のいったい何が重要かというと、それは、ARMのCPUコアが、よりハイパフォーマンスまたは、より低消費電力へと、物理設計によっても振れつつあることを意味している点だ。実際のスマートフォンやタブレットでは、同じアーキテクチャのARMコアでも、動作周波数がどんどん上昇している。ARMのソリューションは、その潮流を後押し、あるいは応えるためのものだ。

POPの導入

 一般的にIPベンダーの弱味は、物理設計でのチューニングで、ARMは現在、その部分を埋めようとしている。これは、ARMがハイパフォーマンスのプロセッサのプロバイダへと転身するためには、必要な要素だろう。