(Translated by https://www.hiragana.jp/)
AArch64 - Wikipedia コンテンツにスキップ

AArch64

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
ARMv8 Cortex-A57/A53 MPCore big.LITTLE CPUチップ

AArch64(ARM Architecture 64-bit)またはARM64は、ARMアーキテクチャの64ビット命令めいれいセットである。

最初さいしょに、ARMv8-A英語えいごばんとして導入どうにゅうされた。Armは毎年まいとしあたらしい拡張かくちょう機能きのうをリリースしている[1]

概要がいよう

[編集へんしゅう]

ARMv8-Aから採用さいようされたAArch64アーキテクチャでは、汎用はんようレジスタがすべて64ビットとなり、レジスタのかずも16から31個いっこ増加ぞうかしている。サーバ用途ようと考慮こうりょして、仮想かそう支援しえん命令めいれい暗号あんごう支援しえん命令めいれい追加ついかされ、SIMD拡張かくちょう命令めいれいであるNEONも大幅おおはば強化きょうかされている。

命令めいれいセットの特徴とくちょう

[編集へんしゅう]

汎用はんようレジスタの増加ぞうかと64ビットともない、命令めいれいセットは完全かんぜんさい定義ていぎされている。コード効率こうりつ重視じゅうしし、命令めいれいちょうは32ビットのままにたもたれ、32ビットARMの特徴とくちょうであった条件じょうけん実行じっこう命令めいれい大半たいはん削除さくじょされた。これにより、一般いっぱんてきなRISC命令めいれいセットにちかづいたが、依然いぜんとしてコードサイズをちいさくするための工夫くふう随所ずいしょほどこされている。

AArch64モードにおける命令めいれいセットはA64とばれ、その特徴とくちょう以下いかとおりである。

即値そくちシフトきオペランドは、従来じゅうらいの32ビットARM命令めいれいセットにおいて「フレキシブルだい2オペランド(Flexible second operand)」とばれていたものに相当そうとうする。おおくの基本きほんてき演算えんざん命令めいれいでは、入力にゅうりょくオペランドの1つにたいして即値そくちひだりシフト、即値そくち論理ろんりみぎシフト、即値そくち算術さんじゅつみぎシフト、シフトなしの4つから選択せんたくすることができ、演算えんざん命令めいれい即値そくちシフト命令めいれい一体化いったいかできる。ただし、従来じゅうらいとはことなりローテートはサポートされていない。

汎用はんようレジスタのかず倍増ばいぞうしたため、おおくの基本きほん命令めいれいから条件じょうけん実行じっこう機能きのう削除さくじょされたが、それでも比較的ひかくてき豊富ほうふ条件じょうけん実行じっこう命令めいれい定義ていぎされている。代表だいひょうてきなものには、条件じょうけん比較ひかく(CCMP)、条件じょうけんきインクリメント(CINC)、条件じょうけん選択せんたく(CSEL; いわゆるCMOV)などが存在そんざいする。

Compare-and-Branch命令めいれいでは、PC相対そうたい分岐ぶんきにおいてゼロフラグを参照さんしょうする場合ばあいかぎり、比較ひかく条件じょうけん分岐ぶんきを1命令めいれいおこなうことが可能かのうである(CBZ/CBNZ)。これは従来じゅうらいのThumb-2命令めいれいセットでのみ定義ていぎされていたもので、A64モードでは基本きほん命令めいれいとして定義ていぎされている。

符号ふごう拡張かくちょう/ゼロ拡張かくちょう命令めいれいでは、算術さんじゅつ演算えんざん比較ひかく命令めいれいにおいて、入力にゅうりょくオペランドの1つを8、16、32ビットから32または64ビットに符号ふごう/ゼロ拡張かくちょうするバージョンが用意よういされている。

汎用はんようレジスタは64ビットはばであるが、おおくの演算えんざん命令めいれいにはレジスタの下位かい32ビットのみを参照さんしょうする32ビット命令めいれい用意よういされている。この場合ばあい、レジスタの部分ぶぶんえが発生はっせいしないように、演算えんざん結果けっかの32ビットの暗黙あんもくのゼロ拡張かくちょうおこなわれたうえで64ビットレジスタに格納かくのうされる。

Advanced SIMD and Floating-point 命令めいれい

[編集へんしゅう]

A64命令めいれいセットでは、従来じゅうらいのVFPとAdvanced SIMD(NEON)が統合とうごうされ、1つの命令めいれい体系たいけいとなった。これにより、名称めいしょうはAdvanced SIMD and Floating-point命令めいれいばれるようになった。

おも変更へんこうてんは、倍精度ばいせいど浮動ふどう小数点しょうすうてん演算えんざんへの対応たいおう、IEEE754への準拠じゅんきょ、レジスタ本数ほんすう増加ぞうかの3てんである。レジスタについては、128ビットのレジスタが32ほん増加ぞうかしており、依然いぜんとして64ビットレジスタとしてアクセスすることも可能かのうであるが、64ビットレジスタは128ビットレジスタの下位かい64ビットにマッピングされている。

VFPとAdvanced SIMDの統合とうごうともない、従来じゅうらいはVFPがになっていたスカラの浮動ふどう小数点しょうすうてん演算えんざん命令めいれいは、SIMDレジスタのうち下位かいの32/64ビットにのみ作用さようする命令めいれいとしてさい定義ていぎされている。たとえば浮動ふどう小数点しょうすうてん加算かさん命令めいれいについては

 fadd  s2, s1, s0             ; s2 <= s0 + s1(単精度たんせいどスカラ)
 fadd  d2, d1, d0             ; d2 <= d0 + d1(倍精度ばいせいどスカラ)
 fadd  v2.4s, v1.4s, v0.4s    ; [v2] <= [v0] + [v1](単精度たんせいどx4 SIMD)
 fadd  v2.2d, v1.2d, v0.2d    ; [v2] <= [v0] + [v1](倍精度ばいせいどx2 SIMD)

のようなバリエーションが命令めいれいのニーモニックをたもちつつ、オペランドのプレフィックス (s, d, v) とサフィックスを変更へんこうすることによって記述きじゅつ可能かのうになっている(サフィックスについては、一部いちぶ環境かんきょうけのアセンブラではニーモニックがわ付加ふかする省略しょうりゃく記法きほうゆるされるようである)。これはx86プロセッサのSSE命令めいれいセットがスカラ命令めいれいとSIMD命令めいれい双方そうほうそなえているのとよくている。

Scalable Vector Extension

[編集へんしゅう]

Scalable Vector Extension (SVE) は、Armv8.2-Aで追加ついかされたSIMD命令めいれいセット。富岳ふがく使つかわれたA64FX、Arm Neoverse V1[2](AWS Graviton3[3])などで実装じっそうされている[4]つぎ特徴とくちょうがある[4]

  • スケーラブルなベクトルちょう(VL)。128~2048ビットに対応たいおうする。レジスタはAdvanced SIMDと兼用けんようで、Advanced SIMDでは下位かい128ビットを使用しようする。レジスタすうつづき32
  • ベクトルちょうとらわれない(Vector Length Agnostic; VLA)プログラミング。レジスタのビットちょうことなったとしても、同一どういつ命令めいれいでSIMD処理しょりをすることが可能かのうである。
  • ギャザー・ロードとスキャッター・ストア
  • レーン単位たんい条件じょうけん実行じっこう制御せいぎょ
  • 条件じょうけん実行じっこう制御せいぎょ主導しゅどうのループ制御せいぎょ管理かんり
  • ベクトル・パーティショニングとSW管理かんり投機とうき
  • 拡張かくちょう整数せいすうおよび浮動ふどう小数点しょうすうてん演算えんざん水平すいへい方向ほうこう縮小しゅくしょう
  • スカラー内部ないぶベクトル・サブループ

Scalable Vector Extension 2 (SVE2) は、Armv9.0-Aで追加ついかされたSIMD命令めいれいセット[5]。SVEを発展はってんさせて汎用はんよう[6]、Advanced SIMD (NEON)のスーパーセットとなった[7]。SVEとはことなり、SVE2はArmv9-Aでは実装じっそう必須ひっすとなり[8]、Arm Cortex-X2とう実装じっそうされている[9]。ただし、Arm Cortex-X2, X3, X4, Neoverse V2で採用さいようしているベクトルちょうはAdvanced SIMDとおなじく128ビットで、とくながくはしていない[10][11][12][13]

Scalable Matrix Extension

[編集へんしゅう]

Scalable Matrix Extension (SME) は、Armv9.2-Aで追加ついかされたSIMD命令めいれいセット。Scalable Vector Extension は(1次元じげん)ベクトルを対象たいしょうとするのにたいして、Scalable Matrix Extension は(2次元じげん行列ぎょうれつ対象たいしょうとする[14]。Apple M4とう実装じっそうされていて[15]、Apple M4はベクトルちょうとして512ビットを採用さいよう[16]

Scalable Matrix Extension 2 (SME2) は、Armv9.4-Aで追加ついかされたSIMD命令めいれいセット。[17]

Armv8.xおよびArmv9.x拡張かくちょう機能きのう

[編集へんしゅう]

2011ねん10がつ発表はっぴょうされた[18] Armv8-Aは、ARMアーキテクチャの根本こんぽんてき変化へんかしめした。これは、「AArch64」という名前なまえのオプションの64ビットアーキテクチャと、関連かんれんするあたらしい「A64」命令めいれいセットを追加ついかした。AArch64は、既存きそんの32ビットアーキテクチャ("AArch32"/ARMv7-A)および命令めいれいセット("A32")とのユーザースペース互換ごかんせい提供ていきょうする。16ビットのThumb命令めいれいセットは「T32」とばれ、64ビットの命令めいれいセットがない。Armv8-Aを使用しようすると、32ビットアプリケーションを64ビットOSで実行じっこうし、32ビットOSを64ビットハイパーバイザー制御せいぎょくことができる[19]。ARMは、2012ねん10がつ30にちにCortex-A53およびCortex-A57コアを発表はっぴょうした[20]

Appleは、消費しょうひしゃ製品せいひんiPhone 5s)でArmv8-A互換ごかんコア(Cyclone)を最初さいしょにリリースした。AppliedMicroは、シリコンチップされるまえのArmv8-A アーキテクチャをFPGA構築こうちくし、64ビットLinuxを実行じっこうする最初さいしょのデモをおこなった[21]Samsung最初さいしょのArmv8-A SoCは、Galaxy Note 4使用しようされているExynos 5433であり、big.LITTLE構成こうせいの4つのCortex-A57コアとCortex-A53コアの2つのクラスターをそなえている。ただし、AArch32モードでのみ実行じっこうされる[22]

AArch32とAArch64の両方りょうほうたいして、Armv8-AはVFPv3/v4とAdvanced SIMD (NEON)標準ひょうじゅんとしている。また、AESSHA-1/SHA-256、および有限ゆうげんたい演算えんざん英語えいごばんをサポートする暗号あんごう命令めいれい追加ついかする[23]

命名めいめい規則きそく

[編集へんしゅう]
  • 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 [24]

AArch64の機能きのう

[編集へんしゅう]
  • あたらしい命令めいれいセット、A64
    • 31個いっこ汎用はんよう64ビットレジスタがある。
    • 専用せんようのゼロレジスタまたはスタックポインタ(SP)レジスタがある(命令めいれいによってことなる)。
    • プログラムカウンタ(PC)は、レジスタとして直接ちょくせつアクセスできなくなった。
    • 命令めいれいはまだ32ビットちょうで、ほとんどA32とおなじである(LDM/STM命令めいれいとほとんどの条件じょうけん実行じっこう削除さくじょされた)。
      • LDM/STMのわりにロード/ストアのペアを搭載とうさい
      • ほとんどの命令めいれい予測よそくおこなわない(分岐ぶんき予測よそくのぞく)。
    • ほとんどの命令めいれいは、32ビットまたは64ビットの引数ひきすうることができる。
    • アドレスは64ビットとなされる。
  • Advanced SIMD拡張かくちょう (NEON)
  • あたらしい例外れいがいシステム
    • レジスタとモードのバンクえがすくなくなる。
  • 既存きそんのLarge Physical Address Extension(LPAE)にもとづく48ビット仮想かそうアドレスから64ビットに簡単かんたん拡張かくちょうできるよう設計せっけいされたメモリ変換へんかん

拡張かくちょう:データ収集しゅうしゅうのヒント(Armv8.0-DGH)

AArch64はArmv8-Aで導入どうにゅうされ、後続こうぞくのバージョンにふくまれている。AArch64は、Armv8-Aへの導入どうにゅうにオプションとしてArmv8-Rにも導入どうにゅうされた。Armv8-Mにはふくまれていない。

命令めいれいエンコード

[編集へんしゅう]

A64命令めいれい以下いかひょうのビットアサインにもとづいてエンコードされる。命令めいれいはグルーピングされており、おもにビット25から28が命令めいれい所属しょぞくグループを表現ひょうげんしている。

A64命令めいれいエンコード[25]
タイプ ビット
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
予約よやく 0 op0 0000 op1
SME命令めいれい 1 op0 0000 op1 op2 op3
割当わりあて 0001
SVE命令めいれい op0 0010 op1 op2 op3 op4
割当わりあて 0011
データ処理しょり即値そくち 100 op0
分岐ぶんき/例外れいがい生成せいせい/システム命令めいれい op0 101 op1 op2
ロード・ストア命令めいれい op0 1 op1 0 op2 op3 op4
データ処理しょり(レジスタ) op0 op1 101 op2 op3
データ処理しょり浮動ふどう小数しょうすう/SIMD) op0 111 op1 op2 op3

