10月27日(現地時間)、英国ARM社は、アメリカ、サンタクララ市で開催中のARM TechCon 2011で、新アーキテクチャである「ARMv8」を発表した。

ARMプロセッサは、ソフトウェアからみたプロセッサの仕様である「アーキテクチャ」、プロセッサの具体的な実装である「マイクロアーキテクチャ」を別に定義している。

アーキテクチャには、現在3つのプロファイルがあり、それぞれ、「アプリケーションプロセッサ」、「マイクロコントローラ」、「リアルタイム制御」の3つがあり、たとえば、現在広く使われているCortex-A9プロセッサ(これ自体はマイクロアーキテクチャである)は、ARMv7-Aというアーキテクチャになっている。

今回発表されたのは、ARMv8-Aで、次世代のアプリケーションプロセッサを定義するものだ。

ARMv7とARMv8の関係。ARMv8は、VFPやNENONを強化し必須機構として取り込んだのち、暗号化命令(CRYPTO)を装備、さらに32bit、64bitの実行環境があり、それぞれで命令セットを定義している。

ARMのアーキテクチャは、1つ前のアーキテクチャに対する機能追加や命令追加などで定義されるが、今回は、従来のARMv7と互換性のある32bit命令セットに加え、新たに64bit命令セットが追加されている。つまり、次世代のARMプロセッサは、64bit動作が可能なプロセッサとなるわけだ。

64bit命令セットは、従来の32bit命令セットと同じ意味の命令を持つものの、オペコードパターンなどは、再定義されていて、プリフィックスを使って命令の動作を変えて64bitモードを定義したx86/x64とは違っている。

ARMv8のうち、32bitプロセッサとしてのアーキテクチャ部分をAArch32、64bit部分をAArch64と呼ぶ。また、命令セットなどは、それぞれA32(あるいはA32 ISA。Instruction Set Architecture)、A64などと呼ぶ。なお、AArch32には、Thumb命令があり、これはT32と呼ばれるようだ。

機能という面からいうと、ARMv8-Aは、現在のARMv7-Aに対して、NEON(SIMD演算機構)、VFP(ベクトル浮動小数点演算機構)v3/v4を必須機能として取り込み、さらに暗号化命令を追加している。

A64命令セットでは、32bitの命令コードに32bitまたは64bitのオペランドを持つ。アドレスは64bitになる。ほとんどのARMv7命令にあった条件付き実行機能は、特定の命令のみになった。