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

ARMが次世代CPU「Atlas」と「Apollo」の計画を発表



●ARMが2012年後半に次世代CPUとGPUのコアアーキテクチャを発表

 ARMは1月末に開催した会計年度末のカンファレンス「Fourth Quarter & Full Year Results」で、次世代CPUコアとGPUコアの計画を発表した。2012年には、ARMの新CPU「Cortex-A15」の搭載チップを載せた製品が登場するが、今回アナウンスしたのはCortex-A15/A7の後継となる、64-bit CPU群「Atlas(アトラス)」と「Apollo(アポロ)」だ。GPUではMali-T658の後継となる「Skrymir(スクリミール)」、「Tyr(ティール)」がリリースされる。GPUは次回解説する。

 実際にカンファレンスで明らかにされた内容は、ほぼコードネームだけだが、それでも多くのことがわかる。まず、ARMは64-bit拡張を含む新命令セットARMv8を実装したCPUコアを、ウォーターフォール、つまりハイパフォーマンスCPUから順番に降ろして行くのではなく、AtlasとApolloというラインナップで出そうとしているようだ。これは、命令セット互換性をファミリで貫くためと、「big.LITTLE」プロセッシングのためだと推測される。GPUでも似たようなアプローチを取ることが示唆されている。しかし、SkrymirとTyrの関係は、CPUのbig.LITTLEとは大きく異なると推測される。このほか、ARMv8ベースのCPUが、従来のARMv7に対して上位互換を保つことも示唆された。

Cortex-AはAtlas、Apollo、MaliはSkrymir、Tyr

●big.LITTLEのためにCPUをペアで揃える

 ARMは、2011年10月に開催した技術カンファレンス「ARM TechCon 2011」で、バッテリ駆動時間を延ばすための「big.LITTLE Processing」を発表した。比較的大型の高パフォーマンスCPUコア(big)と、小型で低消費電力のCPUコア(LITTLE)を組み合わせて省電力化を図る技術だ。

 目的は、モバイルデバイスのパフォーマンスレンジを広げること。高負荷のアプリケーションのためにbigコアで高パフォーマンスを提供しながら、動作時間のほとんどを占める低負荷のタスクに対してLITTLEコアで電力を最低限に抑える。単一のCPUアーキテクチャでは、この2方向の要求に同時に答えることができないため、2種類の異なるCPUコアの組み合わせで実現しようというのがbig.LITTLEのコンセプトだ。

big.LITTLEの電力と性能(PDF版はこちら)

 ARMは、big.LITTLEを、2タイプのCPUコアの間でタスクを遷移させる「big.LITTLEタスクマイグレーション(Task Migration)モデル」で浸透させようとしている。バーチャライゼーションを利用したスイッチメカニズムによって、従来OSのままbig.LITTLEを利用できるようになる。動作周波数と電圧を遷移させる「DVFS(Dynamic Voltage and Frequency Scaling)」に対応したOSの省電力制御機構の延長で、bigとLITTLEの両コアを切り替えできるようになる。ただし、そのためには、両CPUコア間でのタスク遷移を、極めて短時間で行なえるようにしなければならない。

 そこで、ARMは、命令セット上で完全互換のCPUコアを2タイプ用意した。ハイパフォーマンスのCortex-A15と、超ローパワーのCortex-A7で、両CPUコアはマイクロアーキテクチャは全く異なるが、命令セットや機能モード上はほぼ互換だ。この2種類のコアを、ハードウェアコヒーレンシを維持したバスで接続することで、迅速なタスク遷移を実現する。現在の予定しているCortex-A15とCortex-A7の実装では、遷移時のブラックアウト時間を20μsecにまで短縮している。

【お詫びと訂正】初出時にブラックアウトタイムを誤って「20ms」と記載しておりました。お詫びして訂正させていただきます。

big.LITTLEソフトウェアアーキテクチャ(PDF版はこちら)
big.LITTLEアーキテクチャ(PDF版はこちら)
big.LITTLEタスクマイグレーション(PDF版はこちら)
ARM Cortex-A15ブロックダイヤグラム(PDF版はこちら)
ARM Cortex-A7ブロックダイヤグラム(PDF版はこちら)

●big.LITTLE前提なら変わるARMのプロセッサ開発

 big.LITTLEでは、命令セット上は完全互換でありながら、高パフォーマンスと超ローパワーのそれぞれに最適化した2種類のCPUコアが必要となる。そのため、ARMは、big.LITTLEのコンセプトを継続しようとすると、今後も命令セットの拡張の度に、2種類のCPUコアをペアで開発しなければならない。ARMv7命令セットの時代は、big.LITTLEのペアはCortex-A15とCortex-A7になる。64-bitを含むARMv8-A命令セットでも、同様のペアが必要で、それがAtlasとApolloだと見られる。例えば、AtlasとCortex-A7では、効率的なbig.LITTLEは構成できない。

Cortex-A15/A7の組み合わせのbig.LITTLE

 ARMはもともとARMv8-Aの世代では、AtlasとAthena(アテナ)と呼ばれるCPUコアを準備していたと言われる。それがAtlasとApolloへと変わったのは、おそらく下位のCPUコアのAthenaを、big.LITTLEのためにより低消費電力のアーキテクチャのApolloに切り替えたためだと推測される。ちなみに、コードネームはいずれもギリシャ神話由来で、Atlasが大地を支える巨神、Apolloはオリンポス12神の1柱でゼウスの息子、Athenaは同じくオリンポス12神でゼウスの娘でApolloの姉に当たる。

 ARMはCortex-A15を開発し始めた段階では、まだbig.LITTLEのコンセプトは固まっていなかった。そのため、Cortex-A15では、依然として低パフォーマンス時の電力をできる限り抑えるという呪縛に捕らわれていた。それに対して、Atlas/Apolloの組み合わせは、big.LITTLE発表後で、しかも、big.LITTLEのタスクマイグレーションモデルが顧客に受け容れられつつある段階で開発が進められている。

 そのため、ARMは、以前と比べるとハイパフォーマンスのAtlasの設計で、最低電力について気を配る必要が減っていると推測される。もし、Atlasがそうでなかったとしても、今後のARMハイパフォーマンスCPUは、電力の呪縛からある程度解放され、より高いパフォーマンスレンジへと振れて行くことになるだろう。

 big.LITTLEコンセプトが現実性を持っているのは、LITTLE側のCPUコアが小さいことだ。例えば、Cortex-A15とのペアのLITTLEであるCortex-A7は、シングルコアで28nmプロセスで0.45平方mmからのダイサイズとなっている。サブのLITTLEコアがダイ上で面積を取らないからこそ、チップベンダもbig.LITTLEを実装しようという気になる。そのため、Apolloにも同様の小型サイズが求められる。

ARM Cortex-A7/A9とAtom、Bobcatのコアダイサイズ比較(PDF版はこちら)
big.LITTLEとワンアーキテクチャの比較(PDF版はこちら)

●今年後半に発表して最終製品は2014年に登場

 Atlas/Apolloは、今年(2012年)後半に発表の予定だ。ARMのWarren East氏(CEO,Chief Executive Officer)は「ARMv8ベースの製品のシリコンは、2014年に登場するだろう」という。IntelやAMDのCPUのパターンに慣れていると、2012年に発表で2014年に実チップとギャップが空くのは奇妙に感じられるかもしれない。これは、ARMのビジネスモデルのためだ。

ARMv8ベースの製品シリコンは2014年登場見込み

 ARMはRTL(Register Transfer Level)設計の段階でCPUコアを発表し、顧客ベンダーにライセンスを開始する。そのため、設計の後段のプロセスに対するチューニングは、発表後となる。実際には、そこからが時間がかかる。そして、時間をかけてチューンしなければ、パフォーマンスを上げて、電力消費を下げることができない。下はARM Techcon 2011でCadenceが発表したCortex-A15でのパフォーマンス&電力最適化の経緯だ。

Cadenceが発表したCortex-A15でのパフォーマンス&電力最適化の経緯

 CadenceはTexas Instruments(TI)の次期モバイルSoC(System on a Chip)「OMAP5」における、Cortex-A15の28nmへの実装でTIとARMに協力。2010年の第3四半期からCortex-A15チームとコンタクトを取って来た。そして、2011年の頭から最適化を始めて、数カ月かけてパフォーマンスと電力をチューンしている。途中からCadenceが買収した省電力技術の企業Azuroの技術を投入することで、電力は目標よりさらに下げたという。スライドのチャートにその変化が示されている。

 通常は、こうしたチューンに数カ月、あるいはそれ以上かけてパフォーマンスと電力と面積(PPA:Power, Performance and Area)を最適値に持って行く。そうしたチューン済みのコアを、SoC(System on a Chip)へと組み込んで最終製品とする。そうした経緯を経るため、ARMのコアが実際の製品として登場するまでには間が空く。それに対してIntelやAMDは、物理設計が終了した段階でコアを発表する。それまでは、社内作業となるため、発表までのタイミングが短い。

 こうした仕組みから、ARMのロードマップを実際の製品ベースにコンパイルするには時間差を組み込む必要がある。大まかに言えば、今年(2012年)はCortex-A15の年で、来年(2013年)はCortex-A15とCortex-A7のbig.LITTLEの年、2014年がARMv8のAtlas/Apolloの年となるだろう。