2014ねん12月、「v8.0をえる増分ぞうぶんメリット」をもたらすアップデートであるArmv8.1-A[26]発表はっぴょうされた。拡張かくちょう機能きのうは2つのカテゴリ、すなわち命令めいれいセットの変更へんこう、および例外れいがいモデルとメモリ変換へんかん変更へんこう分類ぶんるいされる。

命令めいれいセットの機能きのう強化きょうかには、つぎのものがふくまれる。

  • AArch64アトミックり/命令めいれいのセット。
  • 一部いちぶのライブラリ最適さいてき機会きかい可能かのうにするためのAArch32とAArch64の両方りょうほうのAdvanced SIMD命令めいれいセットへの追加ついか
    • 符号ふごう飽和ほうわまるめ2ばい乗算じょうざん積算せきさん上位じょうい半分はんぶんかえす。
    • 符号ふごう飽和ほうわまるめ2ばい乗算じょうざん減算げんざん上位じょうい半分はんぶんかえす。
    • 命令めいれいは、ベクトル形式けいしきとスカラー形式けいしき追加ついかされる。
  • 構成こうせい可能かのうなアドレス領域りょういき制限せいげんされたメモリアクセス順序じゅんじょ提供ていきょうできるAArch64ロードおよびストア命令めいれいのセット。
  • v8.0ではオプションだったCRC命令めいれいは、Armv8.1では要件ようけんになった。

