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

ARMのCortex-AファミリとCortex-Mファミリの行方

ARMも読み切ることができないARMv8の浸透のペース

Noel Hurley氏(GM CPU Product Group, ARM)

 ARMは「Cortex-A72」で第2世代のARMv8(ARM Version 8)命令セットアーキテクチャ(ISA:Instruction Set Architecture)CPUに踏み出した。第1世代のCortex-A57/53は既に登場し始めているが、そのすぐ後にCortex-A72が続く。ARMv8の最大のポイントは64-bitステイト「AArch64」の追加で、64-bit時には命令セットが一新される。言ってみれば、ARMの命令セットのリセットがARMv8であり、命令セット的には、ARMの歴史上最大の変更だ。

 ARMv8にはAppleが「iPhone 5s」で、モバイルでは一番乗りを果たした。また、ARMサーバー陣営もARMv8で盛り上がっている。しかし、iOS以外のOSのモバイルでは、まだARMv8の浸透は始まったばかりだ。今後、モバイルSoC(System on a Chip)のARM CPUコアが、ARMv8に急速に移行して行くのかどうか、ARM自身も、まだ見極めができていないという。

 「64-bitは(モバイルの)プレミアムセグメントにしばらく留まり、32-bitが長く残るのか、それとも、どんどん市場の下(のセグメント)に降りて市場の全てに広まるのか、市場の移行を予測することは難しい。Android Lでどうなるのかを、注視して待たなくてはならない。ただし、ARMv8アーキテクチャは、32-bitのレガシーのアプリケーションも走らせられる。市場で64-bitと32-bitが共存することは可能だ」とARMのNoel Hurley氏(GM CPU Product Group, ARM)は語る。

ARMv8命令セットアーキテクチャ
ARMが発表したCortex-A72

 ミッドレンジ以下のモバイル市場がARMv8にどう対応して行くのかが、ARM自身にもまだ読み切れていないことが分かる。コストに敏感なミッドレンジ以下の市場は、一部のメーカーは28nmプロセスに留まる見込みで、コスト追加の要素となるARMv8への移行が不鮮明だ。また、ローエンドのモバイルと地続きとなっている、ハイエンドのウェアラブル市場の動向にも影響されるという。

 「ARMv8については、ウェアラブルの市場がどうなるのかも重要だ。ウェアラブルも、モバイルと同じOSカーネルを使い、ソフトウェア管理を容易にするために64-bitに移行するのか。それともウェアラブルは長期的に32-bitに留まるのか。これも注視して待たなければならない動向だ」(Hurley氏)。

 ここで出てくる疑問は、ARMv8プロセッサのコード効率や消費電力の点にある。32-bitのコードを、アドレッシング以外は全く同一のまま64-bitに置き換えれば、コード効率は悪くなる。しかし、実際にはARMv8 64-bitモードでは新たな機能が加えられており、一概には言えないとARMのHurley氏は指摘する。

 「ARMv8によるコンパイラ技術の発展も見積もらなければいけない。ARMv8 64-bitでは、従来よりずっとフラットなレジスタで、より多くのレジスタをコンパイラターゲットとできる。そのため、コンパイラ効率を高めることができる。そのほかにも、仮想化や暗号化、リングレベルなど、さまざまな機能が改善されている」。

 ARM元々の32-bit命令セットでは、レジスタは16本で、しかもプログラムカウンタとスタックポインタは汎用レジスタを転用していた。それに対して、ARMv8 64-bitでは、命令フォーマットの中のレジスタスペースは5-bit長になり、汎用レジスタは31本+ゼロレジスタの構成になった。レジスタ本数は、単純に倍増しただけでなく、より有効に使えるようになった。そのため、ARMv8ではコンパイラの効率が向上する。

ARMv8 64-bitモードのレジスタ

 また、レジスタの増加とコンパイラの生成するコード効率の向上によって電力効率も上がる。アプリケーションが複雑になるに連れて増える、レジスタ内容のキャッシュへの待避によるスピル&フィルを減らすことができるからだ。結果として、キャッシュアクセスを減らして電力消費を減らすことができるとARMは説明する。

