米国時間10月8日、米国サンノゼで開催された今年のTechConイベントでArmはCustom Instructions(カスタムインストラクション、カスタム命令)を発表した。ARMv8-Mアーキテクチャの組み込みCPU用の新機能で、顧客は組み込みシステムやIoTのアプリケーションなどで、特定のユースケースに最適化できる独自のカスタムインストラクションを書けるという機能だ。
本日の発表に先立ってARMの自動車とIoT事業担当シニアディレクターであるThomas Ensergueix(トーマス・エンセルグエイ)氏は「開発を支援する方法はすでにあるが、それはCPUの心臓にまで達するような深いものではない。今回弊社が顧客に提供しようとしているのは、独自のインストラクションをプログラムでき定義できる自由度であり、そしてそれらをCPU自身が実行できることだ」とコメントした。
彼は、最適化のためのオプションがARMには常にあったことを指摘する。それは専用バスでGPUに直結するためのメモリマッピングのアーキテクチャに始まり、現在のニューラルプロセッサーユニットに連なる。これによりCPUとアクセラレータ(GPU)が並列に動くが、データの通り道となるバスがボトルネックになる。顧客はCPUに直接接続されているコプロセッサー(浮動小数点演算プロセッサ)を使うことができるものの、本日の発表ではARMの顧客は独自のアルゴリズムにより、それらをCPU上で直接動かせる。これによりレイテンシーは下がるが、メモリマップド(GPUなどの外部チップとデータをやり取り)する手法とは異なり並列では動かせない。
ARMの主張では、この機能によって顧客のワークロードを低コスト低リスクで効率化でき、CPUの既存機能に対する妨害が何もない。しかも顧客は、すでに慣れ親しんでいる既存のスタンダードなツールをそのまま使える。
当面、カスタムインストラクションを実装できるのはArm Cortex-M33 CPUのみで、2020年の前半から可利用になる。しかし将来は、すべてのCortex-Mプロセッサーがデフォルトで利用できる。顧客に新たな費用やライセンス料は発生しない。
エンセルグエイ氏が指摘するのは、今後インターネットに接続されたデバイスがますます増えるとともに、ARMの顧客は自分が使うプロセッサーを独自のユースケースに合わせて最適化したくなるということだ。そして、そんなときカスタムインストラクションを作れれば、デバイスの電池寿命を延ばすことなどが可能になるだろう。
ARMはすでに、カスタムインストラクションでIAR SystemsやNXP、Silicon Labs、STMicroelectronics(STマイクロエレクトロニクス)などをパートナーにしている。
NXPのマイクロコントローラー担当上級副社長兼ジェネラルマネージャーであるGeoff Lees(ジェフ・リーズ)氏は「当社のようなシリコンサプライヤーは、ARMのカスタムインストラクションがあれば顧客により高度なアプリケーション固有の命令(インストラクション)の最適化を提供して、これからの時代の組み込みアプリケーションのパフォーマンスや電力消費、コードサイズの安定などの面を改善してもらえる。しかも、これらすべての改善がCortex-Mの幅広いエコシステムの中でできるので、顧客の既存のソフトウェア投資の効果が最大化される」と語る。
なお、組み込み関連のもうひとつのニュースとしてARMは本日、Mbed OSのガバナンスモデルのセットアップを発表した。この組み込みデバイス用のオープンソースのオペレーティングシステムは、ARM Cortex-Mチップで動く。Mbed OSそのものは常にオープンソースだが、Mbed OS Partner GovernanceモデルではARMのMbedシリコンパートナーたちが、毎月のProduct Working Groupのミーティングなどで、OSの開発について注文をつけられる。Analog Devices(アナログ・デバイセズ)やCypress(サイプレス)、Nuvoton(ヌヴォトン)、NXP、Renesas(ルネサス)、Realtek(リアルテック)、Samsung(サムスン)、そしてu-bloxなどがすでにこのグループに参加している。
[原文へ]
(翻訳:iwatani、a.k.a. hiwa)