このページの本文へ

前へ 1 2 次へ

ARM TechCon 2011レポート Vol.2

ARM、64bit化される次世代アーキテクチャー「ARMv8」を発表

2011年10月31日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

64bit化と機能強化で
ARMプロセッサーの汎用化を狙う

 ARMv8は現在のARMv7が持つ、SIMD演算機構であるNEONと、ベクター演算機構であるVFPを拡張し、さらに暗号化命令を追加、32bit、64bitの2つの命令セットを持つ。

暗号化命令は、AESおよびハッシュアルゴリズムのSHA-1、SHA-256に対応している

 64bit命令セットが導入された理由の1つは、仮想メモリ空間のサイズが、32bitアドレスである4GBでは、将来的に不足するであろうということから。また、このタイミングで汎用プロセッサーとしての機能を整備し、より広い分野での利用を狙いたいという思惑もある。

 AArch64では、64bit命令体系だが、命令を表わすオペコード自体は32bitで、これに32bitまたは64bitのオペランドが続くことがある。命令自体は32bit命令と同じ意味を持つものが用意されるが、ARMアーキテクチャ特有の条件付き実行パターンは、ブランチ、比較、選択の特定の命令のみになるようだ。

AArch64では、31個の64bit汎用レジスタ、32個の128bitメディアレジスタを搭載している

 64bit命令では、31個の汎用レジスタと独立したプログラムカウント、スタックポインタを持つ。また数値ゼロを表わす、ゼロレジスタも装備する。ゼロレジスタは、値がゼロで読み出しのみのレジスタであり、たとえばレジスタをクリアしてゼロにする場合の転送元などに利用する。64bitレジスタへのイミディエート値の書き込み命令は、通常は64bitのオペランドを利用し、命令長は32+64で96bitになるが、レジスタは、32bitの命令パターン内で指定ができるため、命令長は32bitとなり、高速化やプログラムが短くなるという効果が期待できる。

 反面、汎用レジスタのうちの1つが読み出し専用となるという欠点はあるものの、AArch64では、レジスタ指定は5bitあり、汎用レジスタ31個、ゼロレジスタ1個で32個のレジスタを指定できるため、問題にはならないだろう。

 また、これまでは動作モードで一部の汎用レジスタをバンク切り替えしていたが、これをやめ、スタックポインタ、プログラムカウンタ、ステータスレジスタのみを4つのモードで切り替えるのみとした。

 機能拡張となるNEON(SIMD)とVFPは、これまでのARMv7の命令をベースにしたものだが、128bitレジスタが32個となり、NEONでは、倍精度浮動小数点をサポート、IEEE 754(浮動小数点の演算規格。表現形式や丸め方法などを定義)がフルサポートされた。

 「CRYPTO」は、新たに追加される暗号処理支援機能で、AES、SHA-1、SHA-256を対象とした命令が用意される。

 また、アーキテクチャ上のアドレスは64bitだが、ARMv8では、物理メモリアドレスとしては、このうち48bit(256テラバイト)のみを利用する。仮想アドレスも48bitだが、カーネル空間、アプリケーション空間のそれぞれで48bitの仮想アドレスが利用できる。

ARMv8では、64bitの仮想アドレスを2つに分け、下にアプリケーション側の仮想メモリ空間48ビットを置き、最上位の48ビットにカーネル用の仮想アドレス空間を置く。ただし、物理メモリアドレスは48ビットまでとなっており、最大搭載メモリはTBである

 AArch32とAArch64の関係だが、1つのCPUが32bitと64bitの両方で動作する。ただし、32bit/64bitの動作モードの切り替えは、エクセプションかその戻りのタイミングのみに限定される。

 ARMv8には4つのエクセプションレベル(動作レベル)があり、EL0が最も低く、ここでアプリケーションが動作する。EL3はもっとも高く、ここで、セキュア実行環境の制御などが行なわれる。

ARMv8には、4つのエクセプションレベルがある。これは、いわゆる実行レベルであり、EL0が最も低く、アプリケーションを実行するところとなり、EL3がもっとも権限が高く、セキュア実行環境を管理するTrustZone用モニターが動作する。EL2は、仮想化支援機能のためのハイパーバイザーが動作し、EL1ではそのゲストOSが動作する。ただしAArch32では、現在のARMv7との互換性を保つため、EL1とEL2は同じレベルである

 EL2は、仮想化支援のためのハイパーバイザーの動作モードであり、EL1はゲストOSのレベルとなる。ただし、EL1では、32bitと64bitのどちらのOSも実行可能だ。

 ARMv8のAArch32は、ARMv7の延長上にあるが、AArch32は、拡張されており、ARMv8は32bitアーキテクチャのこれ以上の拡張を否定するものではなく、今後も拡張が続けられていくとする。

 今回は、ARMv8というアーキテクチャの概要のみ発表で、詳細な定義などは、2012年後半に公開される予定だ。


■関連サイト

前へ 1 2 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン