AArch64
[Wikipedia|▼Menu]

AArch64またはARM64は、ARMアーキテクチャの64ビット命令セットである。ARMv8- Cortex-A57/A53 MPCore big.LITTLE CPUチップ

最初に、Armv8-Aアーキテクチャとして導入された。Armは毎年新しい拡張機能をリリースしている[1]
Armv8.xおよびArmv9.x拡張機能「en:Comparison of ARMv8-A processors」も参照

2011年10月に発表された[2] Armv8-Aは、ARMアーキテクチャの根本的な変化を示した。これは、「AArch64」という名前のオプションの64ビットアーキテクチャと、関連する新しい「A64」命令セットを追加した。AArch64は、既存の32ビットアーキテクチャ("AArch32"/ARMv7-A)および命令セット("A32")とのユーザースペース互換性を提供する。16ビットのThumb命令セットは「T32」と呼ばれ、64ビットの命令セットがない。Armv8-Aを使用すると、32ビットアプリケーションを64ビットOSで実行し、32ビットOSを64ビットハイパーバイザーの制御下に置くことができる[3]。ARMは、2012年10月30日にCortex-A53およびCortex-A57コアを発表した[4]

Appleは、消費者向け製品(iPhone 5s)でArmv8-A互換コア(Cyclone)を最初にリリースした。AppliedMicroは、シリコンチップ化される前のArmv8-A アーキテクチャをFPGAに構築し、64ビットLinuxを実行する最初のデモを行った[5]Samsungの最初のArmv8-A SoCは、Galaxy Note 4で使用されているExynos 5433であり、big.LITTLE構成の4つのCortex-A57コアとCortex-A53コアの2つのクラスターを備えている。ただし、AArch32モードでのみ実行される[6]

AArch32とAArch64の両方に対して、Armv8-AはVFPv3/v4とAdvanced SIMD (NEON)を標準としている。また、AESSHA-1/SHA-256、および有限体演算(英語版)をサポートする暗号化命令も追加する[7]
命名規則

64+32ビット

アーキテクチャ:AArch64

仕様:Armv8-A

命令セット:A64 + A32

サフィックス:v8-A


32 + 16(サム)ビット

アーキテクチャ:AArch32

仕様:Armv8-R/ARMv7-A

命令セット:A32 + T32

サフィックス:-A32/-R/v7-A

例:Armv8-R、Cortex-A32
[8]


AArch64の機能

新しい命令セット、A64

31個の汎用64ビットレジスタがある。

専用のゼロレジスタまたはスタックポインタ(SP)レジスタがある(命令によって異なる)。

プログラムカウンタ(PC)は、レジスタとして直接アクセスできなくなった。

命令はまだ32ビット長で、ほとんどA32と同じである(LDM/STM命令とほとんどの条件付き実行が削除された)。

LDM/STMの代わりにロード/ストアのペアを搭載。

ほとんどの命令で予測を行わない(
分岐予測を除く)。


ほとんどの命令は、32ビットまたは64ビットの引数を取ることができる。

アドレスは64ビットと見なされる。


Advanced SIMD拡張 (NEON)

32個の128ビットレジスタ(以前の16個から増加)があり、VFPv4からもアクセスできる。

倍精度浮動小数点形式をサポート。

IEEE 754に完全に準拠。

AES暗号化/復号およびSHA-1/SHA-2ハッシュ命令もこれらのレジスタを使用。


新しい例外システム

レジスタとモードのバンク切り替えが少なくなる。


既存のLarge Physical Address Extension(LPAE)に基づく48ビット仮想アドレスから64ビットに簡単に拡張できるよう設計されたメモリ変換。

拡張:データ収集のヒント(Armv8.0-DGH)

AArch64はArmv8-Aで導入され、後続のバージョンに含まれている。AArch64は、Armv8-Aへの導入後にオプションとしてArmv8-Rにも導入された。Armv8-Mには含まれていない。
命令エンコード

A64命令は以下の表のビットアサインに基づいてエンコードされる。命令はグルーピングされており、主にビット25から28が命令の所属グループを表現している。

A64命令エンコード[9]タイプビット
313029282726252423222120191817161514131211109876543210
予約0op00000op1
SME命令1op00000op1op2op3
未割当0001
SVE命令op00010op1op2op3op4
未割当0011
データ処理(即値)100op0
分岐/例外生成/システム命令op0101op1op2
ロード・ストア命令op01op10op2op3op4
データ処理(レジスタ)op0op1101op2op3
データ処理(浮動小数/SIMD)op0111op1op2op3

Armv8.1-A

2014年12月、「v8.0を超える増分メリット」をもたらすアップデートであるArmv8.1-A[10]が発表された。拡張機能は2つのカテゴリ、すなわち命令セットの変更、および例外モデルとメモリ変換の変更に分類される。

命令セットの機能強化には、次のものが含まれる。

AArch64アトミック読み取り/書き込み命令のセット。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:33 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef