ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
ARM命令セットアーキテクチャーVersion 8のこと。64ビット対応を特徴とする。
AArch64ステートとAArch32ステートの2つのステート(実行モード)を持ち、新命令セット「A64」が定義される。
旧来のARM命令セットは「A32」、ARMの短縮命令セットThumb命令は「T32」と呼ばれ、この二つはAArch32の命令セットである。AArch32はARMv7の延長上にあり、ARMv8はARMv7を完全に内包するとしている。
64ビットARM搭載の最初の純正のコアは、Cortex-A50シリーズのCortex-A53/Cortex-A57であり、これらは2013(平成25)年4月2日にテープアウト(設計完了)したと発表されている。
AArch64は、31本の64ビット汎用レジスターと、1本のゼロレジスター、32本の128ビットメディアレジスターを持つ。
従来、汎用レジスターに割り付けられていた、スタックポインター(r13)、リンクレジスター(r14)、プログラムカウンター(r15)は汎用レジスターから分離され、専用レジスターが用意された。
汎用レジスターはx0からx30までの31本。レジスターが64ビット長になるのは64ビットマイクロプロセッサーとして必然だが、この数が倍に増やされるのはメモリーなどへの退避を減らし効率を上げるためであると説明されている。
64ビット化されたARMv8は、まずサーバー用途をフォーカスしていた。
ARM公式のARM Cortexコアよりも前に、まずサードパーティー製の64ビットプロセッサーが細々とサーバー用途に使われ始めた段階であった。
それに対してAppleは、Apple A7として2013(平成25)年に初めてスマートフォン分野に持ち込んだ。他社も2014(平成26)年に市場投入予定だが、それまでは独走状態である。
ステート(実行モード)と命令セットは、次の種類を持つ。
「A64」のオペコード自体は32ビットで、これに32ビットまたは64ビットのオペランドが続くことがある。つまり32ビット、64ビット、96ビットの3パターンでの不定長となる。
RISCなのに可変長にするあたり、相変わらずARMはRISCらしくない。
AArch64ステートに対応するOSは64ビットOSとなるが、ARMv8は従来の32ビット命令を全てサポートしている。
従って、ARMv8を用いた64ビットOSでも、従来の32ビットアプリケーションをそのまま動作させることができる。
32ビットから始まったARMは、64ビット化に伴って命令セットを一新した。
64ビット化では、64ビット演算による高速化や、従来の32ビット(4Giバイト)を超えるメモリー空間が使えるようになるなどのメリットがある。
しかし64ビットARMのAArch64ステートにとってまず重要な高速化は、命令セットを一新したことがその最大の要因となっている。従来のARM命令セット(A32/T32)はRISCとは思えないほどに複雑だったが、今回の命令セット(A64)ではモダンなRISC風へと変更されたため、より高速な処理が可能となったようである。
また、RISCで16本のレジスター(うち汎用レジスターは13本)はかなり少ないが、A64では汎用レジスターが倍以上の31本に増やされ効率化したり、プログラムカウンターなどを専用レジスタ化したり、モードごとのレジスター切り替えなどを簡略化するなどして効率化したことも大きい。
ARMアーキテクチャーの特徴となっていた条件付き実行は、分岐、比較、選択など特定の命令のみとなり、全命令に条件が付くことはない。
従来、条件付き命令を使えばユークリッドの互除法が僅か4命令で処理できることが「売り」となっていたが、現実には条件付き命令はあまり使われていない機能であり、また分岐予測の設計も複雑にしていたという。
64ビット命令セット(A64)では、64ビット命令だが命令長は32ビット長とした。しかし、単純に考えても、レジスターが倍に増え4ビットから5ビットに増えており、2つのソースと1つのデスティネーションで計3ビット分を新規に確保する必要があったため、有用でなかったこの条件フィールドは削除され、命令は簡素化されることになった。
RISCらしくなかったARMが少しRISCらしくなった、とも言える。ARMの歴史上で最も大きな変革であると言える。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます