AArch32

AArch 32は、現在のARMv7と互換性のあるstateだが、強化もされている。前述の暗号化命令などである。また、前述のLoad-Acquire、 Store-Releaseも含まれ、浮動小数点演算のIEEE754-2008対応演算なども強化されている。

また、ARMv8のAArch32は、ここで強化が終了というわけではなく、将来にわたって拡張されるものであるとしている。また、ARMv7自体も現在が最終ということではなく、今後の機能強化もあるとしている。

また、AArch32では、レジスタをバンク切り替えしていたが、その値は、上位のELで実行されるAArch64からは、32個の汎用レジスタに割り当てられ、上位ELでは、直接レジスタを操作できるようになっている。

このとき、EL1には、ARMv7でいう「SVC」(スーパーバイザモード)、「Abt」(アボート例外)、「Und」(未定義例外)、「FIQ」(高速割り込み)、「IRQ」(通常割り込み)、「Sys」(システムモード)は、EL1に割り当てられ、「Hyp」(ハイパーバイザーモード)は、EL2で、「Mon」(セキュアモニター)はEL3となる。ただし、AArch 32では、EL1とEL2は同じ特権レベルとなる。

ARM社では、現在のARMv7には、まだ性能向上の余裕があるが、64bit環境への対応には時間がかかるため、今回の発表を行ったとしている。また、詳細な情報やオープンソース関連物は、2012年から公開し、特にアーキテクチャ詳細情報の公開は、2012年後半に行うとしている。

ARMv7にあった8つのモードは、AArch32では、4つの例外レベルに振り分けられる。

AArch32側では、32bit汎用レジスタR0~14(R15はプログラムカウンタ)をモードごとにバンク切替して、スタックなどを分離しているが、EL3のAArch64環境では、64bit汎用レジスタ(X0~X30)にバンク切り替えしていたレジスタが割り当てられて見えるようになる。

関連記事

英ARM、100ドルスマートフォンを実現する高電力効率の「Cortex-A7」発表 (2011年10月20日)
http://android.journal.mycom.co.jp/articles/2011/10/20/02/