例外れいがいモデルとメモリ変換へんかんシステムの機能きのう強化きょうかには、つぎのものがふくまれる。

  • あたらしいPrivileged Access Never(PAN)状態じょうたいビット:明示めいじてき有効ゆうこうにされていないかぎり、ユーザーデータへの特権とっけんアクセスを防止ぼうしする制御せいぎょ提供ていきょう
  • 仮想かそうのためのVMID範囲はんい拡大かくだい多数たすう仮想かそうマシンをサポート。
  • ページテーブルアクセスフラグのハードウェア更新こうしんのオプションのサポート、およびオプションのハードウェア更新こうしんされたダーティビットメカニズムの標準ひょうじゅん
  • 仮想かそうホスト拡張かくちょう機能きのう(VHE):この拡張かくちょう機能きのうは、ホストオペレーティングシステムとゲストオペレーティングシステムあいだ移行いこう関連かんれんするソフトウェアオーバーヘッドを削減さくげんし、タイプ2ハイパーバイザーのパフォーマンスを向上こうじょうする。この拡張かくちょう機能きのうにより、ホストOSは実質じっしつてき変更へんこうなしにEL1ではなくEL2で実行じっこう可能かのう
  • OSがハードウェアサポートを必要ひつようとしない場合ばあいに、オペレーティングシステムで使用しようするために一部いちぶ変換へんかんテーブルビットを解放かいほうするメカニズム。
  • メモリのタグ機能きのう提供ていきょうするTop-byte Ignore[27]

