英アーム(Arm)は、マイコンのCPUコアに向けたアーキテクチャー(命令セット)の最新版「Armv8.1-M」を発表した(ニュースリリース)。2015年11月に発表の「Armv8-M」を拡張したアーキテクチャーである(関連記事)。

 Armv8-Mと比べてArmv8.1-Mで拡張した主な点は以下の通り。(1)ベクトル演算命令(MVE:M-Profile Vector Extension)を追加。(2)ループや分岐を高速に実行する、省オーバーヘッドの分岐命令を追加。(3)半精度(16ビット)の浮動小数点演算をサポート。(4)TrustZoneをFPUに対しても拡張。(5)MPU(メモリー保護ユニット)に新しい属性を追加。(6)PMU(Performance Monitoring Unit)を含むデバッグ機能を拡張。(7)RAS(Reliability, Availability and Serviceability)を拡張、である。

 これらの中で目玉の拡張ポイントはMVEだ。Arm自身がArmv8.1-Mを実装したCPUコア「Cortex-M」ではMVEを「Helium」と呼ぶ。HeliumはArm-Aを実装したCPUコアにおける「NEON」と同じ位置付けであり、SIMD演算を実行するためのユニットとなる。NEONと同じくHeliumもオプションで、これらを備えないCPUコアも設計が可能。なおNEONと異なり、Heliumでベクトルデータとして扱えるのは整数のみである。浮動小数点に関してはオプションでスカラーFPUで対応する。

 Heliumのベクトルレジスターは128ビット幅で8個を備える。演算データとしては8/16/32ビットの整数が扱える。レジスター構成は用途に応じて64ビット幅を16個、あるいは32ビット幅を32個とすることも可能である。同社はHeliumを、従来のDPS拡張命令に代わるものと位置付けており、機械学習で15倍、信号処理で5倍の演算性能向上が可能としている。

 Heliumに対応したツール群とソフトウエアモデルは既に提供が開始された。Heliumを実装した実際のICは2年以内に市場に登場すると同社はいう。