【ARM TechCon 2011レポート】
次期ISA「ARMv8」を公表、64bitコンピューティングを導入へ

「ARM TechCon 2011」の来場者登録受け付け所

会期:10月25~27日(現地時間)

会場:米国カリフォルニア州サンタクララ
   Santa Clara Convention Center



 「ARM TechCon 2011」の最終日である10月27日(現地時間)、ARMコアの次期命令セットアーキテクチャ(ISA:Instruction Set Architecture)「ARMv8」が公表された。

 現行世代のISAは「ARMv7」である。ARMv7アーキテクチャにはアプリケーション処理CPU向けの「ARMv7-A」、リアルタイム制御CPU向けの「ARMv7-R」、マイクロコントローラ(マイコン)CPU向けの「ARMv7-M」があり、それぞれ「Cortex-Aシリーズ」、「Cortex-Rシリーズ」、「Cortex-Mシリーズ」のCPUコアに対応する。

 ARM TechCon 2011で公表されたARMv8 ISAは、ARMv7の3種類のアーキテクチャすべてではなく、アプリケーション処理CPU向けアーキテクチャ「ARMv7-A」の後継となる。正確には「ARMv8-A」と表記される。

 「ARMv8-A」と「ARMv7-A」の最も大きな違いは、64bitコンピューティングに対応したことだ。64bit実行モードの「AArch64」と32bit実行モードの「AArch32」がある。64bit実行モードの「AArch64」は、新たに開発した命令セット「A64」の下で動く。32bit実行モードの「AArch32」は、ARMv7-Aアーキテクチャとの互換性を有する。

 ARMv8を実装したCPUコアやプロセッサなどの詳しい情報は、2012年後半に明らかになる予定である。ISAはすでに完成しており、ARM社はライセンス供与を始めている。システムの試作品が登場するのは、2014年になる見通しだ。

ARM社CTOを務めるMike Muller氏が、27日午前の基調講演で「ARMv8-A」アーキテクチャの開発完了を明らかにしたARMv8-Aの技術概要は、27日午後2時~午後2時50分(現地時間)に開催された技術講演で公表された。写真は技術講演のタイトルを示したスライドARMv8-Aの概要。64bitモードと32bitモードで動作する。また現行製品のARMv7-Aアーキテクチャとは互換性を維持する
ARM命令セットアーキテクチャの変遷。ARMv8-Aでは、これまでと同様に前世代(ARMv7-A)の命令セットをすべて取り込むARMv8-Aの32bitモード「AArch32」と64bitモード「AArch64」ARMv8-Aの今後の展開

●64bit化を視野に入れていたARMv7-Aのアーキテクチャ拡張

 ARM社がCPUの新たなISAを発表したのは2004年10月の「ARMv7」以来、7年振りである。さらに前の世代のISA「ARMv6」を同社が発表したのが2001年10月なので、ARMv6とARMv7の間は3年と短かった。これに比べると、ARMv7とARMv8の間は、かなり長い。

 ただしこの間、ARMv7-Aアーキテクチャは少なくとも2回ほど、大掛かりな拡張を実施してきた。最初の拡張は2007年のマルチコア対応である。次の拡張は2010年であり、仮想化支援機構の搭載と物理アドレスの40bit化が公表された。現在のところ、Cortex-A15(開発コード名:Eagle)とCortex-A7(開発コード名:Kingfisher)が2010年の拡張に対応したCPUコアである。

 27日午後2時からの技術講演では、ARMv8-Aの64bitモード「AArch64」とその命令セット「A64」の開発は、2007年に始められたことが明らかになった。このことから、2007年以前からARM社は64bit化を検討していたこと、2010年のARMv7-A拡張は、64bitアーキテクチャの登場を前提とした拡張であったことが分かる。

64bitモード「AArch64」の開発動機。2007年に開発に着手したこと、アドレス空間の拡張と市場機会の拡大を64bit化によって実現すること、エコシステムの開発には時間がかかること(言い換えると、早期に開発に着手しなければならないこと)、を挙げた「AArch64」の概要。新たな命令セット「A64」、「AArch64」モード用の例外処理、セキュリティ機能(Trustzone)と仮想化支援機構、メモリ空間の変換機構、などで構成される。LPAEとあるのはLarge Physical Address Extensionの略称で、32bitを超える物理アドレスを与えることで32bitアドレスの制限(アドレス空間4GBの制限)を取り除く仕組み。「AArch64」では最大48bitの物理アドレスが与えられる

 また64bitモード「AArch64」の構成要素である、新命令セット「A64」、例外処理機構、セキュリティ機能、仮想化支援機構、メモリ空間の変換機構などの概要が27日午後2時からの技術講演で説明された。

 その内容をまとめると、命令長は32bitの固定長、物理アドレス空間は最大48bit、レジスタは64bitの汎用レジスタが31本と128bitのメディアレジスタが32本、倍精度浮動小数点演算をサポート、例外処理の優先度は4段階、ページサイズは4KBと64KBの2種類をサポート、などである。