センサーノードのためにCortex-Mを強化

 ウェアラブルやIoT(The Internet of Things)では、Cortex-Aよりも下位のマイクロコントローラクラスのCortex-Mシリーズが重要だ。ウェアラブル市場は、高性能製品のCortex-A系と、低消費電力製品のCortex-M系に2分されている。ARMは昨年(2014年)、ウェアラブルなどを意識したCortex-Mシリーズの最高峰Cortex-M7を発表した。ARMはCortex-M4で、MCUにDSP機能を融合させた。Cortex-M7はその発展形でDSP性能を大幅に強化した。

 「浮動小数点演算を強化した理由は、センサノードとしての機能のためだ。例えば、オーディオプロセッシングのような。マイクが常にコマンドを待ち受ける状態が必要になったとしよう。コマンドを検知するためには、膨大な量の浮動小数点演算が必要となる」(ARMのHurley氏)。

 ウェアラブルや一部のIoTでは、各種センサーからのデータをプリプロセッシングする必要がある。Hurley氏が指摘する音声コマンド認識や画像認識などがその例だ。こうした処理のためには、従来はMCUとDSPの組み合わせを使うことが多かった。Cortex-M7はそれを1コアで処理することができるようにした。ウェアラブルやIoTの盛り上がりに対応したIP製品だ。

 こうしたCortex-Mの強化路線は、当然のことながら、ローエンドのCortex-Aとの棲み分けがどうなるかという疑問になる。現状では、両アーキテクチャ系列の区分けは非常に明瞭だ。Cortex-AはMMU(Memory Management Unit)を備え、Cortex-MはMMUを持たない。メモリアーキテクチャの違いが、両系列の決定的な違いとなっている。

 「Cortex-MはMMUとキャッシュを持たない。それが、Cortex-Mを非常に応答性がいいプロセッサにしている。しかし、一定の性能ポイントにまで到達したら、キャッシュが必要となる。その結果、そのCPUは小さなコアほど応答性がよくはなくなる。性能と高い応答性のバランスを考慮する必要がある。それが、MMUを持つCortex-Aとの区分となっている」とARMのHurley氏は言う。

新不揮発性メモリで崩れるMMUとメモリ量の壁

 基本ラインは、Cortex-AはMMUで外付けDRAMなどをメインメモリとして使い、Cortex-MはMMUなしでエンベデッドメモリをワーキングメモリとして使うというスタイルとなる。MMUの有無とメモリ量から、OSも分かれる。Cortex-AはAndroidなどのMMUと大容量メモリを必要とするコンプレックスOSを走らせることができる。それに対して、MMUを持たずメモリ量も限られるCortex-Mは組み込み/リアルタイムOSしか走らせることができない。両CPUファミリの差異は、OSとソフトウェアベースの違いと結びついている。

 「MMUを持つか持たないかは、速い応答性と、複雑なOSを走らせることができることのトレードオフとなる。このトレードオフがあるため、現状(の高機能ウェアラブルなど)では、(MMUを持つ)大きなコアと、(MMUを持たない)小さなコアの組み合わせとなる。継続的に動作し続ける必要があるセンサーノードタイプのアプリケーションには小さなコア。しかし、集めたデータをより高度にプロセッシングするためには大きなコアとなる。次の疑問は、この2つのコアを1つのコアにまとめた方がいいのかどうかという点になる」(Hurley氏)。

ARMの想定するウェアラブルSoC。Cortex-A系とCortex-M系が併存する
PDF版はこちら

 しかし、この区分けは、現在の組み込みSRAMと組み込みフラッシュのモデルを前提としている。例えば、将来、新しい不揮発性メモリが大容量で高速な組み込みメモリを可能にした場合、前提となるメモリ量の問題が変わって来る。その場合、Cortex-M系にMMUを組み込む可能性はないのか。

 「決してないとは言いたくはない。しかし、当面はMMUを持たないことがいいバランスだと考えている。新不揮発性メモリは、確かに有望な技術で非常に興味深い。しかし、我々はライセンスビジネスをしている。そのため、低速な組み込みフラッシュでも充分に動作することを保証する必要がある。顧客がどのようなものを望んでいるかを注意深く見て行く必要がある」とHurley氏はビジネス上の理由を説明する。

 ARMはCPUの設計センターを世界に分散させている。英Cambridge(ケンブリッジ)がCortex-RやCortex-A5/7/53を設計、仏Sophia Antipolis(ソフィア・アンティポリス)がCortex-A9/12/17を設計、米Austin(オースティン)がCortex-A8/15/57/72を設計した。そして、新しい台湾CPU設計センターが、今後のCortex-Mファミリを設計する。ARMがCortex-Mの設計を台湾に置いたのは、Cortex-Mではファウンダリや組み込み系の顧客との密接な関係が必要だと判断したからだという。

ARMの開発拠点
PDF版はこちら

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