2016ねん1がつ、Armv8.2-Aが発表はっぴょうされた[28]。その機能きのう強化きょうかは、つぎの4つのカテゴリに分類ぶんるいされる。

Scalable Vector Extension(SVE)

[編集へんしゅう]

スケーラブルベクター拡張かくちょう機能きのう(SVE)は、とくハイパフォーマンスコンピューティング科学かがくてきワークロードのベクトルのために開発かいはつされた「Armv8.2-Aアーキテクチャ以降いこうのオプションの拡張かくちょう機能きのう」である[29][30]。この仕様しようでは、128から2048ビットの可変かへんベクトルちょう実装じっそうできる。当初とうしょは、この拡張かくちょう機能きのうは、NEON拡張かくちょう機能きのう補完ほかんするものであり、これにわるものではなかったが、SVE2からはNEONのスーパーセットとなった[31]

512ビットのSVEの一種いっしゅは、富士通ふじつうA64FX ARMプロセッサを使用しようして富岳ふがくスーパーコンピュータ実装じっそうされている。富岳ふがくは、2021ねん本格ほんかく稼働かどう開始かいしし、当時とうじ世界せかい最高さいこう性能せいのうのスーパーコンピュータとなった[32]

SVEはGCCコンパイラによってサポートされており、GCC 8は自動じどうベクトルをサポートし[30]、GCC10はC関数かんすうをサポートしている。2020ねん7がつ時点じてんで、LLVMclangはCとIRの関数かんすうをサポートしている。ARM独自どくじのLLVMフォークは、自動じどうベクトルをサポートしている[33]

2016ねん10がつ、Armv8.3-Aが発表はっぴょうされた。その機能きのう強化きょうかは6つのカテゴリに分類ぶんるいされる[34]

  • ポインタ認証にんしょう[35](AArch64のみ)。アーキテクチャへの必須ひっす拡張かくちょうあたらしいブロック暗号あんごうQARMA英語えいごばん[36]もとづく)(コンパイラはセキュリティ機能きのう利用りようする必要ひつようがあるが、命令めいれいはNOPスペースにあるため、ふるいチップでは追加ついかのセキュリティを提供ていきょうしないが、下位かい互換ごかんせいがある)。
  • ネストされた仮想かそう(AArch64のみ)
  • Advanced SIMDでの複素数ふくそすうのサポート(AArch64およびAArch32)。たとえば、90倍数ばいすう回転かいてん
  • あたらしいFJCVTZS(Floating-point JavaScript Convert to Signed fixed-point, rounding toward Zero:JavaScript浮動ふどう小数点しょうすうてんすう符号ふごう固定こてい小数点しょうすうてんすう変換へんかんし、ゼロ方向ほうこうまるめる)命令めいれい[37]
  • メモリ整合せいごうせいモデルへの変更へんこう(AArch64のみ)。C++11/C11の(デフォルトではない)よりよわいRCpc(Release Consistent processor consistent)モデルをサポートするため(デフォルトのC++11/C11コンシステンシー・モデルは以前いぜんのArmv8ですでにサポートされていた)
  • よりおおきなシステム可視かしキャッシュのIDメカニズムのサポート(AArch64およびAArch32)

Armv8.3-Aアーキテクチャは(すくなくとも)GCC7コンパイラでサポートされるようになった[38]

2017ねん11月、Armv8.4-Aが発表はっぴょうされた。この拡張かくちょう機能きのうつぎのカテゴリに分類ぶんるいされる[39][40][41]

  • SHA3/SHA512/SM3/SM4暗号あんごう拡張かくちょう
  • 改善かいぜんされた仮想かそうサポート
  • メモリパーティショニングおよびモニタリング(MPAM)機能きのう
  • あたらしいセキュアEL2状態じょうたいとアクティビティモニター
  • 符号ふごうきおよび符号ふごうなし整数せいすうドットせき(SDOTおよびUDOT)命令めいれい

Armv8.5-AおよびArmv9.0-A[42]

[編集へんしゅう]

2018ねん9がつ、Armv8.5-Aが発表はっぴょうされた。その拡張かくちょう機能きのうつぎのカテゴリに分類ぶんるいされる[43][44]

  • Memory Tagging Extension(MTE)[45]
  • 攻撃こうげきしゃ任意にんいのコードを実行じっこうする能力のうりょく」を低減ていげんするための分岐ぶんきターゲットインジケータ(BTI)
  • 乱数らんすうジェネレーター命令めいれい:さまざまな国内こくないおよび国際こくさい規格きかく準拠じゅんきょした決定けっていろんてきしん乱数らんすう提供ていきょうする

2019ねん8がつ2にちGoogleAndroidがMemory Tagging Extension(MTE)を採用さいようすると発表はっぴょうした。[46]

2021ねん3がつ、Armv9-Aが発表はっぴょうされた。Armv9-Aのベースラインは、Armv8.5のすべての機能きのうである[47][48][49]。Armv9-Aは以下いか追加ついかしている。

  • スケーラブルベクターエクステンション2(SVE2)。SVE2は、SVEのスケーラブルなベクトルもとづいて構築こうちくされており、ほそつぶデータレベル並列へいれつ処理しょり(DLP)向上こうじょうさせ、命令めいれいごとによりおおくの作業さぎょう実行じっこうできる。SVE2は、Advanced SIMD (NEON)のスーパーセットとなり、現在げんざいNEONを使用しようしているDSPやマルチメディアSIMDコードなど、幅広はばひろいソフトウェアにこれらのメリットをもたらすことを目的もくてきとする[50]LLVM/Clang 9およびGCC 10からSVE2をサポートしている[50][51]
  • トランザクションメモリ拡張かくちょう(TME)。x86拡張かくちょう機能きのうつづいて、TMEはハードウェアトランザクションメモリ(HTM)とトランザクションロックエリジオン(TLE)のサポートを提供ていきょうする。TMEは、スケーラブルな同時どうじ実行じっこうせい実現じつげんして、つぶスレッドレベル並列へいれつ処理しょり(TLP)向上こうじょうさせ、スレッドごとによりおおくの作業さぎょう実行じっこうできるようにすることを目的もくてきとしている[50]。LLVM/Clang 9およびGCC 10からTMEをサポートしている[51]
  • 機密きみつコンピューティングアーキテクチャ(CCA)[52][53]

Armv8.6-AおよびArmv9.1-A[42]

[編集へんしゅう]