命令セット「A64」の概要。32bit長の固定長命令である。汎用レジスタ群は、31本の64bit汎用レジスタを用意した。汎用レジスタ群はバンク分けしていない。またスタックポインタとプログラムカウンタ(PC)は、汎用レジスタとは別に用意する命令セット「A64」と、32bitモード「AArch32」の命令セット「A32」の主な違い。64bitの被演算子をサポートする、条件命令(条件分岐命令、条件比較命令、条件選択命令)の数を大幅に減らす、などの違いがある「A64」のSIMD命令セットと浮動小数点演算命令セット。32本の128bitレジスタ(メディアレジスタ)を用意したほか、倍精度(DP)浮動小数点演算に対応した
64bitモード「AArch64」のレジスタファイル。31本の汎用レジスタ(X0~X30)と32本の128bitメディアレジスタ(V0~V31)がある。汎用レジスタはスカラー整数演算とアドレス演算に使う。メディアレジスタはスカラー単精度浮動小数点演算とスカラー倍精度浮動小数点演算、整数および浮動小数点のSIMD演算、暗号化処理に使う暗号化処理のサポート。AES(Advanced Encryption Standard)暗号とSHA(Secure Hash Algorithm)暗号(SHA-1とSHA-256)の処理をサポートする例外処理モデルの概要。EL0(最低レベル)~EL3(最高レベル)の4レベルの優先度階層がある。例外処理中に別の例外が発生した場合、別の例外が処理中の例外と同等以上のレベルであれば、別の例外を優先して処理する
例外処理用のレジスタ。スタックポインタ、例外リンクレジスタ(ELR:Exception Link Register)、SPSR/CPSR(Saved/Current Process Status Register)がある例外処理のレベルとシステムの階層「AArch32」モードと「AArch64」モードの例外処理モデル
「AArch64」モードにおけるメモリ管理。64bitのアドレス空間をフルに利用すると大きさは2の64乗、すなわち16EB(1EBは10の6乗TB)という途方もない大きさになるので、近い将来において64bitの物理アドレスを用意する必要はないと考えられる。そこで物理アドレス空間は最大48bit(256TB)にとどめておき、変換テーブルベースレジスタ(TTBR:Translation Table Base Register)によって区分けした仮想アドレス空間ごとに、最大48bitのアドレスを割り当てる。TTBR0はアプリケーション用アドレス空間、TTBR1はカーネル用アドレス空間となるページテーブルの概要。4KBのページに対して4階層のアドレス変換を実行するモードと、64KBのページに対して2階層のアドレス変換を実行するモードをサポートする32bitモード「AArch32」と64bitモード「AArch64」の関係。32bitモードと64bitモードの切り換えは例外処理の発生と戻りによってのみ実行する、64bitのOS上で32bitアプリケーションが動く、64bitハイパーバイザ上で32bitのゲストOSが動作する、64bitのノンセキュアモードと32bitのセキュアモードが併存する、といった関係にある

●ARMv8を採用したサーバー用プロセッサが2012年に登場

 ARMv8を採用する半導体ベンダーをARMは公式にはアナウンスしなかったものの、ARMv8の発表と同じ27日に、半導体ベンダーのApplied Micro Circuits社(AMCC)がARMv8-Aアーキテクチャを採用したサーバー用64bitプロセッサ「X-Gene」を開発すると公式に発表した。

ARMv8-Aアーキテクチャにおける32bitモード「AArch32」の強化

 AMCCの発表によると、「X-Gene」の最大動作周波数は3GHz、待機時消費電力は300mW未満。ARMv8-AアーキテクチャのCPUコアを複数個、内蔵する。10GbpsのLANコントローラやストレージ用物理層IP、WAN用物理層IP、100Gbpsのマルチプロセッサ用ソケットなども搭載する。シリコンダイは台湾TSMCが40nmプロセスおよび28nmプロセスで製造する。製造開始時期は2012年の後半を予定している。

 またARMが27日に公表した報道機関向けのリリースには、AMCCのほか、MicrosoftとNVIDIAがコメントを寄せている。このことから、Microsoftは64bit OSのサポートで、NVIDIAはプロセッサの開発で、それぞれARMv8-Aと関わるとみられる。

 サーバーの世界はすでに64bitコンピューティングが主体であり、ARMプロセッサがサーバー市場に進出するためには64bit化が必須であることは理解しやすい。注意すべきなのは、ARMv8-Aアーキテクチャは32bitコンピューティングを内包しており、その進化を継続していくとしていることだ。

 ARMv8-Aからは、64bitプロセッサと32bitプロセッサの両方が誕生する。その詳細は早ければ、2012年に明らかになるだろう。

(2011年 10月 31日)

[Reported by 福田 昭]