英ARM社は、組み込みやIoT向けプロセッサーを想定したアーキテクチャー「ARMv8-M」を発表した(ニュースリリース)。Mアーキテクチャーとして初めてセキュリティー技術の「ARM TrustZone」を取り込んだ。

 MアーキテクチャーをベースにARM自身が設計したCPUコア「Cortex-M」は、多数の半導体メーカーのマイクロコントローラーに搭載されている。今回、MアーキテクチャーがARM TrustZoneを取り込んだことで、マイクロコントローラーのセキュリティー設計に弾みが付くと見られる。

64ビット命令はサポートせず

ARMv8-A、ARMv8-R、ARMv8-Mの概要 ARMの図。
ARMv8-A、ARMv8-R、ARMv8-Mの概要 ARMの図。
[画像のクリックで拡大表示]
ARMv6-M、ARMv7-M、ARMv8-Mの比較 ARMの図。
ARMv6-M、ARMv7-M、ARMv8-Mの比較 ARMの図。
[画像のクリックで拡大表示]

 v8アーキテクチャーは、メディア処理など高い演算性能が必要なプロセッサーに向けたAアーキテクチャーが2011年に正式発表された(日経テクノロジーオンライン関連記事1)。このARMv8-Aは、ARMとして初めて64ビット命令(A64)をサポートした。続いて、リアルタイム処理が必要なプロセッサーに向けたARMv8-Rは2013年に発表された(同関連記事2)。ARMv8-Rは32ビット命令(A32とT32)をサポートし、64ビット命令は扱わない。

 今回発表になったARMv8-Mも64ビット命令はサポートしない。32ビットのアーキテクチャーで、ARM Thumb-2命令をサポートする。ARMv8-Mは「ARMv8-M Baseline」と「ARMv8-M Mainline」からなる。前者はARMv6-Mを拡張したもので、TrustZoneを取り込んだほかに、ハードウエア割り算や、比較および分岐命令、プロセッサー間の共通セマフォーハンドリングに向けた例外アクセス、インタラクティブ・アクティブ・ビットなどを備えるといった特徴がある。

 ARMv8-M MainlineはARMv8-M Baselineを拡張したもので、オプションで整数DSPや浮動小数点演算、コプロセッサーなどをサポートする。両者の関係は、ARMv6-MとARMv7-Mの関係に似ている。ARMv7-Mは、ARMv6-Mが対応していない整数DSPや浮動小数点演算をサポートした。