伝えられるところによると、プロセッサ設計会社の Arm は本日、次世代 32 ビット マイクロコントローラを開発するための Armv8.1-M アーキテクチャを発表する予定です。
この技術は、チップメーカーがライセンスを取得して自社のコンポーネントに搭載できる、将来的に強力なArm Cortex-M CPUコアの基盤となることが期待されています。あなたや私のような消費者にとって、これは、最終的にこれらのシステムオンチップを搭載したガジェットや機器の処理性能が多少向上することを期待できることを意味します。
マイクロコントローラは、ウェアラブル機器、医療機器、IoTセンサー、車載電子機器などを駆動します。目に見えない小型で電力効率に優れ、それぞれが特定のタスクを実行するようにプログラムされており、そのタスクを効率的に実行します。そのため、CPUを簡素化・合理化しているため、ArmのCortex-Aシリーズなどの汎用アプリケーションプロセッサに備わっている機能は備えていません。
例えば、ArmのマイクロコントローラグレードCortex-Mファミリーにはメモリ管理ユニットが搭載されていませんが、オプションで基本的な保護ユニットを搭載できます。現在のCortex-Mコントローラには、セキュリティのためのTrustZoneや、リアルタイムの数値計算のためのDSP拡張機能なども搭載可能です。
製品設計者やチップメーカーが、組み込みデバイス上で高負荷の機械学習や同様の演算処理を多用するコードを実行することを検討している中、ローエンドのマイクロコントローラーには、もう少し高い処理能力が求められています。そこで、Armv8.1-Mと、その上に構築されたCortex-Mコアが、その役割を担うことを期待しています。
少なくとも私たちが知る限り、v8-Mとv8.1-Mの主な違いは、Armのベクトル演算拡張機能であるHeliumのオプション追加です。ArmのシニアプリンシパルエンジニアであるJoseph Yiu氏によると、v8.1-Mマイクロコントローラーコアには以下の機能が搭載されます。
Helium(別名Mプロファイル・ベクター拡張、MVE)は、最大約150個の新規命令を導入します(ArmのRはもはやRISCの略ではありません)。高度なDSPおよび機械学習コードを高速に実行することを目的としており、Cortex-AラインのNeonスタイルのSIMD技術をCortex-Mシリーズに実質的に導入しています。Heliumは、可能な限り小型でエネルギー効率の高い設計になっているとされています。つまり、マイクロコントローラは、電力バジェットを超過することなく、浮動小数点レジスタを使用してデータを保持し、128ビットベクター上で動作・処理することができます。システムオンチップ設計者は、コンポーネントで使用するHeliumの量を調整するためのレバーを操作できます。
AIエンジン、Armの頭脳、DSPの力…Versalはザイリンクスのキッチンシンク版FPGA
続きを読む
HeliumはNeonよりもベクトルレジスタの数が少なく、ループ予測やスキャッターギャザーメモリアクセスなどの処理が可能で、Neonよりも多くのデータ型をサポートしていると言われています。FPUレジスタの使用に関しては、HeliumはFPUバンクから最大8つの128ビットベクトルを形成し、各ベクトルを例えば16個の1バイト値の配列、8個の16ビット整数または浮動小数点数、または4個の32ビット整数または浮動小数点数などの配列に分割し、HeliumのSIMD型命令に入力して一括処理することができます。
繰り返しになりますが、これは、この技術を使用するマイクロコントローラが、理論上は、機械学習の推論を実行するときによく見られるデータの配列やベクトルを処理するときにパフォーマンスが向上するはずであり、このチップを使用する製品は、ネットワークに接続された IoT ゲートウェイやバックエンド クラウドを参照することなく、センサーの読み取り値、オーディオ、音声、ビデオなどを高速に分析することを意味します。
Helium は、各ベクター レーンの条件付き実行もサポートし、128 ビット以上の整数を処理でき、32 ビットおよび 64 ビットのデータに対して便利なオプションのシフト命令をいくつか有効にします。
一方、低オーバーヘッド分岐拡張は非常に独創的で、古典的なループの開始と終了を示す一連の命令を導入しています。WLSはWhile-Loop-Start命令で、ループカウントと分岐アドレスを設定し、LEはループ終了を示します。さらに、DLSはDo-Loop-Start命令など、様々な派生命令があります。これはメモリアクセスと命令フェッチを最適化するためのものです。ループ実行中はこれらの特殊命令はスキップされるため、「低オーバーヘッド」と呼ばれています。
Armv8.1-M では、多数の新しい条件付き実行命令、より多くの浮動小数点型、いくつかの命令を使用してハードウェアで FPU コンテキストを保存および復元する機能、特権モードの CPU が特定のメモリ領域で実行されないようにする機能 (これにより、潜在的な権限昇格攻撃を阻止する)、さまざまなデバッグ アドオン、およびその他の機能強化も提供されています。
Armv8.1-M アーキテクチャを採用したチップは、2 年後、つまり 2021 年頃に市場に登場する予定です。これらのチップが利用可能になるまでは、電力使用量とパフォーマンスのバランスが正確にどうなるかはわかりません。
もしご興味があれば、ソフトバンク傘下のArmのウェブサイトに、本日中にさらに詳しい情報が掲載されると思います。®