2019ねん9がつ、Armv8.6-Aが発表はっぴょうされた。その拡張かくちょう機能きのうつぎのカテゴリに分類ぶんるいされる[54]

  • 一般いっぱんてき行列ぎょうれつせき(GEMM)
  • bfloat16フォーマットのサポート
  • SIMD行列ぎょうれつ操作そうさ命令めいれい、BFDOT、BFMMLA、BFMLAL、およびBFCVT
  • 仮想かそう、システム管理かんり、およびセキュリティの強化きょうか
  • つぎ拡張かくちょう機能きのうLLVM 11ではすでにこれらの機能きのうのサポートを追加ついか[55]):
    • 拡張かくちょうカウンター仮想かそう(Armv8.6-ECV)
    • ファイングレイントラップ(Armv8.6-FGT)
    • アクティビティモニターの仮想かそう(Armv8.6-AMU)

たとえば、きめこまかいトラップ、Wait-for-Event(WFE)命令めいれい、EnhancedPAC2、FPACなどがある。SVEおよびNEONのBfloat16拡張かくちょう機能きのうは、おも深層しんそう学習がくしゅう使用しようするためのものである[56]

Armv8.7-AおよびArmv9.2-A[42]

[編集へんしゅう]

2020ねん9がつ、Armv8.7-Aが発表はっぴょうされた。

  • スケーラブルマトリックス拡張かくちょう(SME)(Armv9.2のみ)[57]。SMEは行列ぎょうれつ効率こうりつてき処理しょりするために、つぎのようなしん機能きのう追加ついかする。
    • 行列ぎょうれつタイルストレージ
    • オンザフライの行列ぎょうれつ転置てんち
    • タイルベクトルのロード/保存ほぞん/挿入そうにゅう/抽出ちゅうしゅつ
    • SVEベクトルの行列ぎょうれつ外積がいせき
    • 「ストリーミングモード」SVE
  • PCIeホットプラグの拡張かくちょうサポート(AArch64)
  • アトミックな64バイトロード/ストアでのアクセラレータへのアクセス(AArch64)
  • タイムアウト指定していきのWait For Instruction(WFI)およびWait For Event(WFE)(AArch64)
  • 分岐ぶんきレコードの記録きろく(Armv9.2のみ)

Armv8.8-AおよびArmv9.3-A[42]

[編集へんしゅう]

2021ねん9がつ、Armv8.8-AおよびArmv9.3-Aが発表はっぴょうされた。

  • マスク不可能ふかのうみ(AArch64)
  • memcpy()およびmemset()スタイルの操作そうさ最適さいてきする命令めいれい(AArch64)
  • PACへの拡張かくちょう機能きのう(AArch64)
  • ヒント条件じょうけん分岐ぶんき(AArch64)

Armv8.9-AおよびArmv9.4-A[42]

[編集へんしゅう]

2022ねん9がつ、ARMv8.9-AとARMv9.4-Aが発表はっぴょうされた。[58]

  • 仮想かそうメモリシステムアーキテクチャ(VMSA)の機能きのう強化きょうか
    • パーミッションインダイレクトとオーバーレイ
    • translation hardening
    • 128 ビット変換へんかんテーブル(ARMv9 のみ)
  • Scalable Matrix Extension 2 (SME2) (ARMv9のみ)
    • マルチベクトル命令めいれい
    • マルチベクトルpredicate
    • 2b/4b のウェイト圧縮あっしゅく
    • 1b バイナリーネットワーク
    • レンジプリフェッチ
  • ガードきコントロールスタック(GCS)(ARMv9のみ)
  • コンフィデンシャル・コンピューティング
    • メモリ暗号あんごうコンテクスト
    • デバイスの

Armv8-R(リアルタイムアーキテクチャ)

[編集へんしゅう]

オプションのAArch64サポートがArmv8-Rプロファイルに追加ついかされ、最初さいしょのARMコアがCortex-R82を実装じっそうした[59]。A64命令めいれいセットが追加ついかされ、メモリバリア命令めいれいにいくつかの変更へんこうくわえられている[60]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ Overview”. Learn the architecture: Understanding the Armv8.x and Armv9.x extensions. 2022ねん8がつ24にち閲覧えつらん
  2. ^ Neoverse V1”. June 12, 2024閲覧えつらん
  3. ^ Faster ML inference with AWS Graviton3”. community.arm.com. 12 June 2024閲覧えつらん
  4. ^ a b ARM、Hot ChipsでHPCようのスケーラブル・ベクトル拡張かくちょう公表こうひょう”. HPCwire Japan (2016ねん8がつ28にち). 2022ねん1がつ2にち閲覧えつらん
  5. ^ Overview - Learn the architecture - Introducing SVE2”. June 2, 2024閲覧えつらん
  6. ^ 株式会社かぶしきがいしゃインプレス (2021ねん3がつ31にち). “Arm、10ねんぶりのしんアーキテクチャ「Armv9」。富岳ふがくのSVE改良かいりょうばんやコンフィデンシャルコンピューティング機能きのう追加ついか”. PC Watch. 2022ねん1がつ2にち閲覧えつらん
  7. ^ Learn the architecture - Introducing SVE2”. June 2, 2024閲覧えつらん
  8. ^ machine/arch-armv9: remove crc and sve tunes, they are mandatory - Patchwork”. patchwork.yoctoproject.org. 12 June 2024閲覧えつらん
  9. ^ The Cortex-X2: More Performance, Deeper OoO - Arm Announces Mobile Armv9 CPU Microarchitectures: Cortex-X2, Cortex-A710 & Cortex-A510”. June 1, 2024閲覧えつらん
  10. ^ Arm Cortex‑X2 Core Technical Reference Manual”. June 1, 2024閲覧えつらん
  11. ^ Arm Cortex-X3 Core Technical Reference Manual”. June 1, 2024閲覧えつらん
  12. ^ Arm Cortex-X4 Core Technical Reference Manual”. June 1, 2024閲覧えつらん
  13. ^ Arm Neoverse V2 Core Software Optimization Guide”. June 2, 2024閲覧えつらん
  14. ^ Scalable Matrix Extension for the Armv9-A Architecture”. community.arm.com. 31 May 2024閲覧えつらん
  15. ^ Overview | Hello SME documentation”. scalable.uni-jena.de. 1 June 2024閲覧えつらん
  16. ^ Vector Length - Microbenchmarks | Hello SME documentation”. scalable.uni-jena.de. 1 June 2024閲覧えつらん
  17. ^ Arm A-Profile Architecture Developments 2022”. community.arm.com. 31 May 2024閲覧えつらん
  18. ^ "ARM Discloses Technical Details Of The Next Version Of The ARM Architecture" (Press release). Arm Holdings. 27 October 2011. 2019ねん1がつ1にち時点じてんオリジナルよりアーカイブ。2013ねん9がつ20日はつか閲覧えつらん
  19. ^ Grisenthwaite (2011ねん). “ARMv8-A Technology Preview”. 11 November 2011てんオリジナルよりアーカイブ。31 October 2011閲覧えつらん
  20. ^ "ARM Launches Cortex-A50 Series, the World's Most Energy-Efficient 64-bit Processors" (Press release). Arm Holdings. 2012ねん10がつ31にち閲覧えつらん
  21. ^ "AppliedMicro Showcases World's First 64-bit ARM v8 Core" (Press release). AppliedMicro. 28 October 2011. 2014ねん2がつ11にち閲覧えつらん
  22. ^ Samsung's Exynos 5433 is an A57/A53 ARM SoC”. AnandTech. 17 September 2014閲覧えつらん
  23. ^ ARM Cortex-A53 MPCore Processor Technical Reference Manual: Cryptography Extension”. ARM. 11 September 2016閲覧えつらん
  24. ^ Cortex-A32 Processor – ARM”. 18 December 2016閲覧えつらん
  25. ^ Top-level encodings for A64 - Arm A-profile A64 Instruction Set Architecture”. ARM. 2022ねん5がつ8にち閲覧えつらん
  26. ^ Brash (2 December 2014). “The ARMv8-A architecture and its ongoing development”. 23 January 2015閲覧えつらん
  27. ^ Top-byte ignore (TBI)”. WikiChip. 2022ねん7がつ17にち閲覧えつらん
  28. ^ Brash (5 January 2016). “ARMv8-A architecture evolution”. 7 June 2016閲覧えつらん
  29. ^ “The scalable vector extension sve for the Armv8 a architecture” (英語えいご). Arm Community. (22 August 2016). https://community.arm.com/processors/b/blog/posts/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture 8 July 2018閲覧えつらん 
  30. ^ a b GCC 8 Release Series – Changes, New Features, and Fixes – GNU Project – Free Software Foundation (FSF)” (英語えいご). gcc.gnu.org. 9 July 2018閲覧えつらん
  31. ^ Learn the architecture - Introducing SVE2”. June 1, 2024閲覧えつらん
  32. ^ "Fujitsu Completes Post-K Supercomputer CPU Prototype, Begins Functionality Trials – Fujitsu Global" (Press release) (英語えいご). 2018ねん7がつ8にち閲覧えつらん
  33. ^ ⚙ D71712 Downstream SVE/SVE2 implementation (LLVM)”. reviews.llvm.org. 2020ねん9がつ5にち閲覧えつらん
  34. ^ David Brash (26 October 2016). “ARMv8-A architecture – 2016 additions”. 2022ねん7がつ17にち閲覧えつらん
  35. ^ [Ping~,AArch64 Add commandline support for -march=armv8.3-a]”. 2022ねん8がつ24にち閲覧えつらん。 “pointer authentication extension is defined to be mandatory extension on ARMv8.3-A and is not optional”
  36. ^ Qualcomm releases whitepaper detailing pointer authentication on ARMv8.3” (2017ねん1がつ10日とおか). 2022ねん8がつ24にち閲覧えつらん
  37. ^ A64 Floating-point Instructions: FJCVTZS”. arm.com. 11 July 2019閲覧えつらん
  38. ^ GCC 7 Release Series – Changes, New Features, and Fixes”. 2022ねん8がつ24にち閲覧えつらん。 “The ARMv8.3-A architecture is now supported. It can be used by specifying the -march=armv8.3-a option. [..] The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions.”
  39. ^ Introducing 2017's extensions to the Arm Architecture” (英語えいご). community.arm.com. 15 June 2019閲覧えつらん
  40. ^ Exploring dot product machine learning” (英語えいご). community.arm.com. 15 June 2019閲覧えつらん
  41. ^ ARM Preps ARMv8.4-A Support For GCC Compiler – Phoronix” (英語えいご). www.phoronix.com. 14 January 2018閲覧えつらん
  42. ^ a b c d e Armv8.x and Armv9.x extensions and features”. Learn the architecture: Understanding the Armv8.x and Armv9.x extensions. 2022ねん5がつ4にち閲覧えつらん
  43. ^ Arm Architecture Armv8.5-A Announcement – Processors blog – Processors – Arm Community” (英語えいご). community.arm.com. 26 April 2019閲覧えつらん
  44. ^ Arm Architecture Reference Manual Armv8, for Armv8-A architecture profile” (英語えいご). ARM Developer. 6 August 2019閲覧えつらん
  45. ^ Arm MTE architecture: Enhancing memory safety” (英語えいご). community.arm.com. 2021ねん7がつ27にち閲覧えつらん
  46. ^ Adopting the Arm Memory Tagging Extension in Android” (英語えいご). Google Online Security Blog. 6 August 2019閲覧えつらん
  47. ^ Arm's solution to the future needs of AI, security and specialized computing is v9” (英語えいご). Arm | The Architecture for the Digital World. 2021ねん7がつ27にち閲覧えつらん
  48. ^ Schor (2021ねん3がつ30にち). “Arm Launches ARMv9” (英語えいご). WikiChip Fuse. 2021ねん7がつ27にち閲覧えつらん
  49. ^ Frumusanu. “Arm Announces Armv9 Architecture: SVE2, Security, and the Next Decade”. www.anandtech.com. 2021ねん7がつ27にち閲覧えつらん
  50. ^ a b c Arm releases SVE2 and TME for A-profile architecture – Processors blog – Processors – Arm Community” (英語えいご). community.arm.com. 25 May 2019閲覧えつらん
  51. ^ a b Arm SVE2 Support Aligning For GCC 10, LLVM Clang 9.0 – Phoronix”. www.phoronix.com. 26 May 2019閲覧えつらん
  52. ^ Unlocking the power of data with Arm CCA” (英語えいご). community.arm.com. 2021ねん7がつ27にち閲覧えつらん
  53. ^ Arm Introduces Its Confidential Compute Architecture” (英語えいご). WikiChip Fuse (2021ねん6がつ23にち). 2021ねん7がつ27にち閲覧えつらん
  54. ^ Arm A profile architecture update 2019” (英語えいご). community.arm.com. 26 September 2019閲覧えつらん
  55. ^ LLVM 11.0.0 Release Notes”. releases.llvm.org. 2021ねん3がつ11にち閲覧えつらん
  56. ^ BFloat16 extensions for Armv8-A” (英語えいご). community.arm.com. 30 August 2019閲覧えつらん
  57. ^ Scalable Matrix Extension for the Armv9-A Architecture” (英語えいご). community.arm.com. 2021ねん7がつ27にち閲覧えつらん
  58. ^ Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community” (英語えいご). community.arm.com. 2022ねん12月9にち閲覧えつらん
  59. ^ Frumusanu (September 3, 2020). “ARM Announced Cortex-R82: First 64-bit Real Time Processor”. AnandTech. 2022ねん7がつ17にち閲覧えつらん
  60. ^ Arm Architecture Reference Manual Supplement - Armv8, for Armv8-R AArch64 architecture profile”. Arm Ltd. 2022ねん7がつ17にち閲覧えつらん