Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。
ARM DDI 0487D.a(ID103018)
ARM
®
アーキテクチャリファレンスマニュアル
ARMv8、ARMv8-Aアーキテクチャプロファイル用
ii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARMアーキテクチャリファレンスマニュアル
ARMv8、ARMv8-Aのアーキテクチャプロファイル
著作権©2013-2018 ARM Limitedまたはそれはaf関係者。全著作権所有。
リリース情報
以下の関連このドキュメントの詳細気がするできました。
所有権に関する通知
この文書はプロです著作権によって保護されているその他の関連する権利とその実行R用の実装情報の共同ntaine D
この文書では、より多くの特許または係属中の特許出願。この文書の一部ありませんentは
明白なprioなしでいかなる手段によってもいかなる形式でも複製Armの書面による許可。明示または黙示を問わず、
特に明記しない限り、この文書では、禁反言その他の方法で知的財産権を付与されます。d。
Yこのドキュメンタリーの中の情報へのアクセス私たちのメンターは、あなたの承諾を条件であるあなたは、Uに他人を使用するか、許可しないSE
情報実装が第三者の特許を侵害しているかどうか判断する目的のため
この文書は証明されています「現状有姿」で識別されます。ARM PROVIDE代表者はいないATIONS AND NO Wアレンジメント、
明示、黙示または STA講師Yを含む無制限Aティオン、インプリED Wのアレンジ
マーチャント能力SATISF俳優Y QUALITY、NON-侵害または適合 AP用ARティキュラー
文書に関連した目的誤解を避けるために、Arm mareを使って表現しないを見て、
そして識別するための分析を行っていない特許、著作権の範囲と内容を明確化または理解するs、企業秘密、またはその他の権利
この文書は技術的に不正確な部分や誤植が含まれている可能性がありますors。
禁止されていない範囲でLAによるEDW、 いかなる場合で ARMは責任を負います いかなる損害についても
LIなしで含めるMITATI直接問わず、間接、特別、付随AL、PUNITIVE、または
結果Dしかし、AMAGES、 原因として責任理論のSS、A立ち上がる
何も使わないOこの文書、ARMがあればの助言 そのような可能性
損害
リリース履歴
日付 発行 機密性の 変更
2013年4月30日 A.a-1 Confidential- Betaドラフト ベータ版ドラフト初回版、限定サークルation。
2013年6月12日 A.a-2 Confidential-Betaドラフト 1号の第2ベータ版ドラフト、limi循環をテッド。
2013年9月4日 A.a Non-Confidential Beta ベータリリース。
2013年12月24日 A.b Non-Confidential Beta 2番目のベータリリース。
2014年7月18日 A.c Non-Confidential Beta 3番目のベータリリース。
2014年10月9日 A.d 非機密ベータ 4番目のベータリリース。
2014年12月17日 A.e Non-Confidential Beta 5回目のベータリリース。
2015年3月25日 A.f Non-Confidential Beta 6回目のベータリリース。
2015年7月10日 A.g 自信のない賭け セブンスベータリリース。
2015年9月30日 A.h 非機密ベータ 8番目の賭けリリース
2016年1月28日 A.i Non-Confide ntial Bイータ ナインベータリリース。
2016年6月3日 A.j 非機密EAC EACリリース。
2016年9月30日 A.k Non-Confidential v8.0 EAC EACリリースを更新しました。
2017年3月31日 B.a 非機密扱いv8.1EACは、V8.2はしてtaの 初期のrelARMv8.1とARMv8の組み込みが簡単です。2。
2017年9月26日 B.b 非機密扱いv8.2 EAC 初期v8.2 SPEを組み込んだEACリリース。
2017年12月20日 C.a Non-Confidential v8.3 EAC イニシャルv8.3 EACリリース
2018年10月31日 D.a 非機密扱いv8.4 EAC イニシャルv8.4 EACリリース
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。
ID103018 非機密扱い
この文書の短所それは商品にとても頼りです。Yあなたは FO責任を確保rをそのいずれかの使用、複製またはdisclosur E
この文書の一部は、関連する輸出法および規制に完全に準拠しています。この文書または任意のポートを保証するためにそこイオン
直接またはにエクスポートされていません直接sに違反してこれまでの輸出法。rの中の単語 "par tner"の使用ARMへの言及sのカストomers
パートナーシップを創設したり、それに頼ることを意図したものではありません他の会社との関係ARMはこの文書に変更を加えるかもしれないトン
いつでも予告なしに。
これらの条項に含まれる規定のいずれかが クリックスルーの規定いずれかと矛盾する、または署名された
この文書をArmと合意した後、クリックスルーまたは署名された書面による合意が優先され、それに優先します。
これらの用語相反する規定 このドキュメントはtranslかもしれません他の言語で便宜上使用されていること
Englis間に矛盾がある場合このドキュメントのhバージョンメンターおよび翻訳英語の用語のバージョン
合意が優先するものとします。
アームの企業ロゴ でマークされた言葉
®
または
Arm Limited(またはその子会社)の登録商標または商標です。
米国や他の場所で。 無断複写・転載を禁じます急いだ。その他のふすまDSと名前 で述べた このドキュメント かもしれない の商標
それぞれの オーナー You ARMに従う必要がありますs商標使用ガイド
http://www.arm.com/company / policies / trademark
著作権©2013 - 2018 Arm Limited(またはその関連会社)。すべての著作権予約済み。
アームリミテッド。Company 02557590登録イギリスで編。
110フルブールn Road、ケンブリッジe、イギリスCB1 9NJ。
LES-PRE-20349
本書では、ARMという用語は次のとおりです。「会社またはその子会社のいずれかとして 適切な"。
注意
ARMという用語は、以下のバージョンを指すことがあります。ARMアーキテクチャ、たとえばARMv8はversを指します。ARMのイオン8
建築。文脈はそれを明らかにしますこの用語はこのように使われています
このドキュメントではARMv8-Aアーキテクチャについてのみ説明していますectureのプロフィールのE。prevによって必要とされる行動のためにの有益なバージョン
このアーキテクチャプロファイル、ARMv7-A、ARMを参照してください。
®
Arアーキテクチャ参照マニュアル、ARMv7-AおよびARMv7-Rエディション
機密保持ステータス
この文書は非confにidential。この文書を使用、コピー、および開示する権利は、のライセンス制限に従う
によって締結された契約の条件に従ってArmと、Armがこの文書を送付した国。
製品 セント私たちに
文書内の情報はfです。最終的に、それは開発された広報担当者のためのものです。虫。
ウェブ 広告res
http://www.arm.com
この問題の制限
ARMv8アーキテクチャのこの号マニュアルには多くの改良と修正が含まれています。Vこれの乾燥
文書がフォローを確認しましたARMが今後の問題で取り組む予定の問題
rのPEステート D1-2167 ページで AArch64状態に設定されAAへのリセット時のPE状態rch32状態ページG1-5297が必要です
更なるアップデート。以来形成のリセットは、再表示されます。gister DESCRIPのションは、これはaffeないの品質状況CT
リリース。
ARMv8.4-NV入れ子になったV初期化 によって引き起こされるアクセシビリティテーブルとトラップへの影響の説明もありません。
この機能は、正しいトンのあるechnically読むのが非常に難しいと認識されています。Thがユーザビリティの問題がaddreになりますですssed
将来のリリースでは。
付録K12 ARM擬似コード定義にはさらにrが必要ですeviewと更新 シンクEこの付録では、むしろ、有益です
アーキテクチャ仕様の一部である以上に、これはこのリリースの品質ステータスに影響を与えません
iv Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。v
ID103018 非機密扱い
コンテンツ
ARMアーキテクチャリファレンスマニュアル、ARMv8、
ARMv8-Aアーキテクチャプロファイル
序文
このマニュアルについて..................................................................................................... 十六
このマニュアルを使う................................................................................................... 十八
規約............................................................................................................ xxiv
追加の読書.............................................................. .................... .......... xxv​​i
フィードバック.............................................................................................................. xxv
パートA ARMv8アーキテクチャの概要と概要
第A1章 ARMv8アーキテクチャの紹介
A1.1 ARMアーキテクチャについて ............................................................................... A1〜32
A1.2 アーキテクチャプロファイル ........ .................................................................................... A1-34
A1.3 ARMv8アーキテクチャの概念 .......................................................................... A1-36
A1.4 サポートされているデータタイプ ........... ................................. ................................... ........... A1-39
A1.5 Advanced SIMDとフロリダ浮動小数点サポート ........................................................ A1-49
A1.6 ARMメモリモデル .................................................................................... A1-55
A1.7 ARMv8アーキテクチャ拡張.......................................................................... A1-56
Bパート AArch64アプリケーションレベルアーキテクチャ
第B1章 AArch64アプリケーションレベルプログラムランマーズモデル
B1.1申請 についてレベルプログラマのmoデル................................................ B1-80
B1.2 AArch64実行状態のレジスタ............ ..................................................... B1-81
B1.3 ソフトウェア共同ntrolはd EL0を装備...................................................................... B1-86
内容
vi Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
第B2章 AArch64アプリケーションレベルのメモオリモデル
B2.1 Arm memについてオリモデル............................................................................ B2-90
B2.2 Armアーキテクチャにおけるアトミック性 ........................................................................ B2-92
B2.3 ARMv8メモリモデルの定義...... ........................................................ B2-97
B2.4 キャッシュとメモリ階層y ........................................................................ B2-111
B2.5 アライメントのサポート .................................... ......................................................... B2-116
B2.6 エンディアンのサポート ....... ........................................................ ............ .......... 。............ B2-119
B2.7 メモリの種類と属性...................................... ........ .... ........... ............ B2-122
B2.8 メモリ属性の不一致......................................................................... B2-132
B2.9 同期とセマフォ....................................................................B2-135
パートC ザ・AArch64 指図書
第C1章 A64命令セット
C1.1 A64命令セットについて ................... ......................................................... C1-150
C1.2 A64 アセンブリの構造mbler言語 ... ...................................................... C1-151
C1.3 アドレス生成 ...... ....................................... ............................................. C1-157
C1.4 命令エイリアス.............. ............................................................................... C1-160
第C2章 A64命令の説明について
C2.1 A64について命令の説明S ............. ............ ........... ........... 。 C2-162
C2.2 A64命令に関する一般情報説明について .............................. C2-165
第C3章 A64命令セットの概要
C3.1 分岐、例外生成、およびシステム命令 .............................. C3-170
C3.2 荷物と店............................................................................................... C3-177
C3.3 データ処理 -immediat 電子........................................................................... C3-193
C3.4 データ処理 - レジスタ ..................... ........................................................... C3-198
C3.5 データ処理 -SIMDと浮動小数点 ....................................................... C3-206
第C4章 A64命令セットのエンコード
C4.1 A64命令セットの符号化 ....................... ...................................................... C4-232
第C5章 A64システム命令C1お尻
C5.1 システム命令クラスエンコードスペース ................................................. C5-338
C5.2 専用レジスタ.. ............................................................................... C5-350
C5.3 A64 キャッシュ保守のためのシステム命令........................... .................. C5-429
C5.4 A64 アドレス変換のためのシステム命令............ ...... ............................. C5-452
C5.5 A64 TLBメンテナンスのためのシステム命令............................................…… C5-479
第C6章 A64基本命令の説明
C6.1 A64ベースインストラクションイオンについて....................................................................... C6-688
C6.2 A64基本命令のアルファベット順のリスト...................................................... C6-690
第C7章 A64 Advanced SIMDおよび浮動小数点命令刻印
C7.1 A64 SIMDについて浮動小数点命令NS .......... ........... ............ ....... C7-1268
C7.2 A64のアルファベット順リスト アドバンストSIMDと 浮動小数点命令 ......... C7-1270
パートD AArch64システムレベルアーキテクターe
第D1章 AArch64システムレベルプログラマ モデル
D1.1 例外レベル ............................................................................................. D1-2146
D1.2 例外用語..................................................................................... D1-2147
D1.3 実行統計e ................................................................................................ D1-2149
D1.4 セキュリティ状態 ................................................................................................ D1-2150
内容
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。
ID103018 非機密扱い
D1.5 仮想化.................................................................................................... D1-2152
D1.6 命令処理用レジスタそして、例外処理 .......... ............ .... D1-2155
D1.7 プロセス状態、PSTATE .............................. .................................................... D1-2161
D1.8の プログラムカウンタおよびスタックポインタの位置合わせ ............. ................................... D1-2164
D1.9 リセット........................................................ ....................................................... D1-2166
D1.10 例外エントリ ............................................................................................. D1-2170
D1.11の 例外復帰 ..... ......................................................................................... D1-2179
D1.12 例外レベルの階層 .................. ....................................................... D1-2183
D1.13 同期例外型、ルーティングとpリオrities ......... ........... ............ ....... D1-2190
D1.14 非同期例外タイプ、ルーティング、マスキングそして優先順位..................... D1-2198
D1.15 設定可能命令enabファイルを無効にしますトラップ制御 ... ............ .... D1-2208
D1.16 システムコール ........................................... ....................................................... D1-2254
D1.17 電力化のメカニズム状態 ... ................................................. D1-2255
D1.18 セルフホストデバッグ ........................................................................................... D1-2260
D1.19 イベントモニター ......................................... ....................................................... D1-2262
D1.20 インタープロセッシング......................................... ....................................................... D1-2263
D1.21 プログラマーズモデル に対する実装選択の影響................. D1-2276
第D2章 AArch64セルフホストデバッグ
D2.1 セルフホストデバッグについて ................................................................................. D2-2282
D2.2 デバッグ例外コントロールを有効にする ............ ................................................. D2-2286
D2.3 ルーティングデバッグxceptions .... ........................................... .......... ................... D2-2287
D2.4 現在の例外レベルからのデバッグ例外の有効化..................... D2-2289
D2.5 パワーダウンの影響デバッグ例外の.............. .............. ............ ....... D2-2291
D2.6ルートの まとめ有効化と有効化f deb ugの例外 ............................ D2-2292
D2.7 デバッグの疑似コード記述 例外 .......................................... ....... D2 -2293
D2.8 ブレークポイント命令以外イオン................................................................... D2-2294
D2.9 ブレークポイント例外.............................. ....................................................... D2-2296
D2.10 ウォッチポイントの例外 ............................. ....................................................... D2-2314
D2.11 ベクトルキャッチ例外 .... ............................................................................. D2-2328
D2.12 ソフトウェアステップの例外.... ........................................................................... D2-2329
D2.13 同期例外とデバッグ例外...... ................................................... D2-2342
第D3章 AArch64セルフホストトレース
D3.1 自己ホスト型tracについてe ................................................................................... D3-2344
D3.2 禁止地域in個のトレースを自己ホスト ..... ....................................................... D3-2345
D3.3 自己ホスト型トレースのタイムスタンプ......................................................................... D3-2346
D3.4 Synchroni自我の中のzationステップトレース ............................................................... D3-2347
章D4 AArch64システムレベルメモリモデル
D4.1 メモリシステムアーチについてitecture ....... ................................................... D4-2350
D4.2 アドレス空間 ............................................................................................... D4-2351
D4.3 ミックスエンディアンのサポート...................................................................................... D4-2352
D4.4 キャッシュサポート................................................................................................. D4-2353
D4.5 外部が中止されます ....... ...................................... ……............................ ............ ....... D4-2377
D4.6 メモリーバリアーinst破裂 ............................................................................. D4-2379
D4.7 属の擬似コード記述lメモリシステム命令... ............ .... D4-2380
章D5 AArch64仮想メモリシステムアーキテクチャ
D5.1 仮想メモリシステムアーキテクチャー(VMS)についてA) ................................. D5-2384
D5.2 VMSAv8-64アドレス変換システム ... ............................ ......... .......... D5-2392
D5.3 VMSAv8-64変換テーブルフォーマット記述子............................................. D5-2444
D5.4の メモリアクセス制御 ............................... .................................................... D5-2456
D5.5 メモリ領域の属性 ............................................................................... D5-2476
D5.6 仮想化ホストの拡張......................................................................... D5-2486
D5.7 ネスト仮想化........... ............................................................................. D5-2492
D5.8 VMSAv8-64メモリアボート ........................... ................................................. D5-2499
D5.9 翻訳ルックアサイドバッファ(TLB) ............ ................................................. D5 - 2509
内容
viii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
D5.10 TLBのメンテナンス要件とTL Bのメンテナンス手順......... D5-2515
D5.11 VMSAv8-64暗黙の内の キャッシュ........................................................ D5-2533
章D6 パフォーマンスモニタ拡張
D6.1 パーについてパフォーマンスMonito rs .................................................................... D6-2538
D6.2の パフォーマンスモニタの精度 ....... .................................................... D6-2540
D6.3 オーバーフロー時の動作....................................................................................... D6-2542
D6.4 帰属性... ......................................... ......................................... ............. D6-254 4
D6.5 EL3とEL2の影響 ............................. ....................................................... D6-2545
D6.6 イベントフィルタリング .................................................................................................. D6-2547
D6.7 パフォーマンスモニタとデバッグ状態......................................................... D6-2549
D6.8 カウンタイネーブル........ ................................................................... ............ ....... D6-2550
D6.9 カウンターアクセス ....................................................... ............................. ....... D6-2551
D6.10 PMUイベントとイベント番号..................................................................... D6-2553
D6.11 パフォーマンスモニタ拡張レジスタ .................................................... D6-2585
章D7 アクティビティモニター拡張
D7.1 Activity Monitors Extensionについて............................................................. D7-2588
D7.2 活動モニターの性質と行動........................ ................... D7-2589
D7.3 AMUイベントとイベント番号..................................................................... D7-2591
章D8 統計プロファイリングの拡張
D8.1 統計プロファイリングについて拡張 ...... .......................................... .. ........ D8-2594
D8.2サンプの 定義人口は....................................................................... D8-2596
D8.3 操作時の制御サンプリングされた上 ..... ................................................. D8-2598
D8.4 プロファイリングを有効にする............................................................................................. D8-2601
D8.5 サンプルレコードのフィルタリング........................... ....................................................... D8-2602
D8.6 プロファイリングデータ。........................................................................................... D8-2604
D8.7 プロファイリングバッファ..................................... .................................................... D8-2609
D8.8 プロファイリングバッファ管理........................................................................... D8-2613
D8.9の 同期と統計的プロファイリングは ..... ...................................... .... .......... D8-2617
章D9 統計プロファイリングの拡張機能Saレコード仕様
D9.1 統計プロファイリング拡張機能のサンプルレコードについて ... .............. ............. D9-2620
D9.2 統計プロファイリング拡張パケットのアルファベット順リスト........... ............ ....... D9-2623
章D10 AArch6の汎用タイマー4状態
D10.1 汎用タイマーについて .......................... ..................................................... D10-2646
D10.2 AArch64のビュー一般的なタイマF .. ..................................................... D10-2650
章D11 AArch64システムレジスタエンコーディング
D11.1 システムレジスタncoding space ....... ..................................................... D11-2656
D11.2 op0 == 0b10、MoデバッグおよびTRへとからVES エースシステムレジスタ ............. D11〜2657
D11.3 op0 == 0b11、に移動する非デバッグシステムレジスタからのd 、Special目的レジスタ
D11-2659
章D12 AArch64システムレジスタの説明
D12.1 AArch64システム・レジスタについて ....... ..................................................... D12-2674
D12.2 一般システム制御レジスタ.......... ......................................... .............. D12-2683
D12.3 デバッグレジスタ...... ......................................... ........................ ........... ........ D12-3210
D12.4 パフォーマンスモニタが登録する.................................................................... D12〜3299
D12.5の アクティビティは、レジスタを監視 ............................................................................. D12-3343
D12.6 統計プロファイリング拡張登録rs .... ..................................................... D12-3368
D12.7 RASレジスタs ................................................................................................ D12-3404
D12.8 汎用タイマレジスタ................................................................................ D12-3441
内容
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ix
ID103018 非機密扱い
パートE AArch32アプリケーション私はレベルのアーキテクチャをカチオン
章E1 AArch32アプリケーションレベルプログラムランマーズモデル
E1.1 アプリケーションについてレベルプログラマのmoデル............................................ E1-3530
E1.2 アプリケーションレベルのプログラマモデル AArch32状態 .......................... E1-3531
E1.3 アドバンストSIMDとFL浮動小数点命令...........................................…… E1-3542
E1.4 AArch32システムレジスタについてインターフェース................................................. E1-3553
E1.5 例外............................................... ....................................................... E1-3554
第2章 AArch32アプリケーションレベルのメモオリモデル
E2.1 ARMメモリモデルについて......................... ............................................... E2-3556
E2.2 ARMアーキテクチャのアトミック性 ............ ....................................................... E2-3558
E2.3 ARMv8メモリモデルの定義...... .................................................... E2-3562
E2.4 キャッシュとメモリ階層y ....................................................................... E2-3575
E2.5 アライメントサポート ........................................................................................... E2-3580
E2.6 エンディアンのサポート .......... ................................... ........................................... ....... E2-3582
E2.7 メモリの種類と属性.............................................. ...... ............ ....... E2-3586
E2.8 メモリ属性の不一致 ....................................................................... E2-3596
E2.9 同期とセマフォ................................................................... E2-3599
パートF AArch32命令セット
第F1章 AArch32命令セットの概要
F1.1 inのサポートさまざまなバージョンの構造アドオンのARM architectuのは..........再... F1-3612
F1.2 統一アセンブラ言語 .. .............................................. ..... ............ ........ F1-3613
F1.3 分岐命令........................................................................................... F1-3615
F1.4 データ処理命令............................................................................ F1-3616
F1.5 PSTATEと銀行アクセス命令を登録する ............ ............................... F1-3624
F1.6 ロード/ストア命令 ............................. ........................................................ F1-3625
F1.7 複数の指示イオンのロード/保存........................................................................ F1-3628
F1.8 その他の指示 ... ...................................... .......................... ........ F1-3629
F1.9 例外を発生させるnd例外処理 指示............. ................. F1-3631
F1.10 システムレジスタアクセス命令................................................................. F1-3633
F1.11 上級 SIMDと浮動小数点ロード/ストア 指示............................... F1-3634
F1.12 上級 SIMDと浮動小数点tレジスタ転送命令ons .................... F1-3636
F1.13 アドバンストSIMDデータ処理命令.............. ............................... F1-3637
F1.14 浮動小数点intデータ処理命令....................... ............................... F1-3647
第F2章 T32およびA32音源について説明
F2.1 フォルマ命令記述のtons .................................................................... F2-3650
F2.2 の標準アセンブラsyntaxフィールド ............... ..................................................... F2-3654
F2.3 条件付きe実行 ........... ....................................... ............................. ........ F2-3655
F2.4 シフト適用レジスターへ ................................................................................ F2-3657
F2.5 メモリアクセス ....................................... ..................................................... F2-3659
F2.6 一般目的のリストの符号化SEレジstersとPC .......... ............ ........ F2-3660
F2.7 T3に関する一般情報2およびA32 命令の説明.............. F2-3661
F2.8 追加の擬似コードsuinstructioためPPORT n個の記述 ............ ................. F2-3674
F2.9 Advanced SIMDとFloatiに関する追加情報ng-pointの指示 .. F2-3675
第F3章 T32命令セットのエンコード
F3.1 T32 i命令セット符号化ng ............ ................................................................ F3-3682
F3.2 T32 Advanced SIMD命令とfloating-po int命令について彼らのエンコーディング .......
F3-3748
章F4 A32命令セットのエンコード
F4.1 A32命令セット・エンコーディング ....................... ..................................................... F4-3750
内容
x Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
F4.2 A32 Advancedについて SIMDとフローティングポイント命令とそのエンコード .......
F4-3808
章F5 T32およびA32基本命令セットIns牽引の説明
F5.1 T32およびA32ベースのアルファベット順のリストstruct ion setのインストラクション.. ............ ..... F5-3810
F5.2の エンコードとバンクレジスタ転送の使用構造体 .......... ............ ........ F5-4514
F6章 T32およびA32 Advanced SIMDおよび浮動小数点命令の説明
F6.1 Advanced SIMDとfloatのアルファベット順リスト始点指示 ............... F6-4520
パートG AArch32システムレベルアーキテクチャ
第G1章 AArch32システムレベルプログラマモデル
G1.1 AArch32システムレベルプログラマモデルについて................................... G1-5208
G1.2 例外レベル ............................................................................................. G1-5209
G1.3 例外用語イノロジー ..................................................................................... G1-5210
G1.4 Executイオン状態 ................................................................................................ G1-5212
G1.5 命令セット状態 ................................. ....................................................... G1-5214
G1.6 セキュリティ状態 .......................................... ....................................................... G1-5215
G1.7 セキュリティ状態、例外レベル、およびAArc h32実行権限 ......................................................................... 51
G1.8 仮想化.................................................................................................... G1-5220
G1.9 AArch32状態のPEモードと一般的な目的eおよび特殊用途レジスタ ...........
G1-5222
G1.10 プロセス状態、PSTATE .................................................................................. G1-5231
G1.11 命令セットの状態 ............................... ....................................................... G1-5237
G1.12 Handling例外 それは例外に連れて行かれる使用レベル AArch32 ...... G1-5239
G1.13 RAArch32状態への中止の外出中... .................................................... G1-5258
G1.14を 除くAArch32を使用して例外レベルに戻ります................................. G1-5261
G1.15 非同期長期の例外行動AArch32状態から取られたイオン以外のr G1-5266
G1.16 AArch32つの状態例外の説明............................... .............................. G1-5274
G1.17 AArch32状態にリセット......................... ....................................................... G1-5296
G1.18 メック低電力状態に入るためのアニス ... ................................................. G1-5300
G1.19 ザ・ AArch32システムレジスタインタフェース.......................................................... G1-5305
G1.20 広告元のSIMDとフローティングポイントサポート .................................................... G1-5308
G1.21 C設定可能な命令により、無効にしdトラップ制御 ... ............ .... G1-5314
章G2 AArch32セルフホストデバッグ
G2.1 セルフホストデバッグについて ................................................................................ G2-5350
G2.2 デバッグxception有効制御 ............ ................................................. G2-5354
G2.3 ルーティングデバッグ 例外 ……...................................................... ............ ....... G2-5355
G2.4 デバッグ例外を有効にする現在の特権レベルとセキュリティ状態からの移行.............
G2-5357
G2.5パワー の影響デバッグ例外でrdownS .............. .............. ............ ....... G2- 5359
G2.6 許可されたルーティングと有効化の要約 デバッグ例外の ... ............ .... G2-5360
G2.7 疑似コードの記述n個のデバッグ例外 ............................................... G2-5362
G2.8 ブレークポイント命令例外がある場合は ............ ....................................................... G2-5363
G2.9 ブレークポイント例外..................................................................................... G2-5366
G2.10 ウォッチポイントの例外 ............................. ....................................................... G2-5391
G2.11 ベクタキャッチ例外 .......................... ....................................................... G2-5405
G2.12 Syn年代記とドバグの例外...... .................................................... G2-5412
章G3 AArch32セルフホストトレース
G3.1 自己ホストトレースについて ................................................................................... G3-5416
G3.2 禁止地域自己ホスト型traのsce ..... ....................................................... G3-5417
G3.3 セルフホストのtracタイムスタンプ .......................................................................... G3-5418
G3.4 セルフホストでの同期トレース ............................................................... G3-5419
内容
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xi
ID103018 非機密扱い
章G4 AArch32システムレベルメモリモデル
G4.1 メモリシステムについては、アーチ....... itectureを.................................. .................. G4-5422
G4.2 アドレス空間 ............................................ .................................................... G4-5423
G4.3 混合エンディアンのサポート................................. .................................................... G4-5424
G4.4 AArch32キャッシュと分岐予測ビクターサポート ................................................. G4-5425
G4.5 システムレジスタ想定実装定義のメモリ機能の rt G4-5448
G4.6 外部が中止されます ....... ...................................... ........................................... ....... G4-5449
G4.7 メモリーバー指示 ...................... ....................................................... G4-5451
G4.8 疑似コードの記述一般メモリのn システム命令... ............ .... G4-5452
章G5 AArch32仮想メモリシステムアーキテクチャ
G5.1 VMSAv8-32 について........................................................................................... G5-5456
G5.2 アドレス変換を無効にした場合の影響イオンステージオン VMSAv8-32の動作 G5-5464
G5.3 変換テーブル............................................................................................ G5-5468
G5.4 VMSAv8-32 の簡単な説明からrへの変換テーブルフォーマット...... ........................ G5-5473
G5.5 VMSAv8-32 Long-descriptorの翻訳形式で .............................. G5-5482
G5.6 メモリアクセス制御 ............................... .................................................... G5-5502
G5.7 メモリ領域の属性 ........................... .................................................... G5-5513
G5.8 翻訳Loオカサイドバッファ(TLB) ............ ................................................. G5-5525
G5.9 TLBのメンテナンス要件 .................. .................................................... G5-5529
G5.10 VMSAv8-32の キャッシュ .................................................................................... G5-5543
G5.11 VMSAv8-32メモリが中断する ........................................................................... G5-5546
G5.12 例外VMSAv8-32実装におけるレポート作成瞑想.................................…… G5-5558
G5.13 アドレス変換命令 ............... ....................................................... G5-5577
G5.14 PseVMSAv8-32メモシステム操作のudocode記述ons ............. G5-5584
G5.15 AbVMSAv8-32のシステムレジスタ .................................................... G5-5586
G5.16 楽しいVMSAv8-32システム登録者のグループ分け..................................... G5-5591
章G6 AArch3の汎用タイマー2状態
G6.1 汎用タイマーについてAArch32状態で ..... .......................................... ... .... G6-5594
G6.2 AArch32の見方o一般的なタイマF ..... .................................................... G6-5598
章G7 AArch32システムレジスタエンコーディング
G7.1 AArch32システムレジスタエンコーディングスペース .................... ........................... G7-5606
G7.2 VMSAv8-32オーガニゼーションのレジスタのうち (coproc)==0b1110)enco鼎スペース ..........
G7-5607
G7.3 VMSAv8 - 32オーガニゼーションのレジスタのうち (coproc)==0b1111)enco鼎スペース ..........
G7-5610
章G8 AArch32システムレジスタの説明
G8.1 AArch32システムレジスタについて .......... .................................................... G8-5628
G8.2 一般的なシステム制御レジストのERS ............. .......................................... ............. G8-5643
G8.3 デバッグレジスタ...... ......................................... ...................................... ....... G8-6130
G8.4 パフォーマンスモニタレジスタ ...................................................................... G8-6231
G8.5の アクティビティは、レジスタを監視.... ........................................................................... G8-6283
G8.6 RAS登録ers .................................................................................................. G8-6311
G8.7 汎用タイマレジスタ........ ........................................................................... G8-6356
パートH 外部デバッグ
章H1 外部デバッグについて
H1.1 外部デバッグ入門......................................................................... H1-6412
H1.2 外部デバッグ .......... ................................... ................................ ............ ....... H1-6413
H1.3 必要なデバッグ認証 .. ....................................... ........................... H1-6414
第2章 デバッグ状態
H2.1 デバッグ状態について..................................... ........................... ............ ....... H2-6416
内容
xii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
H2.2 デバッグイベントにPEの停止..................... ................................................. H2-6417
H2.3 デバッグ状態に入る ..................................................................................... H2-6424
H2.4 デバッグ状態での動作.................................................................................. H2-6427
H2.5 デバッグ状態を終了しています ......................................................................................... H2-6452
章H3 デバッグイベントの中止
H3.1 停止デバッグの紹介 イベント................................. .............................. H3-6456
H3.2 停止ステップデバッグイベント ... ................................... ................ ............ ....... H3-6458
H3.3 命令停止デバッグイベント ....................................................... ............ ....... H3-6468
H3.4 例外キャッチデバッグイベント ........................................................................ H3-6469
H3.5 外部デバッグ要求デバッグイベントが ........... ............................... ........... ....... H3-6473
H3.6 OS Unlock Catchデバッグイベント........................................................................ H3-6474
H3.7 リセットキャッチデバッグ通気孔 ... ............................................. ......... ............ ....... H3-6475
H3.8 ソフトウェアアクセスデバッグイベント.............................................. ... ................... H3-6476
H3.9 同期と停止バグイベント .... ......................................... ....... H3-6477
章H4 デバッグ通信Chチャネルおよび命令転送レジスタ
H4.1 はじめに..................................................................................................... H4-6480
H4.2 DCCおよびITRレジスタ......... ......................................... 。.............. ............ ....... H4-6481
H4.3 DCCとITRのアクセスモード...... ......................................... ......................... H4-6484
H4.4 フロー制御DCCおよびITRレジスタ ...................................... ........ .. H4-6488
H4.5 DCCアクセスとITRアクセスの同期 ... ................................................. H4-6492
H4.6 DC Cの割り込み駆動型の使用...................................................................... H4-6498
H4.7 th の操作の擬似コード記述e DCCおよびITRレジスタ......... H4-6499年
章H5 内蔵クロストリガインタフェース
H5.1 組み込みCross-Tについてリガー(ECT) .... .......................................... .... ... H5-6502
H5.2 ECTの基本操作 ........................ .................................................... H5-6504
H5.3 クロストリARMv8でPE上のggersは暗黙の内に..................................... H5-6508
H5.4 CTIトリガの説明と割り当て ... .................................................... H5-6509
H5.5 CTIは、プログラマメートルの登録.............. odelを........................... ............... .......... H5-6513
H5.6 例................................................. ....................................................... H5-6514
章H6 デバッグリセットとパワーダウンのサポート
H6.1 pを介したデバッグについてパワーダウン .............................................. ... ................... H6-6518
H6.2 電源ドメインとデバッグ.......................... ................................................. H6-6519
H6.3 コア電源ドメインの電源ステータス................................................................... H6-6520
H6.4 低電力状態のエミュレーション ........................................................................... H6-6523
H6.5 デバッグOSの保存と復元シーケンス ...... ....................................... ....... H6-6525
H6.6 リセットとデバッグ......................................... .................................................... H6-6529
章H7 PCサンプルベースのプロファイリング拡張
H7.1 PCサンプルベースについてプロファイリングの拡張............................................ H7-6532
章H8 外部デバッグレジスタについて
H8.1外部との 関係リットルのデバッグとSYST EMが登録 .......... ............ .... H8-6536
H8.2 エンディアンとサポートされているアクセプトサイズ ........................................................ H8-6537
H8.3エクステント への変更の同期rnal デバッグレジスタ.......... ............ .... H8-6538
H8.4エクステントへの メモリマップアクセス最終的なバグインタフェース .............. ............. H8-6542
H8.5 外部デバッグインタフェースレジスタアクセスのPE rmissions ......... .............. ............. H8-6545
H8.6 外部デバッグインタフェースレジsters .............. ............................ .............. .......... H8-6549
H8.7 クロストリガインタフェースレジスタ .............. ....................................................... H8-6554
H8.8 外部デバッグレジスタがリセットされます.............. ............................. .......... ................... H8-6556
章H9 外部デバッグレジスタ説明
H9.1 デバッグレジスタについて .... ................................... ............................. ....... H9-6560
H9.2 外部デバッグレジスタ ...... ........................................................ ............ ....... H9-6561
H9.3 クロストリガインタフェースレジスタ................ .................................................... H9-6666
内容
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。十三
ID103018 非機密扱い
パート I ARMv8アーキテクチャの メモリマップコンポーネント
第I1章 メモリーマップコンポーネントの要件
I1.1 サポートされているアクセスサイズ ....... ...................................... ............................... ......... I1〜6714
I1.2 メモリマップレジスタの同期.................................................. I1〜6716
I1.3 予約済みおよび未割り当てのアクセス要件テッドレジスタ ........................... I1〜6718
第2章 汎用のシステムレベル実装タイマー
I2.1 Generic Timerの仕様についてn ........ ..................................................…… I 2 - 6720
I2.2 カウンタモジュールのメモリ・マップド............ .............................. .......................... I2-6722
I2.3 メモリマップタイマコンポーネント......................................... .. ............ ......... I2-6726
第3章に 推奨される外部インタフェース パフォーマンスモニタ
I3.1 外部についてパフォーマンスモニタレジスタsへのインタフェース................. I3-6732
第I4章 への推奨外部インタフェース 活動モニター
I4.1 外部についてアクティビティモニタへのインタフェース拡張レジスタ......... I4〜6738
第5章外部 システム制御レジスタの説明ons
I5.1 外部システム制御レジスタの説明について.................................. I5〜6740
I5.2 外部パフォーマンスモニタは、suコマンドレジスタミリメートルをアリー.......................................... I5〜6742
I5.3 パフォーマンスモニタ外部登録 降順riptions ....................................... I5〜6745
I5.4 外部活動モニターの拡張イオンレジスター概要..............................…… I5-6816
I5.5 アクティビティモニターexternすべてのレジスタ記述子イオン................................................. I5-6818
I5.6 上汎用タイマメモリ・マップド・レジスタビュー........................................ I5-6854
I5.7 汎用タイマメモリマップドレジスタの説明.................... .................. I5-6855
パートJ 建築用擬似コード
第J1章 ARMv8疑似コード
AArch64 oのJ1.1 擬似コードperations .................................................... ........ J1-6902
J1.2 AArch32 oの擬似コードperation ............... .......................................... ........ J1-7008
J1.3 共有疑似コード ......................................................................................... J1-7086
パートK 付録
付録K1 予測不能な動作に対するアーキテクチャ上の制約
K1.1 AArch32が予期しない予期できない動作を起こしている .......... ..................... K1-7194
K1.2 AArch64 制約のある予測不可能な動作 .......... ..................... K1-7218
付録K2 推奨される外部デバッグインタフェース
K2.1 お勧めのeについて外部デバッグインタフェースエース........... ........... ............ ....... K2-7234
K2.2 PMUEVENTバス.............................................................. .................. ....... K2-7238
K2.3 推奨認証インターフェース........... ............................ ........... 。....... K2-7239
K2.4 マネジメント登録CoreSightコンプライアンスnce ......................................... K2-7241
付録K3 パフォーマンスモニタEvent Numbに関する推奨事項のための
実装定義イベント
K3.1 実装推奨イベント番号に対するARMの推奨事項... K3-7252
K3.2 例外レベルに達した例外 のイベントの要約ing AArch64 ............
K3-7267
付録K4 記憶を報告するための推奨事項インターコネクト上の属性
インターコネクトの メモリ属性を報告するためのK4.1 ARMの推奨事項.. K4-7270
内容
xiv Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
付録K5 実装に関する追加情報汎用タイマーの問題
K5.1 完全なものを提供するシステムレベルの実装における一連の機能…………… K5-7272
K5.2 タイマ分配方式のためのグレイカウント方式e .......................................... K5-7274
付録K6 AArchの従来の命令構文32命令セット
K6.1 レガシ命令Syntax ........................ ....................................................... K6-7276
付録K7 住所変換の例
K7.1 AArch64アドレス変換の例............................... ........................... K7-7284
K7.2 AArch32アドレス変換の例............................... ........................... K7-7296
付録K8 OSの保存と再作成の例シーケンスの保存
K8.1 デバッグレジスタの保存........... ....................................... ................. ............ ....... K8-7306
K8.2 デバッグレジスタの復元 ...... ...................................... .............................. ....... K8-7308
付録K9 推奨アップロードおよびダウンロードプロセス外部デバッグ用s
K9.1 AArch64状態で メモリアクセスモードを使用する......................... ..................... K9-7312
付録K10 ソフトウェア使用例
K10.1 アドバンストSIMD複素数の使用指示 ............................ K10-7316
K10.2 ARMv8の使用Cryptographic Extensionの2つの拡張機能.................. K10-7318
付録K11 バリアリトマス試験
K11.1 はじめに............................................................................................... K11-7326
K11.2積荷獲得、保管 、解放およびバリあー .. .............................................. K11-7329
K11.3 排他的ロード、獲得- 排他、ストア - リリース排他的および障壁 ................... K11-7333
K11.4 メールボックスを使って割り込みを送信する........ ..................................................... K11-7338
K11.5 キャッシュとTLBのメンテナンス手順と障害 ................................ K11-7339
DMBおよびDSBバリアを使用した、 K11.6 ARMv7互換のオーダーリングK11-7351
付録K12 ARM擬似コードの定義
K12.1 ARM疑似コードについて ......................................................................... K12-7366
K12.2 命令記述用疑似コードs ..... ......................................... ........ K12-7367
K12.3 データ型 .................................................................................................... K12-7369
K12.4 演算子 ...................................................................................................... K12-7374
K12.5 ステートメントと制御構造........ ..................................................... K12-7380
K12.6 組み込み関数............................................................................................ K12-7385
K12.7 その他のヘルパー手順とfuncti アドオン.......... ......................... ...... .. K12-7388
K12.8 ARM疑似コード定義インデックス................................................................. K12-7390
付録K13 レジスタ一覧
K13.1 紹介と登録Rの曖昧さ回避 ..................................................... K13-7394
K13.2 AArc h64レジスタのアルファベット順インデックスおよびシステム命令........... ..... K13-7399
K13.3 AArch64 レジスタの機能インデックスとシステム命令 ................... K13-7412
K13.4 AArc h32レジスタのアルファベット順インデックスおよびシステム命令........... ..... K13-7426
K13.5 AArch32 レジスタの機能インデックスとシステム命令 ................... K13-7435
K13.6 私のアルファベット順インデックスモリ・マップド・レジスタ .............. .............. ........... ... K13-7446
K13.7メモリマップレジスタの 機能インデックス................... ......................... K13-7452
用語集
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xv
ID103018 非機密扱い
序文
この序文の紹介ARM Arを強制するアーキテクチャ参照マニュアル、ARMv8、 ARMv8-A用ch イテクタe prオイレそれ
次のセクションがあります。
xviページのこのマニュアルについて
xviiiページのこのマニュアルの使い方
表記ページ上XXIV
追加のr eading ページXXVIに
xxv​​iiiページのフィードバック
注意
この資料はAR Mv8-Aアーキテクチャプロファイルだけを記述したものです。以下のためのARMv7で必要とされる行動-Aと
ARMv7-Rアーキテクチャプロファイル、ARを参照M
®
Arチャイテクターe参照最新のマニュアル、ARMv7-AおよびARMv7-Rエディション
プレハブe
このマニュアルについて
xvi Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
このマニュアルについて
このマニュアルはARMについて説明しています
®
アーキテクチャv8、ARMv8。アーキテクチャーは、
ARMv8-A Prエレメント(PE)、およびこのマニュアルには以下の説明が含まれています。
2回の実行 AArch64とAArch32の状態。
命令セット:
- AArch32状態では、A32およびT32命令セットth atは、以前のバージョンのと互換性があります。
ARMアーキテクチャ
- AArch64状態では、A64命令セット。
統計以下を含む、PEの動作方法を決定する esg現在の例外レベルとセキュリティ状態
AArch32はPEモードを示します。
例外モデル。
インタープロセッシングmodel、AArch64状態とAArch32状態の間の遷移をサポートします
メモリモデル、そのデフINESのメモリ順序とメモリの管理MENT。このマニュアルでは、
Vを定義するアーキテクチャー・プロファイルAR Mv8-A仮想記憶システムArch反復子e (VMSA)
プログラマーズモデル、およびほとんどのPEとメモリ制御するシステムレジスタへのインタフェース システム
機能、およびステータス情報を提供します。
Advanced SIMDとフロートg-point命令は、高性能を提供します。
- 単精度、半精度、および倍精度浮動小数点数ng-point operations
- 倍精度、単精度、および半精度の浮動小数点 間の変換t値
- 整数、単精度のfloating -point、半精度浮動小数点、およびA64では倍精度
すべての命令セットでのベクトル演算
- 単精度、半精度、および倍精度の浮動小数点vエクターのOPEのA64で配給
指図書。
セキュリティモデル。安全なアプリケーションをサポートするために2つのセキュリティ状態を提供します。
仮想化モデル、そのサポートNon-se cure操作の仮想化
ソフトウェア を提供するデバッグアーキテクチャデバッグ機能へのアクセス。
このマニュアルはアセンブラにsynを与えるそれが説明している命令に課税するibesの指示
テキスト形式 しかしながらこのマニュアルはARMアセンブラ言語のチュートリアルでも、説明もされていません。ibe ARM
非常に基本的なレベルを除いて、アセンブラ言語TARMアセンブラ言語を有効に活用する
使用しているアセンブラーに付属の資料
このマニュアルは、いくつかの部分に分かれています。
パートA ARMv8-Aアーキテクチャの概要、およびAArch64およびAAvch64の概要を説明します。
AArch32実行状態。
パートB アプリケーションの説明 AArch64 ExecuのカチオンレベルビューンスタットEL0からビューを意味する電子、。
アプリケーションレベルについて説明します。プログラマモデルとメモリモデルの一覧
パートC A64命令についての説明 これは、AArch64実行状態使用可能です説明
各命令について 正確な効果実行時の各命令のsEL0でed、
特権のない実行として記述その使用に関する制限や、その効果の影響
命令はより高く異なります例外レベル この情報は著者にとって最も重要です。
ARMマシンコード生成するコンパイラ、アセンブラ、およびその他のプログラムのユーザ
パートD AArch64実行状態のシステムレベルのビューについて説明しますそれは含みます システムの詳細
そのほとんどはEL0からアクセスできないレジスタ、およびプログラマのシステムレベルのビュー
モデルとmエモリーモデル。この部分CL 前記UDEセルフホストデバッグの説明。
序文
このマニュアルについて
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。十八
ID103018 非機密扱い
パートEは、アプリケーションレベルについて説明しstがAArch32の実行の観点からの眺めを意味し、食べたの
EL0。プログラマモデルとメモリモデルのアプリケーションレベルのビューについて説明します。
注意
AArch32状態でEL0での実行はユーザーモードでの実行です。
パートF はT32とA32について説明しています イオンセットを指示するで利用可能です AArch32実行統計e。これら
命令セットは逆向きです。ARMアーキテクチャの以前のバージョンに対応この部分
について説明します 各インストの正確な効果ユーザモードで実行した場合の動作
非特権ELでの実行または実行上の任意の制限を含む0、その 使用方法とその効果
命令の違い高い例外レベルでは、レベルが上昇しますこの情報は特に重要です。
コンパイラ、アセンブラ、およびその他のプログラムの作成者およびユーザがARMマシンコードを生成します。
注意
ユーザーモードが唯一のモードです。 ソフトウェアの実行は特権がありません。
パートG AArch32のシステムレベルビューについて説明します 実行状態、 一般的に互換性があります
ARM architの以前のバージョンecture。この部分にはdeが含まれていますSyst emレジスタの末尾、ほとんどの
これEL0からアクセスすることはできません、とでT ホース登録への構造化インタフェースisters。それはまた説明します
プログラマーのモデルのシステムレベルのビューメモリモデル
パートH デバッグアーキテクチャについて説明しています 外部デバッグ用 これにより、構成、ブレークポイント、および
ウォッチポイントのサポート、およびデバッグホストへのデバッグ通信チャネル(DCC)。
パートIの説明を追加 prと密接に結びついていないアーキテクチャの概念的な特徴過食エレメントン
(PE)、したがってメモリ-Mを介してアクセスされているが、インターをapped顔。これらの機能のいくつか
オプションです。
パートJ さまざまなスクリプトを記述する擬似コードを提供します ARMv8アーキテクチャの機能
パートK、付録
追加情報を入力してください。だから私の付録はARMv8の一部ではない情報を提供します
建築要件があります付録の表紙indicate のステータス
用語集この文書で使用されている仕様の用語の定義 意味の概念化
注意
Tあること マイクロエレクトロニクス業界で一般的によく理解されている
用語集
プレハブe
このマニュアルを使う
xviii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
このマニュアルを使う
このマニュアルの情報はこのセクションで説明するように、パーツにまとめられています
パートA、はじめに アーキテクチャの概要
パートA では、他のARM PEとの関連性など、ARMv8-Aアーキテクチャの概要を概説します。
アーキテクチャ 用語を紹介しますアーキテクチャを説明するために使用され、そしての概要を説明します。
実行状態、AArch64およびAArch32 内容は次のとおりです。
第A1章tの紹介ARMv8アーキテクトチューレ
私のためにこれを読んでARMv8アークの紹介アーキテクチャ。
パートB、AArch64アプリケーションレベルアーキテクチャ
パートBでは、アーキテクチャのAArch64状態アプリケーションレベルビューについて説明します。内容は次のとおりです。
第B1章AArch64アプリケーションレベルプログラムメアズモデル
アプリのためにこれを読んでくださいlicationのleveのはプログラマのリットルの説明で実行しているソフトウェアのモデル
AArch64状態 これは、EL0 WHの実行について説明しエンEL0はAArch64状態を使用しています。
第B2章AArch64アプリケーションレベルメモリオリモデル
実行するソフトウェアのためのメモリモデルのアプリケーションレベルの説明については、これを読んでください。
AArch64状態 それはEL0で実行するためのメモリモデルを記述しますEL0がAArch64を使用している場合
状態。それはes情報を含みますARMのメモリタイプ、属性、およびメモリアクセス制御について。
パートC、A64 指図書
パートC では、AArch64状態で使用される A64命令セットについて説明します。内容は次のとおりです。
第C1章A64私命令Seトン
のA64の説明については、これを読んでください。構造セットと共通命令操作の詳細。
第C2章A64命令の説明について
フォーマットを理解するために、これをお読みのをA64はイオンの説明を指示します。
第C3章A64命令セットの概要
個人の概要についてはこれを読んでください 構造式のA64 、番目は神に捧げられています5つの機能
グループ。
第C4章A64命令セットのエンコード
の説明のためにこれを読みますA64はイオンセットエンコーディングを指示します。
章C5 A64システムの構造クラス
AArch64システムの説明のためにこれを読んでください 命令とdescriレジスタptionsをし、
システム命令クラスのエンコードスペース。
第C6章A64基本命令の説明
Aの重要な側面についての情報はこれを読んでください64の基本命令との説明
個々の指示 アルファベット順に並んでいる 注文
章C7 A64 Advanced SIMDおよび浮動小数点命令の説明iptions
キーについての情報はこれを読んでください A 64 Advanced SIMDおよび浮動小数点命令の機能
alpにリストされている個々の命令イオンの説明については、アルファベット順
序文
このマニュアルを使う
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xix
ID103018 非機密扱い
パートD、AArch64システムレベルのアーキテクチャecture
パートDでは、アーキテクチャのAArch64状態システムレベルのビューについて説明します。内容は次のとおりです。
第D1章AArch64システムレベルプログラマ モデル
AArch64統計の説明については、これを読んでくださいプログラマモデルのシステムレベルのビュー。
第D2章AArch64セルフホストデバッグ
導入のためにこれを読んで、そして降順のriptionAArch64状態でのセルフホストデバッグ。
チャプターD3 AArch64セルフホストTレース
導入のためにこれを読んで、そして降順のription、AArch64状態の自己ホストトレース。
章D4 AArch64システムレベル 記憶モデル
の一般的な機能のAArch64状態システムレベルビュー説明については、これを読んでください。
メモリシステム
章D5 AArch64 V仮想メモリシステムアーキテクチャ
AA rのシステムレベルのビューについてはこれを読んでくださいch64 V仮想メモリシステムアーキテクチャ(VMSA)
ARMv8 imのメモリシステムアーキテクチャ元であるplementation AArch64状態でecuting。
章D6 パフォーマンスモニタ拡張
これを読んでdeインプリメントの記述mentatioのARMパフォーマンスモニタのN、 それは
オプションの非侵襲的デバッグコンポネント。
第D7章活動モニタtorsエクステンション
実装の説明についてはこれを読んでくださいARMアクティビティモニタのオプション、オプション
非侵襲的なコンポーネント。
第D8章Sタチスティカルプロファイリングエクステンション
これを読んでde実装の記述Sのntation統計プロファイリング拡張 それは
オプションのAArch64状態の非侵襲的デバッグコンプ一人ぼっち
D9章Sタティストicalプロファイリング拡張のサンプルレコード仕様
サンプルレコードの説明については、これを読んでください。 統計プロファイリング拡張機能によって生成されます。
章D10 AArch64状態の汎用タイマー
AArch64の説明のためにこれを読んでください ARM Genericの実装の見方タイマー
第D1章1 AArch64システムレジスタエンコーディング
enの説明の説明については、これを読んでください。AArc h64システムレジスタのコーディング
AArch64 Syの他の用途stemはエンコーディングスペースを登録します。
章D12 AArch64システムレジスタの説明
と記述子の紹介のためにこれを読んでください各AArch64システムレジスタの。
パートE、AArch32アプリケーションレベルアーキテクチャー奪う
パートEでは、アーキテクチャのAArch32ステートアプリケーションレベルのビューについて説明しますフォローインが含まれていますg章:
第E1章AArch32アプリケーションレベルプログラムメアズモデル
アプリのためにこれを読んでくださいlicationのleveのはプログラマのリットルの説明で実行しているソフトウェアのモデル
AArch32状態 これは、EL0 WHの実行について説明しエンEL0はAArch32状態を使用しています。
第2章AArch32アプリケーションレベルのメモオリモデル
実行するソフトウェアのためのメモリモデルのアプリケーションレベルの説明については、これを読んでください。
AArch32状態 それはEL0で実行するためのメモリモデルを記述しますEL0がAArch32を使用しているとき
状態。それはes情報を含みますARMのメモリタイプ、属性、およびメモリアクセス制御について。
プレハブe
このマニュアルを使う
xx Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
パートFAArch32命令セット
パートF では、AArch32状態で使用される T32およびA32指示イオンセットについて説明しています。内容は次のとおりです。
第F1章AArch32音源設定セットの概要
T32とA32の命令セットの概要についてはこちらをお読みください
第F2章T32とA32について構造体の説明
のフォーマットを理解するためにこれを読んでください T32およびA32命令の説明
第F3章T32命令セットのエンコード
T32命令の説明については、これを読んでください。セットエンコーディング これはのT32エンコーディング含みます
Advanced SIMDと浮動小数点命令
章F4 A32命令セットのエンコード
A32命令セットのエンコードの説明についてはこれを読んでくださいこれにはA32エンコーディングが含まれます。
Advanced SIMDと浮動小数点命令
第F5章T32およびA32基本命令セット命令の説明
それぞれの説明についてはこれを読んでください T32およびA32の基本命令について
章F6 T32およびA32 Advanced SIMD命令と浮動小数点命令の説明
それぞれの説明についてはこれを読んでください T32およびA32アドバンスドSI MDおよび浮動小数点
説明書
パートGAArch32システムレベルアーキテクトウレ
パートGでは、アーキテクチャのAArch32状態システムレベルのビューについて説明します。内容は次のとおりです。
第G1章AArch32システムメートルLEVEのLプログラマモデル
次のプログラマモデルのAArch32状態システムレベルビューの説明については、これを読んでください。
AArch32を使用している例外レベルでの実行
章G2 AArch32セルフホストデバッグ
導入のためにこれを読んで、そして降順のriptionAArch64状態でのセルフホストデバッグ。
チャプターG3 AArch32セルフホストTレース
導入のためにこれを読んで、そして降順のription、AArch64状態の自己ホストトレース。
章G4 AArch32システムレベルメモリ モデル
これを読んで、一般的なシステムレベルの見方をしてください。メモリシステムの機能
章G5 AArch32 V仮想メモリシステムアーキテクト
AArch32 Vについての説明はこちら私は、メモリシステムrtual アーキテクチャ(VMSA)を。
第G6章ジェネリックTAArch32状態のイマー
AArch32の説明のためにこれを読んでください ARM Genericの実装の見方タイマー
章G7 AArch32システムレジスタエンコーディング
説明の説明のためにこれを読む AArch32システムレジスタのエンコーディング
含んでいる システム指示一部のイオンAArch32システムでは、エンコードスペースを登録しています。
章G8 AArch32システムレジスタDエスクリプション
EAの説明についてはこれを読んでくださいAArch32システムレジスタのch。
序文
このマニュアルを使う
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xxi
ID103018 非機密扱い
パートH、外部デバッグ
パートHでは、外部デバッグのアーキテクチャについて説明しています。 内容は次のとおりです。
章H1 外部デバッグについて
外部への導入のためにこれを読んでください この部分の範囲のデバッグ、および定義
マニュアル。
第2章デバッグSテート
deの説明についてはこれを読んでくださいPEが停止の結果として入る可能性があるバグ状態 デバッグ
イベント
章H3 デバッグイベントの中止
外部の説明についてはこれを読んでください デバッグイベントは「デバッグイベントの停止」と呼ばれます。
H4章デバッグ通信チャネルおよび命令T転送登録
これを使用して、デバッガとPEデバッグロジックの通信について説明します。
デバッグ通信チャネルと命令T転送レジスタ
章H5 組み込みクロスTリガーインターフェース
埋め込まれたクロストリガの説明については、これを読んでください。gerインタフェース
章H6 デバッグリセットと電源切断
リセットの説明についてはこちらをお読みください。 デバッグアーキテクチャーでのパワーダウンサポート再。
章H7 PCサンプルベースのプロファイリング拡張
これを読んでdePCサンプルの書き方 - ベースのプロファイリング拡張
オプション
ARMv8実装への拡張。
章H8 外部デバッグレジスタについて
いくつかの追加情報についてはこれを読んでくださいORMA 外部デバッグレジスタについてション。
章H9 外部デバッグレジスタの説明
各外部の説明についてはこれを読んでください デバッグレジスタ
パートI、メモリマップComponentARMv8アーキテクチャの
パートIは、メモリマップコンポーネントについて説明していますアーキテクチャのts。続き次の章を助けますrs:
第I1章要件メモマップコンポーネントのイベント
の説明についてはこれを読んでください 内のメモリマップされたコンポーネントのいくつかの一般的な要件
ARMv8アーキテクチャに準拠したシステム。
第2章システムレベルの実装ジェネリックTの説明イマー
システムレバーの定義のためにこれを読んでくださいGeneric Tの実装イマー
第3章パフォーマンスに対する推奨外部インタフェースモニター
推奨されるメモリマップとexternについての説明はこれを読んでくださいすべてのデバッグインタフェース
パフォーマンスモニタ
第I4章活動モニターへの推奨外部インターフェース
thの説明についてはこれを読んでください推奨メモリマップ アクティビティモニタへのインタフェースs。
第5章外部システム制御レジスタの説明
それぞれの説明についてはこれを読んでください メモリマップドシステム制御レジスタ
プレハブe
このマニュアルを使う
xxii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
パートJ、建築用疑似コード
パートJには、ARMアーキテクチャのさまざまな機能を説明する擬似コードが含まれていますそれは以下を含みます
章:
第J1章ARMv8疑似コード
ARMv8アーキテクチャのさまざまな機能を説明する擬似コード定義については、こちらをお読みください
AArch64状態およびAArch32状態での動作用
パートK、付録
このマニュアルには、次の付録が含まれています
付録K1 建築上の制約sのUNPREDICT上ABLEの動作
アーキテクチャ上の要件については、こちらを読んでください。UNPREDICTABLに対する赤い制約E 行動
予測不可能なAArch32動作を含む、ARMv8アーキテクチャでの問題 前に
thのバージョン電子建築家ウレ。
付録K2 推奨される外部デバッグインタフェース
推奨される外部dの説明については、これを読んでください。ebugインターフェース
注意
この説明はARM arch itecture specificationの一部ではありませんそれ としてここに含まれています
補足情報 これを必要とするかもしれない開発者やユーザーの便宜のために
情報。
付録K3 パフォーマンスモニタの推奨事項rsイベント IMPLEMENTの番号ATION
定義済みイベント
ARM の使用に関するARMの推奨事項については、これを読んでください。
実装DE FINED
イベント番号
注意
この説明はARM arch itecture specificationの一部ではありませんそれ としてここに含まれています
補足情報 これを必要とするかもしれない開発者やユーザーの便宜のために
情報。
付録K4のメモリ属性を報告するための推奨事項相互接続
ARMに関する推奨事項については、これを読んでください。 アーキテクチャーメモリーの属性は
インターコネクトについて報告しました。
付録K5 Generic Tiの実装に関する追加情報マー
これを読んでadditについてのイオン情報 の実装 ARMジェネリックTイマーThです
情報はGeneric Timerの arch 反復定義の一部を構成しません
付録K6 レガシ命令 AArch32命令Seの構文ts
UAL以前の構文については、これを読んでAArch32 instructiのどのまだすることができ、セットの
A32命令セットに対して有効です。
付録K7 アドレス変換の例
翻訳テーブル検索の例についてはこちらをお読みください。記載されているtr 管理方式を歌ってください。
第D5章 AArch64 V仮想記憶システムArアーキテクチャ章G5 AArch32 V慣れた
メモリシステムArチャイテクターe
付録K8 OSの例復元シーケンスの保存
実行するソフトウェア例のためにこれを読んでください OSの保存と復元 ARMv8のシーケンス
デバッグの実装
序文
このマニュアルを使う
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xxiii
ID103018 非機密扱い
注意
H6章デバッグのリセットと電源蘇ダウンpport はOSの保存と復元のメカニズムについて説明しています。
付録K9 外部デバッグ用の推奨アップロードおよびダウンロードプロセス
暗黙の実装と使用についての情報はこれを読んでくださいARMアーキテクチャ
注意
この説明はARM archの一部ではありません繰り返し指定カチオン。それはここに含まれていますとして
補足情報 これを必要とするかもしれない開発者やユーザーの便宜のために
情報。
付録K10 ソフトウェア使用例
Armアーキテクチャーのいくつかの側面を理解するのに役立つソフトウェアの例については、これを読んでください
注意
この説明はARM arch itecture specificationの一部ではありませんそれ としてここに含まれています
補足情報 これを必要とするかもしれない開発者やユーザーの便宜のために
情報。
付録K11 バリアリトマスT
ARMv8アーキテクチャで提供されているバリア命令の使用例については、こちらをお読みください
注意
この説明はARM arch itecture specificationの一部ではありませんそれ としてここに含まれています
補足情報 これを必要とするかもしれない開発者やユーザーの便宜のために
情報。
付録K12 ARM擬似コードの定義
AArch32擬似コードの定義についてはこれを読んでください
付録K13 レジスタIndex
AArchのアルファベット順および機能的索引については、これを読んでください。32およびAArch64レジスタ
メモリマップドレジスタ
用語集
この文書で使用されている特別な意味を持つ用語を定義しています。
注意
Tマイクロエレクトロニクス業界で一般的によく理解されている用語は、用語集には含まれていません。
プレハブe
規約
xxiv Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
規約
以下の節ではこの本が使用できる規約について説明します。
T ypographic規則
xxv​​ページの信号
xxv​​ページの「番号
擬似コードの説明ページXXVの
組み立て xxv​​ページの「構文の説明
Tイポグラフィック修道院イオン
表記規則は次のとおりです。
イタリックは、特別なterminolの紹介OGYを 、および引用を示します。
太字 は信号名を表し、 中古 必要に応じて、記述リスト内の用語について
等幅
アセンブラー構文記述に使用されますコード疑似コード、およびソースコードの例。
maでも使用命令ニーモニックのためのおよび他のものへの参照のための本文中現れるms
アセンブラの構文の説明、擬似コード、およびソースコードの例。
SMALL CAPITALS
いくつかの用語の本文で使用されていること スペックific技術的な私を持っているanings、およびで定義されています
用語集
色付きのテキストリンクを示します。これは以下のようになります。
URLなど
http:// infocenter.arm.com
クロスリference、あの税込UDE referencのsのページ番号が、それがオンになっていない場合は情報を編
現在のページ、例えばAssembxxv​​ページの「構文の説明
章、付録、またはへのリンク用語集のエントリまたはセクションへその文書の
色付きの用語を定義します。たとえば、単純順次実行またはSCTLR です。
{and}中括弧{and}には、2つの異なる用途があります。
オプション品
構文の説明では、大括弧はオプション項目を囲みます。では次の例では、彼ら
それを示す
<シフト>
パラメータはオプションです。
ADD <Wd | WSP>、<Wn | WSP>、#<imm> {、<shift>}
同様にそれらは一般化して私達にすることができますたとえば、dフィールドの説明
TCR_ELx 。{I} PSTCR_ELx レジストリのフィールドを参照します。IPSと呼ばれるrs
PS。
アイテムのセット
ブレースを使用することができます セットを囲みます。Fまたは例:HCR_EL2 。{E2H、TGE}は集合を参照します
HCR_EL2 .E2HとHCR_EL2 .TGEの2つのレジスタフィールド
ノートノートフォーマあります とした:
注意
これはメモです。
このマニュアルでは、メモは追加情報を提供する目的でのみ使用されています。理解を助ける
テキストの メモは繰り返すかもしれませんが建築情報の他の場所にある情報 マニュアル、
アーキテクチャの定義の一部を提供していないことに注意してください。
序文
規約
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xxv
ID103018 非機密扱い
シグナル
一般に、この仕様はそうではありません。ハードウェア信号を定義しますが、それは私に信号の例と
推奨事項 信号の規則は次のとおりです。
信号レベルアサートされた信号のレベルは、信号がアクティブHIGHか、それともアクティブHIGHによって異なります。
アクティブLOW主張された意味s:
アクティブHIGH信号の場合はHIGH。
アクティブLOW信号の場合はLOW。
小文字n 信号名の先頭または末尾に、アクティブLOWの信号があることを示します。
番号
数字は通常書かれている10 進数で 10 2進数の前には
0b
、および16進数
0x
どちらの場合も、プレ修正と関連する値は
等幅
元フォント十分な
0xFFFF0000
T改善する
読みやすさ長い数字は、4文字ごとにアンダースコアの区切り文字を付けて書くことできます。例えば、
0xFFFF_0000_0000_0000
数値の値を解釈するときにアンダースコアを無視します
疑似コードの説明破裂
このマニュアルはpseudocの形の使用デ正確に提供するために、ODEをspecifのscriptions IED楽しいですカチオン性この
擬似コードはで書かれています
等幅
フォント、およびApで説明されていますK12 ARM疑似コード定義イットオン
アセンブラシンセ斧の説明
このマニュアルには、アセンブラ命令およびアセンブラのコンポーネントについての多数の構文説明が含まれています。
説明書 これらは
等幅
フォントを conve で説明ntions SA64のトゥルーリング
アセンブラ言語(C1-ページ)151 付録K12ARM擬似コード定義、および擬似コード演算子
キーワードds(K12-5648)
プレハブe
追加の読み物
xxv​​i Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
追加の読み物
このセクションには、ARMおよび第三者の関連出版物がリストされています。
インフォセンターを見るr
http:// infocenter.arm.com
、ARMドキュメントへのアクセス用n。
ARM発行ns
ARM
®
AMBA
®
4 ATBプロトコル仕様書、ATBv1.0とATBv1.1 、(ARM IHI 0032B)。
ARM
®
Ar建築 参考Manual 、ARMv7-AおよびARMv7-Rエディション(ARM DDI 0406)。
ARM
®
Ar建築 参考MARMv8-R AArch32 arの年鑑サプリメント、ARMv 8チャイテクターe prオフィル
(ARM DDI 0568)。
ARM
®
デバッグインタフェースArチャイテクターe仕様、ADIv6.0 (ARM IHI 0074)。
ARM
®
デバッグインタフェースArチットエクターe仕様、ADIv5.0からADIv5.2 (ARM IHI 0031)。
ARM
®
埋め込みTrace MacrオセルArチテックTure Spe引用、ETMv4 (ARM IHI 0064)。
ARM
®
汎用割り込み制御古いArch イテクタe仕様、GIC arチャイテクターeはVEのrsion 3.0とバージョン4.0
(ARM IHI 0069)。
ARM
®
コルeSight
SoC T技術的な指示マニュアル (ARM DDI 0480)。
ARM
®
コルeSight
Arチテックターe詳細カチオン(ARM IHI 0029)。
ARM
®
Pr手首e Sに電話するタンダルARM 64ビットArの場合はdチャイテクターe (ARM IHI 0055)
ARM
®
信頼性、Availabi lityARMv8-A向け Serviceability(RAS )仕様、ARMv8チャイテクターe
広報ofile (ARM DDI 0587)
ARM
®
Ar建築 参考Manual Supplement、スケーラブルVARMv8-A用のectorエクステンション(SVE)
(ARM DDI 0584)。
ARM
®
Ar建築 参考M解説、補足システムリソースの分割と監視
(MPArmv8-A(ARM DDI 0598)用。
その他の広報イオン
このマニュアルでは、次の出版物を参照しているか、詳細情報を提供しています。
Advanced Encryption Sの発表 タンダルd(AES)連邦情報処理標準
出版物197、2001年11月。
IEEE Std 754-2008、IEEE StFloのandardating-point Arithmetic 、2008年8月。
IEEE Std 754-1985、IEEE StFloのandardating-point Arithmetic 、1985年3月。
証券 eハッシュSタンダルd(SHA)、連邦情報処理S2002年8月のPublication 180-2を標準としています。
Galois / Counter動作モード、McGraw 、D。iega、J.、NIへの提出ST動作モード
プロセス、2004年1月
FOメモリ一貫性モデルRシャー edメモリ - マルチチップocessors 、Gharachorloo、Kourosh、1995、Sタンフォード
大学TテクニカルレポートCSL-TR-95-685
S タンダルdメーカーあー's識別コード、JEP106 、JEDEC Solid SテートT技術協会。
SM3暗号ハッシュアルゴリズム 中国インターネットネットワーク情報センター(CNNIC)。
SM4ブロック暗号アルゴリズム 、中国インターネットネットワーク形成センター(CNNIC)。
QARMAブロック暗号ファミリ、Roberto A vanzi、クアルコム製品セキュリティイニシアチブ。
序文
追加の読み物
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。xxv​​ii
ID103018 非機密扱い
Aから入手可能
https://eprint.iacr.org/2016/444
プレハブe
フィードバック
xxv​​iii Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
フィードバック
ARMはドキュメンテーションに関するフィードバックをお待ちしています。
tに関するフィードバック彼のマニュアル
にコメントがある場合 contenのこのMのTanual、にメールを送る
errata@arm.com
与える:
タイトルe。
番号、ARM DDI 0487D.a。
あなたのコメントが当てはまるページ番号
あなたのコメントの簡潔な説明。
ARM はまた追加や改善のための一般的な提案を歓迎します。
パートA
ARMv8アーキテクチャの概要と概要
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-31
ID103018 非機密扱い
第A1章
ARMv8アーキテクチャの紹介
この章で紹介するARMアーキテクトです。それは含まれています次のセクション
ARM arについて チャイテクターA1-32ページの e
Ar チャイテクターe prA1-34 ページの「ofiles」
ARMv8 ar A1-36 ページの「 chitetructureの概念
A1-39 ページでサポートされているデータ型
高度なSIMDと浮動小数点のサポート A1-49ページの「 port」を参照してください
ARMメモリモデル(A1-55ページ)
ARMv8 ar チャイテクターeエクステンション(A1-56ページ)
A1 ARMv8アーキテクチャの紹介
A1.1 ARMアーキテクチャについて
A1-32 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
A1.1 ARMアーキテクチャについて
このアーキテクチャリファレンスマニュアルで説明されているARMアーキテクチャ、抽象化の動作を定義しています。ct機、
prと呼ばれる過剰な要素。多くの場合、PEと省略されます。準拠した実装 ARMアーキテクトとの共同作業ウレ
処理要素の記述された動作準拠しなければならないそれは構築する方法を説明することを意図していません
PEの実装も そのような実装者の範囲を制限する定義された動作を超えた
建築家以外の場所別の方法で指定するプログラマーある実装の目に見える振る舞い
に準拠 ARMアーキテクチャは上のプログラムの単純な順次実行と同じ
処理エレメント このプログラムER- 目に見える行動は目含まれていないプログラムの電子実行時間。
ARMアーキテクチャリファレンスマニュアルにも、使用するソフトウェアの規則が記載されています。処理エレメント
ARMアーキテクチャには、以下の定義が含まれています。
仲間関連デバッグアーキテクチャe:
- チャプテ r D2 AArch64セルフホストデバッグ
- チャプテ r G2 AArch32セルフホストデバッグ
- このマニュアルのH部6409ページの「外部デバッグ
関連付けられているアーキテクチャのトレース PE Tを定義するレースユニット 実装者は影響を与えることができますと貸します
関連付けられたプロセッサ再。詳しくは、以下を参照してください。
- 組込みT race MacrオセルArチャイテクターe指定瞑想。
- チャプテ r D3 AArch64セルフホストTrエース
- チャプテ r G3 AArch32セルフホストTrエース
注意
PEトレースユニットは、traceマクロセルiと命名することができる。n その他の資料
ARMアーキテクチャは縮小版ですct ion Set Computer (RISC)アーキテクチャー次のRIで括りますSC
アーキテクチャfeatures:
LARge uniformレジスタファイル
•A 荷役電子アーキテクチャデータ処理操作直接操作ではなく、レジスタの内容のみを操作します。
メモリの内容
単純なアドレッシングモード。すべての広告/店舗アドレスがあちこちに決定されます。m レジスタ内容tsと指導
フィールドのみ
このアーキテクチャは、PEとメモリの相互作用を定義します(キャッシュを含む)esメモリの翻訳
システム。また、マルチファイルPEがどのようにEAと対話するかについても説明します。chの他の他のオブザーバーとNDシステム。
この文書は ARMv8-AアーキテクチャprオイレArを参照チャイテクターe prファイルページA1-34の多くのため
情報。
ARMアーキテクチャは、さまざまなパフォーマンスポイントにわたる実装オプションをサポートしています。ts。実装サイズ
性能、そして非常に低い消費電力 キー属性ですARMアーキテクチャの
重要な恐怖ARMv8の機能 アーキテクチャは後方coです互換性 と組み合わせ 最適の自由
幅広い標準およびより特殊なユースケースでの実装ARM v8アーキテクチャは以下をサポートします。
64ビット実行状態、AArch64。
32ビット実行ステートAArch32。前のバージョンと互換性がありますARMアーキテクチャ
注意
AArch32実行状態は以下と互換性があります。EのARMv7-ARアーキテクチャのプロファイルを作成し、それを強化する
AArch64実行状態に含まれるいくつかの機能をサポートするためのプロファイル
A1はじめにARMv8アーキテクチャ
A1.1 ARMアーキテクチャについて
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-33
ID103018 非機密扱い
このドキュメントではARMv8-Aアーキテクチャプロファイルについてのみ説明していますのために要求される害のために
ARMv7-AおよびARMv7-R architeのCTプロファイルを参照してください。 ARM
®
Ar建築参照番号ceマニュアル、ARMv7-Aと
ARMv7-Rエディション
最適な機能ional このように明示的に定義されています マニュアル。
注意
特徴のためのIDレジスタフィールドの存在は、そうではありません。機能がオプションであることを意味します。
両方の実行状態がSIMD とfloをサポートating-pointの指示
AArch32状態は次のものを提供します。
- 基本インストルメント内のSIMDインストラクション32ビット汎用レジスタを操作するオプションセット
- アドバンストSIMD命令は、SIMD 内のレジスタと浮動小数点数r を操作します。エギスター
(SIMD&FPレジスタ)ファイル
- SIMD&FPレジスタファイルレジスタを操作する 浮動小数点命令
AArch64状態が用意されています。
- SIMD&FPレジスタファイル内のレジスタ を操作する高度なSIMD命令
- SIMD&FPレジスタファイルレジスタを操作する 浮動小数点命令
注意
参照表記ページXXIVのために このマニュアルで使用されている規則に関する情報 SMの使用を含むすべて
ARM仕様を持つ特定の用語の大文字で定義されているificの意味 用語集
A1 ARMv8アーキテクチャの紹介
A1.2アーキテクチャプロファイル
A1-34 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
A1.2 アーキテクチャプロファイル
ARMアーキテクチャは大幅に進化しましたそれ以来、ARMはそれを開発し続けています。8
アーキテクチャのメジャーバージョンはこれまでに定義されています。病棟番号1から8。 これら、
最初の3つのバージョンは現在廃止されています。
一般名AArch64とAArch32 は、64ビットと32ビットの実行状態を表します。
AArch64 64ビット実行状態です。つまり、アドレスは64ビットレジスタに保持されます。 の指示
基本命令セットは、その処理に 64ビットレジスタを使用できますAArch64状態はA64
指図書。
AArch32 32ビット実行状態です。つまり、アドレスは32ビットレジスタに保持されます。 の指示
基本命令セットは、その処理に 32ビットレジスタを使用します。AArch32状態サポートT32や
A32命令セット
注意
基本命令セットはサポートされているインストを含むructionsを アドバンストSIMDと浮動小数点以外
説明書
セクションを参照 詳細について A1-36ページの「実行状態およびA1-37ページの「ARMv8命令セット」を参照してください。
ARMでは、3つのアーチ反復プロファイルを定義しています。
説明されているアプリケーションプロファイル このマニュアル
V をサポート仮想記憶システムArチテックチューレメモリ管理に基づく(VMSA)
単位(MMU)
注意
ARMv8-A実装はAArchv8-A実装と呼ぶことができます
A64、A32をサポートT32命令セット。
R リアルタイムプロファイル:
Pr をサポート保護メモリシステムArチテックター基づく e (PMSA)メモリーProtection
ユニット(MPU)
A32およびT32命令セットをサポートします。
M マイクロコントローラプロファイル:
低レイテンシ割り込み処理用に設計され たプログラマモードlを実装します
レジスタのハードウェアスタッキングおよび高レベルでの割り込みハンドラの書き込みのサポート
言語
RプロファイルPMSAの変種を実装します。
T32の変種をサポート指図書。
注意
このアーキテクチャリファレンスマニュアルal はARMv8-Aプロファイルのみを説明しています。
RおよびM アーキテクチャプロファイル、および以前のARMアーキテクチャバージョンについては、以下を参照してください。
ARM
®
Arチャイテクター電子レフェリンARMマニュアルの補足マニュアル、ARMv8、ARMv8-R AArc用h32アーキテクターe
広報ofile。
ARM
®
Arチャイテクター電子レフェリンceマニュアル、ARMv7-AおよびARMv7-R版
ARM
®
v8-M Arチャイテクターe参照マニュアル
ARM
®
v7-M Arチャイテクターe参照マニュアル
ARM
®
v6-M Arチャイテクターe参照マニュアル
A1はじめにARMv8アーキテクチャ
A1.2アーキテクチャプロファイル
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-35
ID103018 非機密扱い
A1.2.1 デバッグアーキテクチャ講義版
ARMデバッグアーキテクチャはアーキテクチャと完全に統合されており、個別のバージョン番号はありません。
A1 ARMv8アーキテクチャの紹介
A1.3 ARMv8アーキテクチャの概念
A1-36 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
A1.3 ARMv8アーキテクチャコンセプト
ARMv8は、ARMアーキテクチャに大きな変更を導入し、高ルの維持しながら、一貫性のVELとを
アーキテクチャの以前のバージョンアームv8アーキテクチャリファレンスeマニュアルには、大幅な変更が含まれています。
アーキテクチャーを説明するために使用される用語このセクションでは、ARMv8 archの反復的な概念について説明します。
そして関連したterminolオジー
以下のサブセクションでは、主要なARMv8アーキテクチャの概念について説明します。セクションは対応を紹介しますg
desに使用される用語アーキテクチャを犯す:
実行状態
ARMv8命令セット(A1-37ページ)
システムr A1-37 ページの egisters
ARMv8デバッグ(A1-39ページ)
A1.3.1 実行状態
実行状態はPEの実行を定義します以下を含む環境
サポートされるレジスタ
サポートされている命令セット。
•の 重要な側面:
- 例外モデル。
- V 仮想メモリシステムアーキテクターe (VMSA)
- プログラマーズモデル。
実行状態は次のとおりです。
AArch64 64ビット実行状態。この実行状態:
31個の64ビット汎用レジスタを提供します プロシージャリンクとして使用されているX30
登録
64ビットPRを提供プログラムカウンタ(PC)、スタックポインタ(SP)、および例外リンク(r)エジスター
(ELR)
SIMDは、VEのために32の128ビットレジスタを提供しますctorとスカラの浮動小数点サポート。
単一の命令セットを提供しますA64 詳細については、ARMv8命令セットを参照してください
A1-37ページを参照してください
upを使用してARMv8例外モデルを定義します。4つの例外レベル、EL0 - EL3まで
執行を提供するn特権階層Exceを参照D1-2146 ページのオプションレベル
64ビット仮想アドレスをサポートします試聴多くのための を含む情報 の限界
アドレス範囲、see 章D5 The AArch64 V仮想記憶システムArチャイテクターe
Prの 数を定義超過状態PSTATE 統計情報を保持する要素e。A64
命令セットには、さまざまなPSTで直接動作する命令含まれていますATE 要素です。
各Sysに名前を付けるテムレジスタUSI最低の免除レベル示す接尾辞
レジスタにアクセスできるd。
AArch32 32ビット実行状態。この実行状態:
13個の32ビット汎用pを提供再urpose gisters、および32ビットのPC、SP、そしてrリンクレジスター(LR)。
LRは、ELRとELRの両方として使用されます。手続きリンクレジスタ
これらのレジスタの中には、異なるPE モードで使用するための複数のバンクされたインスタンスを持つものがあります
Hypモードからのリターンを除いて 、単一のELRを提供します。
Advanced SI MDベクタおよびスカラ浮動小数点用に32個の64ビットレジスタを提供サポート。
A32とT32の 2つの命令セットを提供します詳細については、ARMv8を参照してください
命令は、設定ページA1-37に
PEモード基づく ARMv7-A 除外モデルをサポートし、これを
ARMv8例外model、それは例外レベルに基づいています。
32ビット仮想アドレス指定をサポートします。
A1はじめにARMv8アーキテクチャ
A1.3 ARMv8アーキテクチャの概念
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-37
ID103018 非機密扱い
Prの 数を定義超過状態PST)ATE )PEの状態を保持する要素。A32とT32
命令セット さまざまなPSTを直接操作する命令ATEの要素
アクセスする命令 PSTAアプリケーションPrを使用した TEプログラムステータスレジスタ(APSR)
またはCurrent Prグラムステータスレジスタ (CPSR)
後のサブセクションでは、差分についてより多くの情報が得られます。実行状態の性格が低い。
TAArch64間の制御ransferring ND AArch32実行状態がとして知られているinterprocessing PEはできます
例外レベルの変更時にのみ実行状態間を移動し、で与えられた規則に従う
Interprオーセssing ページに D1-2263 これは、以下のような異なるソフトウェア層を意味します。アプリケーション、オペレーティングシステム
カーネルとハイパーバイザー、difで実行例外的なレベルでは、diで実行できます。架空の実行状態。
A1.3.2 ARMv8命令セット
ARMv8では、可能な命令セット実行状態
AArch64 AArch64状態は、A 64と呼ばれる単一の命令セットのみをサポートします。これは固定長のd命令です。
32ビット命令エンコードを使用するセット。
A6 4についての情報命令セット、チャップを参照ter C3 A64命令セット概要
AArch32 AArch32状態は、次の命令セットをサポートします。
A32 これは固定長instです ruction set th atは32ビットを使用する構造体エンコーディング。
T32 16ビットと32ビットの両方の命令を使用する可変長命令セットです。
エンコーディング
以前のドキュメントでは、これらの命令セットはcallされていました。目編 EのARM命令セットとThumb命令セット。
ARMv8は番目の各延びにESEを構造セット AArch32状態では、命令セット状態によって次のことが決まります。
命令セット PEが実行されます。
A32 およびT32の命令セットについては、第F1章AArを参照してください。ch32命令セット
概要
ARMv8命令セットは、SIMD およびスカラ浮動小数点命令をサポートしています。参照アドバンストSIMDと
A1-49ページの浮動小数点サポート
A1.3.3 システムレジスタ
システムレジスタは、建築家の情報を管理し、統制します。edの機能。
システムレジスタは、標準の命名フォーマット<register_name >。<bit_field_name>を使用して特定のレジスタ識別します。
レジスタおよび制御ビットとステータスビットレジスタを細くする
ビットはまたdescrである場合もありますそれらの数値poによる形式でシチュエーション < register_name> [x:y]または一般形式
bits [x:y]
また、AArch64ではstただし、ほとんどのレジスタ名には、次のようにレジスタにアクセスできる最低の例外レベルthが含まれています。
レジスタ名の接尾辞
<register_name> _ELx(xは0、1、2、または3)
例外レベルについてはD1-2146ページの例外レベル」を参照してください
システムレジスタは、
以下のレジスタこのマニュアルで説明されています:
- 将軍システム制御レジスタ。
- デバッグレジスタ
- ジェネリックTアイマー登録ers。
- オプションで、パフォーマンceモニタレジスタ。
- オプションで、Activityレジスタを監視します。
A1 ARMv8アーキテクチャの紹介
A1.3 ARMv8アーキテクチャの概念
A1-38 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
オプションで以下のレジスタグループの 1つ以上atは他のARM arで定義されています建築
仕様:
- TEmbedded Tで定義されている raceシステムレジスタrace MacrオセルArチャイテクターeの仕様
ETMv4
- スケーラブルVARMで定義されているように、 ectorはシステムレジスタを拡張します。
®
アーキテクチャリファレンスマニュアル
補足、スケーラブルVエクターARMv8-A用の拡張(SVE)。
- tisticalプロファイリング拡張SYST EM R定義されたegistersARM
®
Arチャイテクターe参照
マニュアル補足、S統計プロファイリング拡張、ARMv8-Aの場合
- 汎用割り込み制御 古い(GIC)システムレジスタ、 『ARM汎用割り込み制御』を参照古い
システム・レジスタ
RAS Extension Systemの登録機関、定義通りARM
®
信頼性、A利用可能性、および保守容易性(RAS)
ARMv8-A arの仕様、ARMv8チャイテクターe prオイレRAS拡張は必須の拡張です
ARMv8.2アーキテクチャへの変更、およびARM v8.0およびARMv8.1アーキテクチャへのオプションの拡張es。
AAr ch64システムレジスタについては、章D12 AArを参照してください。ch64システムレジスタの説明
AAr ch32システムレジスタについては、章G8 AArを参照してください。ch32システムレジスターの説明
ARM汎用割り込み コントローラシステムレジスタ
ARM Generic In Terrupt Controllerアーキテクチャーのバージョン3からGICv3、GICアーキテクチャ固有しょ
システムレジスタインターを定義します。その機能のいくつかに直面するtyシストこのマニュアルのemレジスタの概要
thesを含めるeレジスタ、参照
GICシステムについて D1ページの egisters1-2671 、詳細についてはAArch64 GICシステムについてn
登録s。
GICシステムについて AArch32 GICシステムの詳細については、G7-5624ページの egisters を参照してください。
登録s。
これらのセクションでは、GICシステムレジスタの概要のみを示します。FOが、より多くの情報をrの説明など
レジストリのrs、ARMを参照
®
汎用割り込み制御古いArチャイテクターe仕様、GICアーキテクターEバージョン3.0
およびバージョン4.0 (ARM IHI 0069)。
注意
GICアーキテクチャの初期バージョンのプログラマモデルは、完全にメモリマップされています。
A1.3.4 ARMv8のデバッグ
ARMv8は以下をサポートしています。
セルフホストデバッグ
このモデルでは、e PEが生成する デバッグ例外デバッグ例外はARMv8の一部です
例外モデル
外部ドバグ
このモデルでは、デバッグイベントによってPEがデバッグ状態になります。 デバッグ状態、PEは制御されています
外部デバッガによる
すべてのARMv8実装は、両方のモデルをサポートしています。特定のユーザが選択するモデルはデバッグによって異なります
dif中の要件デザインの様々な段階 devel opmentのライフサイク製品のファイル 厳しいもみじ、外部
ハードウェア実装およびOSのデバッグ中にdebugが使用されることがあります。起動、およびセルフホストデバッグ
アプリケーション開発中に使用される可能性があります。
セルフホストdebの詳細についてはug:
AArch64状態の場合は、第D2章を参照してください。AArch64セルフホストデバッグ
AArch32状態の場合は、章G2 AArを参照してください。ch32セルフホストデバッグ
外部デバッグの詳細については、6409ページのパートH「外部デバッグ」を参照してください
A1はじめにARMv8アーキテクチャ
A1.4サポートしているデータ型
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-39
ID103018 非機密扱い
A1.4 対応データ
ARMv8アーキテクチャは、以下の整数データ型をサポートしています。
バイト8ビット
ハーフワード16ビット
r 32ビット
ダブルワード64ビット
クワッドワード128ビット
このアーキテクチャは、次の浮動小数点データ型もサポートしています。
半精度、Haを参照lf-pr詳細は、 A1-43ページの ecision浮動小数点フォーマットを参照してください。
単精度。Single-prを参照してください。ecision浮動小数点 フォーマットページA1-45の詳細については。
倍精度、参照ダブルPRをecision浮動小数点フォーマット詳細は A1-46ページを参照してください。
それはまた支えます:
単語とダブルワードの固定小数点解釈。A1-47ページの固定小数点フォーマット」を参照してください
Vアクター、ここで レジスタは複数のeを保持します各要素の私のデータ型。見るVエクター形式
詳細は A1-40ページをご覧ください。
ARMv8アーキテクチャは2つのレジスタファイルを提供しますes:
汎用レジスタファイル。
SIMD&FPレジスタファイル。
これらのそれぞれにおいて、可能な登録は幅は実行状態によって異なります。
AArch64状態の場合:
汎用レジスタファイルには64 ビットレジスタが含まれています
- 多くの命令は、64ビットレジスタまたは32ビットレジスタとしてこれらのレジスタにアクセスできます。
ボトム32バイts。
SIMDおよびFPレジスタファイルには128ビットレジスタが含まれています
- クォドワード整数データ タイプはSIMD&FPレジスタファイルにのみ適用されます。
- 浮動小数点データ型は以下にのみ適用されます。SIMD&FPレジスterファイル
- AArch64ベクタレジスタは128ビットベクタをサポートしますが、有効ベクタ長は次のようになります。64ビット
A64 命令encに応じて、または128ビットコーディングの使い方は、命令ニーモニック参照
ページC1-153
もっと詳しくのレジスタファイルに AArch64状態、を参照 AArch64実行のレジスタ状態オン
B1 - 81ページ
AArch32状態では:
汎用レジスタファイルには、32 ビットレジスタが含まれています
- T32ビットレジスタ ダブルワードをサポートします。
- Vエクタフォーマットがサポートされています。図A1-4(A1-43ページ)を参照してください。
SIMDおよびFPレジスタファイルには64ビットレジスタが含まれています。
- AArch32状態は、teger データ型または浮動小数点データ型の quadwordをサポートしません
注意
T2つの連続した64ビットレジスタを128ビットレジスタとして使用できます
もっと詳しくのレジスタファイルに AArch32状態、を参照 汎用のrエジスターとPC
AArE1-3533 ページの ch32の状態
A1 ARMv8アーキテクチャの紹介
A1.4サポートしているデータ型
A1-40 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
A1.4.1 Vエクタフォーマット
インプリメンタでSIMDを含むSIMD&FPレジスタファイルを操作する命令、レジスタ缶
1つ以上のパックされた要素を保持するすべてのサイズとタイプが同じです。レジスタとデータ型の組み合わせ
vectについて説明しますまたは要素の。T彼のベクトルは と考えられる 指定されたデータ型の要素の配列である
命令。の要素数 ベクトルは陰であるデータ要素のサイズで決まるの大きさや大きさ
登録
V指数は0の範囲にありますto(要素数 - 1)のインデックス0は最下位を意味しますの終わり
ベクター
VAArch64 stのectorフォーマット食べた
AArch64状態では、SIMDとFPのレジスタを参照できます。VのようなN nは0から31までの値です。
SIMD&FPレジスタは、ロード、ストア、およびデータ処理操作用に3つのデータフォーマットをサポートしています
シングルe、スカラーエレムLeaに夢中レジスタの t有効ビット
byte、ha lfword、またはword要素の64ビットベクトル
バイト、ハーフワード、ワード、またはダブルワード要素の128ビットベクトル
要素サイズsはTで定義されています有能なA1-1 FOベクターでRMATのDESCのようribed。
128ビットベクトルの場合:Vn {.2D、.4S、.8H、.16B}。
64ビットベクトルの場合:Vn {.1D、.2S、.4H、.8B}。
図A1-A1-41ページの1にAArch64状態のSIMDベクタを示します。
TabルA1-1 SIMD eleの意味 AArch64状態
ニーモニック サイズ
B
8ビット
H
16ビット
S
32ビット
D
64ビット
A1はじめにARMv8アーキテクチャ
A1.4サポートしているデータ型
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-41
ID103018 非機密扱い
図A1-AArchの1 SIMDベクトル64州
VAArch32 stのectorフォーマット食べた
T有能なA1-2 利用可能なフォーマットs。命令の説明はdatを指定します命令が持つ型
サポートしています。
多項式算術ic over {A1-48ページの「0、1 } は、多項式データ型を説明しています
.F16
データ型はhalf-prですECI によって選択されたSiONデータ型FPSCR .AHPビットは、参照ハーフ精度を 浮動小数点
A1-43ページのフォーマット
.F32
データ型はARM標準単精度浮動小数点数です。小数点データ型です -prを参照してください。脱皮
A1-45 ページの浮動小数点フォーマット
127 0
Vn
.S .S .S .S
[3] [2] [1] [0]
・H ・H ・H ・H ・H ・H ・H ・H
[7] [6] [5] [4] [3] [2] [1] [0]
063
Vn
.S .S
[1] [0]
.H .H .H .H
[3] [2] [1] [0]
32ビット要素の128ビットベクトル(.4S)
16ビット要素の128ビットベクトル(.8H)
32ビット要素の64ビットベクトル(.2S)
16ビット要素の64ビットベクトル(.4H)
64 6396 95 32 31 16 1548 4780 79112 111
32 31 16 1548 47
.D .D64ビット要素の128ビットベクトル(.2D)
[0][1]
B B B B B B B B
[14] [12] [10] [8] [6] [4] [2] [0]
8ビット要素の128ビットベクトル(.16B) .B
[15] [13] [11] [9] [7] [5] [3] [1]
.B .B .B .B .B .B .B
.B .B .B .B
[7] [5] [3] [1]
8ビット要素の64ビットベクトル(.8B) .B .B .B .B
[6] [4] [2] [0]
T有能なA1-2 AArch32 stのアドバンストSIMDデータ型食べた
データ型指定子 Me怒り
<サイズ>
の任意の要素
<サイズ>
ビット
.F <サイズ>
浮動小数点数
<サイズ>
ビット
.I <サイズ>
符号付きまたは符号なし の整数
<サイズ>
ビット
.P <サイズ>
{0、1}の多項式 以下の程度
<サイズ>
.S <サイズ>
の符号付き整数
<サイズ>
ビット
.U <サイズ>
の符号なし整数
<サイズ>
ビット
A1 ARMv8アーキテクチャの紹介
A1.4サポートしているデータ型
A1-42 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
命令定義は、操作に適したデータ型を定義するためのデータ型指定子を使用します図A1-2
Advanced SIMDデータ型の階層を示します。
図A1-2 AArch32状態のAdvanced SIMDデータ型階層
例えば、乗算命令はトゥイーンを区別しなければなりません整数および浮動小数点データ型
倍幅(long)の結果生成する整数乗算命令は、入力データ型を次のように指定します。
符号付きまたは符号なし しかしながら、いくつかのteger mu命令はモジュロ算術演算を使うのでndはそうではありません。
符号付き入力と符号なし入力を区別します。
P. A1-43図A1-3 は、AArch32状態のAdvanced SIMDベクタを示しています。
注意
AArch32状態では、偶数と後続の奇数のペア numbe 赤色ダブルレジスタとすることができる連結し、治療します
単一のクワッドワードレジスタとして
†出力フォーマットのみVMULL命令の説明を参照してください
.64
.32
.16
.8
.I8
.S64
.U64
.I64
.F32
-
-
.S8
.U8
.P8
-
.I16
.S16
.U16
.P16†
.F16
.I32
.S32
.U32
.P64‡
•Cyptographic Extensionが実装されている場合にのみ利用可能です。
VMULL 命令の説明を参照してください
A1はじめにARMv8アーキテクチャ
A1.4サポートしているデータ型
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-43
ID103018 非機密扱い
図A1-3アドバンストSIMDベクトル AArch32状態で
AArch32汎用レジスタサポートベクタ形式SIMDがBaseの構造体で使用するためのats
指図書。図A1-4これらのフォーマットを示します。つまり、一般目的の登記簿はどちらかとして扱うことできます。
2ハーフワードまたは4バイト
図A1-4 VAArch32状態のectorフォーマット
A1.4.2 半精度フロアティンポイント形式
ARMv8は、2つの半精度浮動小数点フォーマットをサポートしています。
IEEE半精度、descriなどIEEE 754-2008規格のベッド。
•ARM オルタナティブハーフecision フォーマット
どちらの形式もとへの変換に使用できます。他の浮動小数点フォーマットから。FPCR .AHPはフォーマットを制御します
AArch64状態およびFPSCR .AHPは、AArch32 状態のatを制御します。ARMv8.2-FP16 は半精度を追加
常にデータ処理命令、使用IEEEフォーマット これらのインTructi onsは関連の価値を無視します
AHPフィールド、そしてそれがまるでそれのように振る舞う 持ってEffectivは、eの値は0です。
127 0
Qn
.32 .32 .32 .32
[3] [2] [1] [0]
.16 .16 .16 .16 .16 .16 .16 .16
[7] [6] [5] [4] [3] [2] [1] [0]
063
Dn
.32 .32
[1] [0]
.16 .16 .16 .16
[3] [2] [1] [0]
単精度の128ビットベクトル
(32ビット)要素
16ビット要素の128ビットベクトル
32ビット要素の64ビットベクトル
16ビット要素の64ビットベクトル
64 6396 95 32 31 16 1548 4780 79112 111
32 31 16 1548 47
.8 .8 .8 .8 .8 .8 .8 .8
[14] [12] [10] [8] [6] [4] [2] [0]
8ビット要素の128ビットベクトル 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8
[15] [13] [11] [9] [7] [5] [3] [1]
.64 .64
[1] [0]
倍精度の128ビットベクトル
(64ビット)要素
.8 .8 .8 .8
[6] [4] [2] [0]
8ビット要素の64ビットベクトル 0.8 0.8 0.8 0.8
[7] [5] [3] [1]
A1 ARMv8アーキテクチャの紹介
A1.4サポートしているデータ型
A1-44 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
IEEE半精度の説明 ARM固有の詳細を含みますtは標準で開いたままにされていて、
はじめにフォーマットとvalそれらが含むことができます。もっと詳しく特に取り扱い上
無限大のNaN、および符号付きのゼロは、IEEE 754規格を参照してください。
どちらの半精度浮動小数点フォーマットでも、レイアウトは16ビットフォーマットは同じです。形式は次のとおりです。
フォーマットの解釈は、指数フィールドの値、ビット[14:10]、およびどの半精度によって異なります。
フォーマットが使用されています。
0 <指数<
0x1F
値は正規化された数値で、次のものと同じです。
( - 1)
S
×2
(指数15)
×(1.分数)
最小の正の正規化数は2です。
–14
または約6.104 10
–5
正の最大正規化数は、(2 - 2)です。
-10
)×2
15年
65504です。
より大きな正規化数は、次の場合に代替形式を使用して表現できます。
指数==
0x1F
指数== 0
値はどちらかzeですroまたは非正規化fに応じ分数ビット:
分数== 0
値は ゼロ あります2つの異なるzエロス:
S == 0のときは +0
S == 1の場合は –0
小数!= 0
値は非正規化数で、次のものと同じです。
( - 1)
S
×2
–14
×(0.分数)
最小の正の非正規化数は2です。
–24
約5.960×10
–8
半精度の非正規化数は、デフォルトではゼロにフラッシュされません。ときARMv8.2-FP16があります
実装されている、FPCRFZ16ビットは、半精度のためにゼロフラッシュモードが有効になっているかどうかを制御します。
データ処理instructi アドオンを。詳細については、Flush-to-zerを参照してください。A1-52ページの o
指数==
0x1F
は、使用されているhalf-p 精度フォーマットによって異なります。
IEEEハーフプレ決断
値はiのいずれかです。小数部のビットに応じて、 nfinityまたは非数(NaN):
分数== 0
値は無限大です2つの違いがあります無限大:
S == 0のとき +無限大Th はalを表しますl正の数 あまりにも
正規化された数として正確に表されるために大きいr
無限大S == 1のとき。これは すべての負の数
reprには大きすぎる絶対値として正確に表明
正規化数
小数!= 0
値はNaですNであり、クワイエットNaN またはシグナリングNaNのいずれかです。
2つのタイプのNaNは、それらの最も重要な部分によって区別されます
ビット、ビット[9]:
bit [9] == 0 NaNはシグナリングNaNです。番目の電子の符号ビットがtaことができ、任意の値をKE
そして残りのfrアクションビットはall以外の任意の値を取ります。
ゼロ。
15 14 10 9 0
S 指数 分数
A1はじめにARMv8アーキテクチャ
A1.4サポートしているデータ型
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-45
ID103018 非機密扱い
bit [9] == 1 The NaN静かなNaNです。符号ビットとREMAイニングフラクション
ビットは任意の値をとることができます。
代替半精度
値は正規化された数値ですberと等しい。
-1
S
×2
16
×(1.分数)
最大p神秘的な正規化d数は(2-2
-10
)×2
16
または131008。
A1.4.3 単精度浮動小数点フォーマット
単精度浮動小数点フォーマット IEEE 754規格で定義されているとおりです。
この説明にはARM-spが含まれます。その詳細な詳細eは標準のままにしておきます。それはただの
フォーマットとそれらが含むことができる価値についての紹介すべての詳細について特に無限大の扱いについて
NaN、および符号付きゼロは、IEEE 754規格を参照してください。
単精度値は、次の形式の32ビットワードです。
フォーマットの解釈は、指数フィールドの、ビット[30:23]によって異なります
0 <指数<
0xFF
値は正規化された数値で、次のものと同じです。
( - 1)
S
×2
(指数 - 127)
×(1.分数)
最小の正の正規化数は2です。
–126
約1.175×10
–38
正の最大正規化数は、(2 - 2)です。
-23
)×2
127
約3.403×10
38
指数== 0
値はeithです小数部ビットに応じて、ゼロまたは非正規化数
分数== 0
値は ゼロ あります2つの異なるzエロス:
+0 Whe n S == 0。
–0 Whe n S == 1。
これらは通常同じ動作をします特にウラル+ 0と–0が等しい場合、結果は等しくなります。
浮動小数点数として比較されます。しかしながら彼らは違いをもたらすntはいくつかの結果になります
状況。たとえば、分割の結果として生成される無限大の符号
ゼロによって、ゼロの符号に依存します。2つのゼロはそれぞれ区別できます。
その他の整数比較を実行することによって二つの単語。
小数!= 0
値は非正規化数で、次のものと同じです。
( - 1)
S
×2
–126
×(0.分数)
最小の正の非正規化数は2です。
–149
約1.401×10
–45
非正規化数は、Advanced SIMD 処理で常にゼロにフラッシュされます。AArch32状態
浮動小数点処理およびA dvanでは、オプションでゼロにフラッシュされます。ced SIMD処理
AArch64状態です。詳しくは、Flush-to-zerを参照してください。A1-52ページの o
指数==
0xFF
値はeithです小数部のビットに応じて無限大または非数(NaN)。
分数== 0
値は無限大には2つの異なる財政:
S == 0のとき +無限大これは 大きすぎる大きすぎるすべての正数をents する
規範として正確に表現個別番号
分数S
31 30 23 22 0
指数
A1 ARMv8アーキテクチャの紹介
A1.4サポートしているデータ型
A1-46 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
無限大S == 1のとき。 これは絶対値ですべての負の数を表します
正規化数として正確に表すには大きすぎる
小数!= 0
値はNaNであり、eitです彼女は静かなNaN シグナリングNaN です。
2種類のNaNはthによって区別されます。最も重要な部分 ビット[22]:
bit [22] == 0
NaNはシグナリングNaNです。符号ビットはny vを取ります。alue、そして
残りの小数ビットは、すべてゼロ以外の値になります。
bit [22] == 1
NaNは静かなNaNです。サインビットと残りビット上の断片化を取ることができる
任意の値
詳細はデフォルトのNaNは、参照NaNで処理し、デフォルトのNaN ページA1-53に
注意
符号や分数の異なるNaNは異なるNaNですが、そうではありません。tはソフトウェアが浮動小数点を使用できることを意味します
それらを区別するための比較命令。ThbはされているIEEE 754標準仕様ecause NaNをifiesは、比較する
未成年者としてデアそれ自体を含むすべてのものに ED
A1.4.4 倍精度浮動小数点フォーマット
倍精度浮動小数点フォーマットは、IEEE 754規格で定義されているとおりです。倍精度浮動小数点
SIMD命令と浮動小数点命令の両方でサポートされています。AAr ch64状態、および浮動小数点命令のみ
AArch32状態です。
この説明はinc実装固有のludesIC詳細アーカンソーeは標準のままにしておきます。それはただの
フォーマットとそれらが含むことができる価値についての紹介すべての詳細について特に無限大の扱いについて
NaN、および符号付きゼロは、IEEE 754規格を参照してください。
倍精度値は、フォーマットが64ビットのダブルワードです。
倍精度値sは数、無限大、d 単精度値と同様の方法でのNaN
指数の値に依存するフォーマットの解釈
0 <指数<
0x7FF
値は正規化された数値で、次のものと同じです。
( - 1)
S
×2
(指数 - 1023)
×(1.分数)
最小の正の正規化数は2です。
-1022
約2.225×10
–308
正の最大正規化数は、(2 - 2)です。
–52
)×2
1023
約1.798×10
308
指数== 0
値はどちらかzeですroまたは非正規化fに応じ分数ビット:
分数== 0
値はゼロですo。2つの違いがありますct zeros that behthと同じように2つ
単精度ゼロ:
S == 0のときは +0
S == 1の場合は –0
小数!= 0
値は非正規化数で、次のものと同じです。
(-1)
S
×2
-1022
×(0.分数)
S
63 62 52 51 32 31 0
指数
A1はじめにARMv8アーキテクチャ
A1.4サポートしているデータ型
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-47
ID103018 非機密扱い
最小の正の非正規化数は2です。
–1074
約4.941×10
–324
オプションで、非正規化数は浮動小数点計算でゼロにフラッシュされます 詳しくは、
フラッシュツーツァーA1-52ページの o
指数==
0x7FF
値はeiです小数部のビットに応じて、無限大またはNaNになります。
分数== 0
値は無限大ですシングルはe-precisイオン、2つのinfiがあります市:
S == 0のとき +無限大
S =のとき無限大 = 1
小数!= 0
値はNaNであり、eitです彼女は静かなNaN シグナリングNaN です。
2つのタイプのNaNは、次の最上位小数ビット(bit [51])によって区別されます。
ダブルワード:
bit [51] == 0
NaNはシグナリングNaNです。符号ビットはny vを取ります。alue、そして
残りの小数ビットは、すべてゼロ以外の値になります。
bit [51] == 1
NaNは静かなNaNです。符号ビットA残りの小数ビットは
任意の値を取ります。
詳細はデフォルトのNaNは、参照NaNで処理し、デフォルトのNaN ページA1-53に
注意
符号や分数の異なるNaNは異なるNaNですが、そうではありません。tはソフトウェアが浮動小数点を使用できることを意味します
それらを区別するための比較命令。ThbはされているIEEE 754標準仕様ecause NaNをifiesは、比較する
未成年者としてデアそれ自体を含むすべてのものに ED
A1.4.5 固定小数点フォーマット
固定小数点形式は、浮動小数点値と固定小数点値の間の変換にのみ使用されます。彼らはに適用されます
汎用レジスタ
固定小数点値は符号付きでも符号なしでもかまいません16ビットまたは32ビットにすることができます。Cのonversion命令は引数を取ります
固定小数点数の小数ビット数を指定しますつまり、その位置を指定します。バイナリ
ポイント。
A1.4.6 floating-p間の変換ointと固定小数点の値
ARMv8は、スカラar浮動小数点から符号付きまたは浮動小数点への変換をサポートしています。aの符号なし固定小数点値
汎用レジスタ
命令の引数※fbits は一般的な目的レジスタはfbitsビットの固定小数点数を保持します。
バイナリpoの後int。ここで、fbitsは64から64の範囲で1から64の範囲です。ビット汎用レジスタ32ビットの場合は1から32、
汎用レジスタ
より具体的ly:
64ビットレジスタXの場合
- 整数部はXです
[63:#fbits]
- 小数部はXです
[(#fbits-1):0]。
32ビットレジスタWの場合
またはR
- 整数部はW
[31:#fbits]またはR
[31:#fbits]
- 小数部はW
[(#fbits-1):0]またはR
[(#fbits-1):0]。
A1 ARMv8アーキテクチャの紹介
A1.4サポートしているデータ型
A1-48 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
これらの指示以下の浮動小数点例外が発生する可能性があります。
浮動小数点入力時の無効な操作 NaNまたは無限大、あるいは数値にできない場合
内に表される 宛先レジスタ
不正確な場合 数値結果 tとは異なります彼は値を入力しました。
入力非正規フラッシュ・ツー・ゼロモードが有効と目された電子のデノーマル入力 ゼロに置き換えられます。
注意
範囲外の固定小数点結果 thに飽和宛先サイズ。
詳しくは、浮動小数点例外と例外トラップを参照してください。D1-2196を参照してください
A1.4.7 {0以上の 多項式の算術演算 1}
OPERが、一部のSIMD命令SIMD&FP Rに食べましたegistersは{0、1}上の多項式を操作できます。サポートされているを参照してください。
データタイプ(A1-39ページ)多項式データ型は、次の形式のxの多項式を表します。
n – 1
バツ
n – 1
+…+ b
1
バツ
+ b
0
ここでb
k
値のビット[k]です。
係数0と1は、ブール演算の規則を使用して操作されます。
0 + 0 = 1 + 1 = 0
0 + 1 = 1 + 0 = 1
0×0 = 0×1 = 1×0 = 0
1×1 = 1。
あれは:
{0、1}に2つの多項式を追加することは、ビット単位の排他的なものと同じです。または。
2を掛ける{0、1 }上の多項式は、と同じです。部分積を除いて整数乗算
追加する代わりに排他的論理和をとる。
A64、A32、およびT32は、8ビットの多項式乗算を実行するための命令を提供します。alues。
AArch32については、VMUL(整数と多項式)ページF6-4903上VMULL(整数と多項式)
F6-4909を参照してください
AArch64については、PMULを参照してくださいC7-1728 およびPMULL、PC7-1730 ページのMULL2
Cryptographic Extensionは長い多角形を実行する能力を追加します64ビット値のオイマル乗算。PMULLを参照
PMULL2 ページC7-1730に
疑似コードの記述多項式乗算のn
擬似コードでは、多項式の加算はビット文字列のEOR演算によって記述されます。
多項式の乗算は、
PolynomialMult ()
章で定義された関数r J1 ARMv8擬似コード
A1はじめにARMv8アーキテクチャ
A1.5高度なSIMDと浮動小数点のサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-49
ID103018 非機密扱い
A1.5 高度なSIMDと浮動小数点のサポート
注意
AArch32状態では、SIMD およびFPレジスタを操作する SIMD命令は、常にAdvancedとして記述されています。
区別するためのSIMD命令SIMD命令のm は、基本命令セットの中で動作します。
32ビットの汎用レジストのERs。A64命令セットは、その上で動作するSIMD命令を提供しません。
汎用レジスタ、したがっていくつかのAArch64 状態記述はAdvancedの同義語として SIMD 使用します。
SIMD 文脈上明らかにそうでないことが示されていない限り、このセクションではSIMD命令のサポートについて説明します。
SIMDとFPで動作 レジスタ
ARMv8はfoをサポートできますAdvanced SIMDおよび浮動小数点命令のサポートレベルns:
例外トラップなしで フルSIMDと浮動小数点をサポートします。
excep によるフルSIMDおよび浮動小数点サポートトラップ。
浮動小数点またはSIMDのサポートなし。このオプション 私だけのために認可されています実装タールゲッティング専門
市場です。
注意
豊富なアプリケーション環境を持つ標準的なオペレーティングシステムをサポートするすべてのシステムはハードウェアを提供します
Advanced SIMDとfloatiのサポートng-point それはrequiremenですARMプロシージャのt標準コールr
AArch64、Prを参照手首e Sに電話するタンダルARM 64ビットArの場合はdchitecture
ARMv8は単精度をサポートします(32ビット)及び倍精度(64ビット)浮動小数点データ・タイプDの演算として
IEEE 754浮動小数点で定義されています STはandard。また、半精度(16ビット)浮動小数点データ型もサポートしています。
supによるデータストレージ用単精度データ型と半精度データ型の間の変換の移植そして
倍精度と半精度のデータ型ペス。ARMv8.2-FP16 が実装されている場合は、
データ処理演算用の半精度浮動小数点データ型
SIMD命令はパックされた単一命令Mulを提供しますチップデータ(SIMD)と単一要素ntスカラー
操作とサポート
単精度およびダブルPRECAArch64状態でのision算術演算。
AArch32 のみの単精度演算状態。
ARMv8.2-FP16 が実装されている 場合、AArch64およびAArch32 では半分割付け演算がサポートされます。
州。
AArch64状態のSIMDでの浮動小数点サポートは、IEEE 754-2008に準拠しています。
設定可能な丸めモード。
設定可能なデフォルトのNaN動作
設定可能なFlush-to-Zero動作
AAR使用して浮動小数点演算でCH32アドバンストSIMDをstructionsは、UNCのままのARMv7から絞首刑。A32
そしてT32アドバンストSIMD浮動-POのintは常にARM標準を使用していますFL oating-ポイント算術演算
IEEE 754浮動小数点演算には、以下の制限があります。
非正規化数はゼロにフラッシュされます。ゼロクリアoA1-52ページ
デフォルトのNaNだけがサポートされていますNaNは取り扱いおよびデフォルトのNaN ページA1-53に
最近傍丸めモードが使用されます。
トラップされていない浮動小数点の例外処理はすべての浮動小数点例外に使用されます。
浮動小数点例外の場合トラップはサポートされています、浮動小数点exオーバーフローまたはゼロ除算などの停止
トラッピングすることなく扱うことができます。このSIMDと浮動小数点演算の両方に適用されます。これで扱ったとき
方法浮動小数点例外は累積ステータスreを引き起こします。gisterビットを1に設定し、デフォルトの結果を
操作によって生成されます。詳細については浮動小数点例外。浮動小数点例外と
D1-2196ページの「例外トラップ」を参照してください
A1 ARMv8アーキテクチャの紹介
A1.5高度なSIMDと浮動小数点のサポート
A1-50 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
AArch64状態では、以下の登録浮動小数点演算を制御して戻ります。n 浮動小数点状況
情報:
浮動小数点制御レジスタFPCR 、コントロールls:
- 該当する場合は 半精度形式FPCRの.AHPビット。
- デフォルトのNaN動作FPCR
- ゼロクリア動作FPCR。{FZ、FZ16}ビット。ARMv8.2-FP16 が実装されていない場合編、FPCR .FZ16
です
RES 0
- 丸めモードのサポート、FPCRの.Rmodeフィールド。
- レンとSAArch32ステータスで実行に関連付けられたトライドフィールド。コンテキストでのみサポートされます。
AArch64状態から保存して復元します。これらのフィールドはAR Mv8では時代遅れで、次のように実装することができます。
RAZ / WI Rとして実装されている場合Wおよびゼロ以外の値にプログラムされています。
AArch32浮動小数点命令
定義されていません
- 浮動小数点はトラップ制御、FPCR に影響を受けます。{IDE、IXE、UFE、OFE、DZE、 IOE}ビット
浮動小数点数の許可および例外トラップページD1-2196で
浮動小数点Status RegisterFPSRは、用意されています。
- 累積浮動小数点例外フラグ、FPSR {IDC、IXC、UFC、OF C、DZC、IOC、およびQC}。
- AArch32浮動小数点comparis on flags {N、Z、C、V}。これらのビットは
AArch32の場合は RES 0
浮動小数点は実装されていません。
注意
AArch64状態では、プロセス状態フラグ、PSTATE 。{N、Z、C、V}はすべてのデータ処理に使用されます
比較および関連する条件付き実行します。
AArch32状態は、単一の浮動小数点ステータスと 制御レジスタFPSCR FPCR
FPSR フィールド
SIMDおよび浮動小数点サポートに関するシステムレベルの情報についてはAdvanced SIMDと浮動小数点を参照してください。
サポートページG1-5308に
A1.5.1 命令サポート
アドバンストSIMDと浮動小数点g点命令のサポート:
単一要素のロードと保存そして複数の要素のベクトル。
注意
単一の要素 また参照元ですスカラに変換 要素です。
単一および複数の要素でのデータ処理整数と浮動小数点型の両方のデータ型に対応します。
ARMv8.3-CompNumがimplemです 入力された、複素数演算。
dif 間の浮動小数点変換精度の低いレベル。
浮動小数点間の変換、修正ED-小数点整数、d整数データ型。
浮動小数点丸め。
SIMDとfloatiの詳細については、NG-ポイントの指示AArch64目で食べた、参照 C3 A64を
命令の概要を設定します
Advanced SIMDと浮動小数点数の詳細については、AArch32 stでのポイント命令食べた、参照章F1 ザ・を
AArch32説明書セットええと
A1はじめにARMv8アーキテクチャ
A1.5高度なSIMDと浮動小数点のサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-51
ID103018 非機密扱い
A1.5.2 浮動小数点standards、および用語
ARMは、ANSI / IEEE Std 754-2008、IEEE Sのすべての必須機能をサポートしています。タンダルバイナリの場合はd
浮動小数点IEEE 754-2008と呼ばれる算術演算しかしながらこのマニュアルのいくつかの用語は基づいています
この規格の1985年版は、と呼ばれますIEEE 754-1985:
ARM浮動小数点用語集では、一般的にIEEE 754-1985の用語を使用しています。この節では
IEEE 754-2008はこれらの用語を変更します。
発行年を含ま ないIEEE 754への言及は、以下に適用されます。 規格のいずれかの問題。
T表A1-3 は、このマニュアルの用語は、IEEE 754-2008で使用されている用語とは異なります。
A1.5.3 ARM stアンダフロートイン点入力 出力値
ARMv8は、IEEE 754 浮動小数点演算を完全にサポートしています。AArch32状態では、浮動小数点演算
Advanced SIMD instを使用して実行破裂はに限定されています ARM標準に関係なく、 d浮動小数点演算
で選択された丸めモードFPSCR AArch32とは異なり、AArch64 SIMDフロー点数演算が実行されます
thによって選択された丸めモードを使う電子FPCR
ARM標準浮動小数点演算は、IEEE 754で定義されいる以下の入力フォーマットをサポートします。
浮動小数点標準
ゼロ。
数字を正常化しました。
非正規化数はにフラッシュされます。浮動小数点演算の前に0を指定してください。A1-52ページの「 0 フラッシュ」を参照してください
•NあるN
無限大。
ARM標準の浮動小数点演算では、Round to Nearest(四捨五入)がサポートされています。dTiesToEven)丸めモードが定義されている
IEEE 754規格による。
ARM標準浮動小数点演算は、IEEE 754で定義されている次の出力結果形式atsをサポートします。
標準:
ゼロ。
数字を正常化しました。
その結果より少ないミニマムUM 正規化数は、FLである参照し、ゼロにushedフラッシュ・ツー・ゼロオン
A1-52ページ
•で 生成されたNaN浮動小数点演算は常にデフォルトのNaN、NaN処理とデフォルトを参照してください。
NaNのページA1-53に
Table A1-3浮動小数点数学問
このマニュアル IEEE 754-2008
正規化
ある
a。正規化された数は、通常の数よりも優先して使用されます
の他の特定の用途のために このマニュアルでは正常です。
普通
デノーマル、またはdenorはmalized 非正規を
無限大に向けての 丸め(RM)owardsNegative
プラスインフィニティラウンド(RP) roundTowardsPositive
ゼロ方向への 丸め(RZ)owardZero
最短への丸め(RN)ラウンドTありますイーブン
Tで四捨五入Aと同じです roundTありますOA方法
丸めモード 丸め方向属性
A1 ARMv8アーキテクチャの紹介
A1.5高度なSIMDと浮動小数点のサポート
A1-52 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
無限大。
A1.5.4 ゼロクリア
浮動小数点処理のパフォーマンスは、次のようにすると低下する可能性があります。INGのinvol計算ヴィングは、非正規化
数値とアンダーフロー例外。では多くのアルゴリズムは、これはperfo rmanceを回復することができますかなり
最終結果の精度に影響を与えるdenor malized operaを置き換えるndsと中間結果wi番目
ゼロ。Toこの最適化を許可するationが、浮動小数点implementaアームションは、フラッシュ・ツー・ゼロモードのために使用されることを可能にします
別のフロating-pointの形式は次のとおりです。
AArch64の場合:
•私f FPCR .FZ == 1の場合、Flush-to-Zeroモードが使用されます。LL単精度およびD ouble精度の入力と
すべての命令の出力s。
•私f FPCR .FZ16 == 1の場合、Flush-to-Zero モードが使用されます。Half-Pの再入力と出力
以下以外の浮動小数点命令
- ハ間の変換LF-精密ND単精度数。
- Ha lf-PrecisionとDoubl e-Precisionの間の変換ers。
AArch32の場合:
•私f FPSCR .FZ == 0の場合、すべての単精度入力および倍精度入力に対してゼロフラッシュモードが使用されます。
すべてのアドバンストSIMD浮動小数点命令の出力
•私f FPSCR .FZ == 1の場合、すべての単精度入力および倍精度入力に対してゼロフラッシュモードが使用されます。
すべての命令の出力s。
•私f FPSCR .FZ16 == 1の場合、Flush-to-Zeroモードが使用されます入力と出力のすべての半精度に対して
以下以外の浮動小数点命令
- ハ間の変換LF-精密ND単精度数。
- Ha lf-PrecisionとDoubl e-Precisionの間の変換ers。
Flush-Tの場合Oゼロ modeは、単精度または倍精度入力で使用されます。
rの非正規化数ある 浮動小数点演算へのすべての入力明示された精度は
入力と同じ符号でゼロであり、入力非正規浮動小数点数であるかのように扱われます。
例外が発生します。
注意
入力非正規浮動小数点は、Flush-to-zero moでのみ発生します。デ。
AArch32状態では、FPSCR に累積例外ビットFPSCR .IDCとオプションのトラップイネーブルビットが含まれています。
入力非正規浮動小数点例外に対応する FPSCR .IDE。
AArch64状態では、FPSR に累積例外ビットが含まれています。FPSRの.IDCとオプションのトラップイネーブルビット
入力デ通常浮動小数点例外に対応する FPCR .IDE
入力値を除く すべての浮動小数点例外の発生は、入力値を使用して判断されます。
それは ゼロとして扱われるbこのメカニズム。
Flush-Tの場合半精度入力で o-Zeroモードが使用されます。
rの非正規化数ある 浮動小数点演算へのすべての入力明示された精度は
入力と同じ符号で、それらがゼロであるかのように扱われます。
注意
いつ ARMv8.2-FP16 が実装されていますed、Flush-to-zero モードでは、半精度浮動小数点数
それはゼロにフラッシュされませんge入力非正規浮動小数点例外を発生させます。これはこれが理由です
状況ははるかに少ないexceptionaのある倍精度またはSINGLよりもリットル電子精密非正規化数のalized 数字です。
A1はじめにARMv8アーキテクチャ
A1.5高度なSIMDと浮動小数点のサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-53
ID103018 非機密扱い
すべての浮動小数点数の出現例外は、ゼロとして扱われる入力値を使用して決定されます。
このメカニズムによって。
Flush-Tの場合o-Zeroモードは命令の出力に使用されます。
出力はzeとして返されますro、同じ符号のbi四捨五入前の結果であれば、結果としてt
インスタンスで指定された操作は、次の条件を満たします。
0 <Abs(結果)<MinNorm、ここで、
- MinNormは半精度の場合2 ^ -14です。
- MinNormはシングルpの場合2 ^ -126です断裁。
- MinNormはdouの2 ^ -1022ですきらめき
これが発生した場合は、
- アンダーフロー例外が生成されますが、すべての実装において、アンダーフロー例外は生成されません。
AArch3であっても閉じ込め2 FPSCR .UFE == 1またはAArch64 FPCR .UFE == 1。
- 不正確例外は発生しません。
注意
Flush-to-zeroモードはIEEE 754規格と互換性がないため、IEEEの場合は使用しないでください。754互換性
要件です。ゼロクリアモードは注意して使用する必要があります。けれどもそれはいくつかのパフォーマンスを向上させることができます
アルゴリズム、重要な制限事項です その使用上。これらはアプリケーションに依存します。
多くのアルゴリズムでは、それは意味がありません。有効な効果、algoritを使うhm は通常非正規化を使いません
数字です。
他のアルゴリズムでは、例外が発生したり、結果の精度が著しく低下する可能性があります。のult
アルゴリズム。
A1.5.5 NaN処理とデフォルト超NaN
IEEE 754規格では、次のように規定されています。
Invを引き起こす操作alid Operation浮動小数点除外は、resとして静かなNaNを生成します。もしも
その例外は未処理です。
シグナルNaNオペランドで はなく、クワイエットNaNオペランドを含む演算では、入力NaNが
結果。
浮動小数点処理であるデフォルトのNaNモードがdisablときhavior EDはTHIに付着します次のようなs
追加:
未処理の場合操作浮動小数点例外が発生したNaNの結果は、
- オペランドの少なくとも1つがaであるため例外が発生した場合の、 最初のシグナリングNaNオペランドrand
NaNをシグナリングします。
- それ以外の場合、デフォルトのNaN。
未処理の場合有効な演算浮動小数点例外は発生しませんしかし、少なくとも1つのオペランドが
クワイエットNaNの場合、結果は最初のクワイエットNaNオペランドから導出されます。
操作に応じて、の正確な値NaNの派生的な結果は両方の記号が異なる との数
そのsouからの小数ビットrce。signali由来静かなNaNの結果NG NaNオペランドが、最上位
小数ビット 1に設定されます。
注意
では これら の記述、最初のオペランドがLEFに関し、 arの tから右への順序擬似コードへの告知
操作を説明する関数
IEEE 754標準仕様NaNの符号ビットには意味がないと考えます。
A1 ARMv8アーキテクチャの紹介
A1.5高度なSIMDと浮動小数点のサポート
A1-54 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
SIMDと浮動小数点処理の動作または、デフォルトNaNモードが有効になっている場合は、デフォルトNaNが
すべての浮動小数点int演算の結果かゆみ:
トラップされない無効なオペラ原因ションを 浮動小数点例外
1つ以上のクワイエットNaN入力を使用しますが、シグナリングNaN入力は使用しません。
T表A1-4 は、ARM浮動小数点演算の場合はデフォルトNa N。
デフォルトのNaNモードはfloating-pに選択されていますFPCRの.DNビットを1に設定して処理します
その他の面機能のstionaliインバのtyふたオペレーターIO N浮動小数点例外であり、AFではありませんデフォルトのNaNによる影響
モード。これらは目で:
未治療の場合ped、それはthを引き起こしますbへのe FPSR.IOCビットeを1に設定
閉じ込められている場合は、ユーザを引き起こします。 呼び出されるトラップハンドラ。
T可能A1-4デフォルトのNaNエンコーディング
半精度、IEEE フォーマット 単精度 倍精度
符号ビット 0 0 0
指数
0x1Fに は0xFF 0x7FF
分数 ビット[9] == 1、ビット[8:0] == 0 ビット[22] == 1、ビット[21:0] == 0 ビット[51] == 1、ビット[50:0] = = 0
A1はじめにARMv8アーキテクチャ
A1.6 ARMメモリモデル
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-55
ID103018 非機密扱い
A1.6 ARMメモリモデル
ARMメモリモデルは以下をサポートします。
境界整列さ ていないメモリアクセスで例外を生成します。
レストリ特定のメモリー領域へアプリケーションによるアクセスの制限
T仮想アドレスの翻訳esses (Vとして)物理アドレスへの命令の実行によって提供されるesses (Pとして)。
マルチバイトデータの解釈をビッグエンディアンリトルエンディアンの間で変更する
順序を制御する メモリへのアクセス
キャッシュの制御アドレス変換構造体
共有メモリへのアクセスの同期化複数のPE
障壁 鏡面反射を抑制および防止するメモリへのアクセス
Vサポートは Execのution状態、次のように:
AArch64状態
Tで64ビット仮想アドレス指定をサポート走っslation制御レジスタがサポートを決定
V範囲です。EL1とEL0での実行は2つの独立したVをサポートそれぞれの範囲それ自身
翻訳コントロール
AArch32状態
Tで32ビット仮想アドレス指定をサポート走っslation制御レジスタがサポートを決定
V範囲です。実行時EL1とEL0、システムソフトウェアはVを分割することができます2つの範囲
それぞれそれを持つ部分範囲sの翻訳を制御します。
サポートされているPスペースは
実装定義、およびシステムソフトウェアによって検出することができます。
実行状態に関係なく、V仮想記憶システムArチャイテクターe (VMSA)はVを翻訳できますブロックに関して
サポートされているPのメモリのページ数スペース。
詳しくは、以下を参照してください。
実行用AArch64のイオン 状態
第B2章AAr ch64アプリケーションレベルメモリモデル
章D4 The AAr ch64システムレベルメモリモデル
章D5 The AAr ch64 V仮想記憶システムArチャイテクターe
実行用AArch32のイオン 状態
第E2章AAr ch32アプリケーションレベルメモリモデル
章G4 The AAr ch32システムレベルメモリモデル
章G5 The AAr ch32 V仮想記憶システムArチャイテクターe
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-56 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
A1.7 ARMv8アーキテクチャ拡張
元のARMv8-AアーキテクトこれはARMv8.0と呼ばれています。このマニュアルの次のセクション説明する
許可をまとめるテッドの元ARMv8.0に緊張:
ARMv8暗号化拡張機能(A1-57ページ)
信頼性 、A利用可能性、および保守容易性(RAS)の拡張A1-74ページを参照してください
D1-2262ページの「イベントモニタ
IVIPT拡張ページD5-2535で
H7 PCサンプルベースのProfiling拡張
ARMv8の説明に加えて。0、このマニュアルは以下のアーキテクトについて説明していますその他の拡張機能:
ARMv8.1アーキテクチャ拡張
ARMv8.1アーキテクチャ拡張では、両方が追加されています。
建築家Lの特徴。これらのいくつかはmaですndatory、その他オプションです。いくつかの特技必需品
一緒に実装するエーテル
建築 必要条件 これらは 必須
実装はARMv8.1準拠です。以下のすべてが当てはまる場合はant。
すべてのARMが含まれていますv8.1アーキテクチャーの特色必須のesArを参照カイト
羽毛すべてのARMv8.1アーキテクチャ機能について、ARMv8.1でA1-58ページに追加されたes。
すべてのARMv8を含みます。1アーチ構造上の要件 追加のr獲得するの意味
ARMv8.1 (A1-61ページ)にこれらの要件が記載されています。
詳細については、ARMv8.1 arを参照してくださいchite cturA1-58ページの e拡張子
ARMv8.2アーキテクチャ拡張
ARMv8.2アーキテクチャ拡張はエクステントですARMv8への移行。1.両方を追加します。
建築家Lの特徴。これらのいくつかはmaですndatory、その他オプションです。いくつかの特技必需品
一緒に実装するエーテル
建築 必要条件 これらは 必須
実装はARMv8.2準拠です。以下のすべてが当てはまる場合はant
ARMv8.1 compです。ライアン。
すべてのARMが含まれていますv8.2建築の特徴必須のesArを参照カイト
羽毛ARMv8.2 のすべてのアーキテクチャ機能について、ARMv8.2でA1-61ページに追加されたes。
すべてのARMv8を含みます。2アーチ構造上の要件 追加のr獲得するの意味
ARMv8.2 (A1-67ページ)にこれらの要件が記載されています。
詳細については、ARMv8.2 arを参照してくださいchite cturA1-61ページの e拡張子
ARMv8.3アーキテクチャ拡張
ARMv8.3アーキテクチャ拡張はその一例です。SI ARMv8.2に上。それは建築家を追加しますラリー機能
これらのいくつかは必須です他のものはオプションです。いくつかの機能は一緒実装する必要があります
実装はARMv8.3準拠です。以下のすべてが当てはまる場合はant
ARMv8.2 compです。ライアン。
すべてのARMが含まれていますv8.3のアーキテクチャ上の特徴 それは必須です
詳細については、ARMv8.3 arを参照してくださいchite cturA1-67ページの e拡張子
ARMv8.4アーキテクチャ拡張
ARMv8.4アーキテクチャ拡張はエクステントです。SI ARMv8.3に上。それは建築家を追加しますラリー機能
これらのいくつかは必須です他のものはオプションです。いくつかの機能は一緒実装する必要があります
実装はARMv8.4準拠です。以下のすべてが当てはまる場合はant
ARMv8.3 compです。ライアン。
すべてのARMが含まれていますv8.4のアーキテクチャ上の特徴 それは必須です
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-57
ID103018 非機密扱い
詳細については、ARMv8.4 arを参照してくださいchite cturA1-69ページの e拡張子
S統計学教授iling Extension(SPE)
SPEはARMv8.2のオプションの拡張です。つまり、SPEにはIMPのARMv8.2のlementation。
詳しくはThe Sをご覧ください統計PrExtのA1-75 ページの「拡張(SPE)」を参照してください
スケーラブルVエクステンションエクステンション(SVE)
SVEはARMv8.2のオプションの拡張です。つまり、SVEにはイムARMv8.2のplementation。
詳細については、The Scalable Vを参照してくださいeA1-75ページの「ctor拡張機能(SVE)
活動モニター拡張(AMU)
AMUはオプションですARMv8.4の拡張版です。つまり、AMUには次の実装が必要です。
ARMv8.4。
詳細については、アクティビティモニタEを参照してくださいXTension ページA1-75に
メモリーパーティ設定とモニタリングシオン(MPAM)
MPAMはARMv8.2のオプションの拡張です。つまり、MPAM はの実装が必要です
ARMv8.2。
詳細については、Memory Partitioning and Monitoring Extension(MP)を参照してくださいAM)
A1-76ページ
許可も参照してくださいARMv8.xおよびARMv8サブセットの実装(x + 1)arキテライト羽es
A1.7.1 許可された作業機サブセットの作成ARMv8.xおよびARMv8の(x + 1)アーキテクト壁画の特徴
ARMv8 xに準拠した実装弧の任意のサブセットを含めることができますの特徴
ARMv8。(x + 1)、特定の機能を必要とする要素のみを条件とする一緒に実装する
ARMv8 x 準拠の実装では、ARMv8の機能を含めることはできませんx + 2)。
注意
ARMv8。(x + 1)機能がARMv8に追加されました。x 準拠の道具ationがいる場合にのみ許可されています
実装者にはlicがありますlicに加えてARMv8。(x + 1)への移行ARMv8への移行。×
A1.7.2 ARMv8暗号化拡張機能n
ARMv8暗号エクステンションprov手順暗号化と復号化の高速、そして
以下の機能が含まれます。
ARMv8.0-AES。これには以下が含まれます。
AESD
そして
AESE
説明書
ARMv8.0-SHA。
SHA1 *
そして
SHA256 *
説明書
インプリメンテーション内の暗号拡張の存在ライセンス管理をエクスポートするのは、メンテーションです。
Cryptographic ExtensionはSIMD サポートの拡張であり、ベクトルレジスタファイルで機能します。
Cryptographic Extensionは同様に機能する乗算命令も提供します。長い多項式のレート
暗号拡張機能はAArch64でこの機能を提供します。状態とAArch32状態、および
両方をサポートする実装 AArch64状態とAArch32状態は同じ暗号拡張を提供します
両方の状態で機能します。
詳細については、C3-226ページの「暗号化拡張機能またはの「暗号化拡張機能」を参照してください
AArF1-3645の「ch32の状態
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-58 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
暗号化のARMv8.2拡張phic Extension
ARMv8.2から、ARMv8.0暗号化の実装HICエクステのnsionは、のいずれかまたは両方を含めることができます。
AES機能64ビット多項式の乗算のサポートを含みます。
ID_AA64ISAR0_EL1 .AESフィールドは、機能がサポートされているかどうかを示します
SHA1およびSHA2 - 256機能ID_AA64ISAR0_EL1 。{SHA2、SHA1}フィールドはかどうかを示します
この機能はサポートされています。
さらに、ARMv8.2では2つの最適化が追加されています。以下を提供する ARMv8暗号グラフィック拡張の内部拡張
AArch64状態の暗号化機能のみこれら二つのオプション機能は次のとおりです。
ARMv8.2-SHA、SHA2-512、およびSHA3機能
A64命令セットのみ、ARMv8.2-SHA および以下をサポートする Advanced SIMD インストレーション。
SHA2-512(SHA512)。
SHA3​​。
ARMv8.2-SH Aの実装には実装が必要です精神作用ARMv8.0暗号化
SHA-1およびSHA256機能拡張
ID_AA64ISAR0_EL1 。{SHA2、SHA3}フィールドは特定ARMvの存在を8.2 − SHA。
詳細については、「ARMv8.2-SHA、SHA2-512、およびSHA3 」(C3-227)を参照してください
ARMv8.2-SM、SM3、およびSM4の機能
A64命令セットのみ、ARMv8.2-SMにAdvanced SIMD instrが追加されましたを支える党派
中国の暗号化アルゴリズムSM3とSM4。
ARMv8の実装 2-SMは独立していますimplのいずれかのementation SHA機能
ID_AA64ISAR0_EL1 。{SM3、SM4}フィールドはARMv8.2-SMの存在を同定します。
注意
これはARMv8を意味します.2-SMは、他の暗号化拡張機能なしで実装できます。
特徴。
詳細については、C3-228 ページのARMv8.2-SM、SM3、およびSM4」を参照してください
A1.7.3 ARMv8.1 アーキテクチャ拡張
ARMv8.1アーキテクチャ拡張は両方のアーキテクチャを追加します見事な特徴と建築家チュラル要件
建築の特徴 ARMv8.1により追加
ARMv8.1拡張機能の実装には、thのすべてを含める必要があります。eの特徴 このセクションでは、
必須そのような実装では、cARMv8.1 の追加要件と組み合わせて、とも呼ばれます。
ARMv8.1アーキテクチャの実装
ARMv8.1アーキテクチャ拡張では、以下のアークが追加されています。理想的なものによって明示される
建築の私と短いdをフィーチャー機能の説明:
ARMv8.1-LSE、ARMv8.1 拡張システム拡張
ARMv8.1-LSEでは、一連のアトミック命令が導入されています。
命令を比較して交換する。
CAS
そして
CASP
アトミックメモリ操作命令
LD <OP>
そして
ST <OP>
どこで
<OP>
の一つであります
追加
CLR
EOR
セット
SMAX
SMIN
UMAX
、そして
UMIN
スワップ命令
SWP
これらの命令はA64命令セットにのみ追加されています。
この機能はARMv8.1実装では必須です。
実装ARMv8.1-VHEはimplemen必要ARMv8.1-LSEのtationを。
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-59
ID103018 非機密扱い
ID_AA64ISAR0_EL1アトミックファイldはARMv8.1-LSEの存在を識別します。
詳しくは、以下を参照してください。
比較 eとスワップ(C3-189)
アトミックメモリ操作(C3-190ページ)
C3-192ページの「交換
ARMv8.1-RDMA、ARMv8.1アドバンスd SIMD命令イオン
ARMv8.1-RDMAでは、丸め二重完全加算/減算が導入されましたアドバンストSIMD
説明書 詳しくは、以下を参照してください。
A64命令セット用
SQRDMLAH(要素による ページC7-1888に
C7-1891 ページの SQRDMLAH(ベクタ)
SQRDMLSH(要素ごと) C7-1893ページを参照してください
C7-1896 ページのSQRDMLSH(ベクタ)
T32およびA32命令セットの場合
F6-4985 ページの「VQRDMLAH」
F6-49の「VQRDMLSH」 89
この機能はARMv8.1実装では必須です。
以下のフィールドはプレゼンスを識別ます。f ARMv8.1-RDMA:
ID_AA64ISAR0_EL1 .RDM
ID_ISAR5_EL1 .RDM。
ID_ISAR5 .RDM。
ARMv8.1-LOR、限定発注regions
限られた注文地域はla rを可能にします特別なことを行うためのgeシステムl 負荷取得および店舗リリースe
メモリACC間の順序を提供する命令esses Pの領域観測された地図
限られた数のオブザーバーによる。
この機能はAArch64状態でのみサポートされています
この機能はARMv8.1実装では必須です。
ID_AA64MMFR1_EL1 .LOフィールドは番目の識別ARMv8.1-LORのEサポートを。
詳しくは、以下を参照してください。
限定または dering regions ページB2-109に
ARMv8.1-HPD、階層chicalパーミッションが無効になります
ARMv8.1-HPDの紹介施設へのアクセス階層的です 属性、APT有能、PXNTできる、
とUXNT翻訳中テーブルの上。この無効化はNSTに影響しません。ableビット
この機能はARMv8.1実装では必須です。
この機能はVMSAにのみ追加されていますv8-64トランスレイションn体制。ARMv8。2はこれを
AArch32変換方式、ARMv8.2-AA32を参照HPD
ID_AA64MMFR1_EL1 .HPDSフィールド同定さARのサポートMv8.1-HPD
ARMv8.1-TTHM、アクセスフラグとダーティ状態のハードウェア管理
ARMv8.0では、応答テーブルへのすべての更新ソフトウェアによって実行されます。ARMv8.1から、
VMSAv8-64翻訳体制ONL Y、ハードウェアは更新を実行できますATE TRAへnslationテーブル
2つのコンテキスト
アクセスフラグのハードウェア管理。
変換テーブル内のダーティステートの更新による、 ダーティステートのハードウェア管理
ダーティ状態はARMv8.1で導入されました。
汚いstのハードウェア管理アクセスのハードウェア管理時にのみ有効にすることができます
フラグも有効になります。
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-60 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
この機能はAR Mv8.1実装ではオプションです。チオン。それはあるIMPLEMENTATION DEFINED トンか彼の
実装されています。
ID_AA64MMFR1_EL1 .HAFDBSフィールドはARMv8.1-TTHMのサポートを識別します。
詳しくは、以下を参照してください。
D5-2466ページのダーティ状態
ハル ドワーフ電子管理D5-2467アクセスフラグとダーティ状態
ARMv8.1-PAN、特権アクセス
ARMv8.1-PANはPSTに新しいビットを追加しますATE このPの値がAN状態ビットは1、任意の特権
EL1またはEL2から仮想メモリアドレスtへのデータアクセス帽子はアクセントEL0の ssi bleは
許可違反。
この機能はARMv8.1実装では必須です。
この機能は、AArch64およびAArch32状態でサポートされています。
以下のフィールドは、ARMv8.1のサポートを識別します。-PAN:
ID_AA64MMFR1_EL1 .P AN
ID_MMFR3_EL1 .P AN
ID_MMFR3 .P AN
詳しくは、以下を参照してください。
PSTについて ATE.PD5-2457ページの AN
Pについて G5-5505ページの ANビット
ARMv8.1-VMID16、16ビットVMID
ARMv8.1実装では、EL2のとき AArch64を使用している場合、VMIDのサイズは
実装定義 8ビットまたは16ビットの ED 選択。
この機能はAR Mv8.1実装ではオプションです。チオン。それは
実装 DEFINED トンか彼の
実装されています。
実装時には、この機能はEL2がAArch64を使用している場合にのみサポートされます。
ID_AA64MMFR1_EL1 .VMIDBitsフィールドID支持者を羨むd VMIDサイズ。
詳しくは、以下を参照してください。
VM5のサイズ(D5-251) 1
ARMv8.1-VHE、Virtualizationホスト拡張
ARMv8.1はVを導入します以下のための拡張サポートを提供する国際化ホスト拡張(VHE)
Tイペ2 非セキュア状態のハイパーバイザー。
この機能はARMv8.1実装では必須です。
実装者含まれているes ARMv8.1-VHE では、ARMv8.1-LSE を実装する必要があります。
ID_AA64MMFR1_EL1 .VHフィールドはARMv8.1-VHEのサポートを識別します。
次のフィールドはVの存在を示していますデバッグ用のirtualization Host Extensions
PCサンプルの変更を含むベースのPriling拡張とパフォーマンスモニタ
拡張:
ID_AA64DFR0_EL1 .DebugV あー
ID_DFR0_EL1 。{CopSDbg、CopDb g}。
詳しくは、以下を参照してください。
V D5-2486 ページの「 irtualizationのホスト拡張
ARMv8.1-PMU、ARMv8。1 PMU延長イオン
ARMv8.1では、Performance Monitors Extensionが以下のように拡張されています
イベント番号スペースは拡張されています追加できるようにするdから16ビット
実装 定義済み
イベントの種類 そして予約されたスペースfo将来的にtに追加彼は建築家予定イベント
型が拡張されています。
HPMDビットがMDCR_EL2に追加されていますこのビットは、EL2でのイベントカウントを無効にします
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-61
ID103018 非機密扱い
STALL_FRONTEND STALL_BACKEND イベントは実装されています。
詳しくは、Requirを参照してくださいD6-2582ページの edイベント
Performance Monitors Extensionは、
オプション 実装の機能、ただしARM
ARMv8.1の実装に含めることを強く推奨します。eどちらか:
ARMv8.1-PMU。
•An
パフォーマンスモニターの実装定義形式。
以下のフィールドは、ARMv8.1-PMUを識別します。
ID_AA64DFR0_EL1 .PMUV あー
ID_DFR0_EL1 .PerfMon。
ID_DFR0 .PerfMon。
追加の要求者ARMv8.1のts
ARMv8.1アーキテクチャ構造はいくつか含まれています 必須の変更帽子は関連付けられていません機能を追加しました。Tヘッセです:
CRC32命令への変更
すべての実装ションARMv8.1アーキテクチャされている実装するために必要な
CRC32 *
説明書
これらはARMではオプションです。v8.0
以下のフィールドは、そのサポートを識別します。
CRC32 *
説明書
ID_AA64ISAR0_EL1 .CRC32
ID_ISAR5_EL1 .CRC32。
ID_ISAR5 .CRC32。
ARMv8.1 extの実装追加要件のすべてに準拠している必要があります。nts。そんな
実装時には、com必須のarch itectuに縛られてARMv8.1のすべての機能は、次のとおりです
ARMv8.1アーキテクチャの実装
A1.7.4 ARMv8.2 アーキテクチャの拡張
ARMv8.2アーキテクチャ拡張は両方のアーキテクチャを追加します見事な特徴と建築家チュラル要件
建築の特徴 ARMv8.2で追加されました
ARMv8.2拡張機能の実装には、thのすべてを含める必要があります。eの特徴 このセクションでは、
必須そのような実装では、cARMv8.2 の追加要件と組み合わせて、とも呼ばれます。
ARMv8.2アーキテクチャの実装
ARMv8.2アーキテクチャ拡張機能には、次のアークが追加されています理想的なものによって明示される
建築の私と短いdをフィーチャー機能の説明:
ARMv8.2-A64ISA、ARMv8.2からA64 ISAへの変更
ARMv8.2-A64ISAは、
BFC
A6への指示のエイリアスとしての4命令セット
BFM
また
新しいことが必要です
BFC
命令と A64疑似命令
REV64
によって実装されています
アセンブラ。
注意
ARMv8.0およびARMv8.1では、A64疑似命令
REV64
オプションです。
この機能はサポートに関連しているためための命令エイリアスと疑似命令の
対応する機能IDがありませんフィールドを登録します。
この命令セットへの変更 ARMv8.2 では、アセンブリ要件は必須です。
実装。
詳しくは、以下を参照してください。
BFC on pag 電子C6-735
REV64 (C6-1074)
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-62 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARMv8.2-ATS1E1、
AT S1E1R
そして
AT S1E1W
考慮した命令バリアントPSTATE .PAN
ARMv8.2-ATS1E1はAArch64の新しい変種を追加します
AT S1E1R
そして
AT S1E1W
指示と
AArch32
ATS1CPR
そして
ATS1CPW
説明書 これら 新しい命令係数 PSTATE .PANビット
かどうかを判断するとき 場所は特権を与えられた人のための許可違反を評価するでしょう。
Pに報告されているように、アクセスA R. 結成について詳しくは、以下を参照してください。
AArのためにch64システムインストール破裂
A T S1E1RP、アドレスエスTSを翻訳ステージ1 EL1読み取りPC5-467ページの AN
A T S1E1WP、アドレスエスTSを翻訳1段目EL1 W儀式PC5-471ページの AN
AArのためにch32システムインストール破裂
A TS1CPRP、アドレスエスTSを翻訳田下1 CURRent状態PL1読み出しPAN オン
G8-5672ページ
A TS1CPWP、アドレスエスTSを翻訳age 1現在の状態PL1 W儀式PAN オン
G8-5676ページ
この機能はARMv8.2実装では必須です。
これらの説明A64およびA32 / T32命令セットに追加されています。
以下のフィールドは、ARMv8.2-Aの存在を識別しますTS1E1:
ID_AA64MMFR1_EL1 .P AN
ID_MMFR3_EL1 .P AN
ID_MMFR3 .P AN
詳しくは、以下を参照してください。
アドレス D5-2440ページの「 essの翻訳方法
A TS1C **、アドレスess translation stag e 1、現在G5-5578の entセキュリティ状態
の符号化と可用性のaddr G5-5579ページの「 essの翻訳方法
ARMv8.2-FP16、半精度n浮動小数点データ処理
ARMv8.2-FP16は以下をサポートします。
Advanced SI MDと浮動小数点の両方の 半精度データ処理命令
AArch64とAArch32の状態。
FPCR .FZ16とFPSCR たflush-有効.FZ16ビット、半精度のためにゼロモード
データ処理命令
SVE 重要でない限り、この機能はARMv8.2実装ではオプションです。で、lemented どちらの場合
ARMv8.2-FP16はmですやつらいつ この機能は実装されています実装されている両方に縛られて
Advanced SIMDおよび浮動小数点、そしてAArch64およびAArch32状態。
以下のフィールドはプレゼンスを識別ます。f ARMv8.2-FP16:
ID_AA64PFR0_EL1 。{FP 、AdvSIMD}。
MVFR1_EL1 。{FPHP 、SIMDHP}。
MVFR1 。{FPHP、SIMDHP}。
詳しくは、以下を参照してください。
ハーフプリ ecision浮動小数点形式A1-43ページ
フラッシュツーツァー A1-52ページの o
即値の修正 C2-166ページの A64命令のnts
ARMv8.2-DotProd、SIMDドットプロ産卵
ARMv8.2-DotProdは提供します 2つの32ビットベクトルの内積を実行するための命令
結果を3番目の32ビットベクトルに累積するこれは符号付きまたは符号なしを使って実行できます。
算術
この機能は、ARMv8.2の実装ではオプションで、ARMv8.4 では必須です。
実装
これらの説明A64およびA32 / T32命令セットに追加されています。
以下のフィールドは、ARMv8.2-DotProdの存在を識別します
ID_AA64ISAR0_EL1 .DP
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-63
ID103018 非機密扱い
ID_ISAR6_EL1 .DP
ID_ISAR6 .DP
詳しくは、以下を参照してください。
SIMDドットPR oduct ページC3-225に
アドバンストSIMDドットPR 商品説明書F1-3643ページを参照してください
ARMv8.2-FHM、浮動小数点乗算異形について
ARMv8.2-FHMは新しいfloating-po int multiを追加しますひだの指示。
これらの説明A64およびA32 / T32命令セットに追加されています。
この機能はARMv8.2実装ではオプションであり、次の場合にのみ実装できます。
ARMv8.2-FP16 が実装されています。ThARMv8.4では機能は必須です幻想。
以下のフィールドはプレゼンスを識別ます。f ARMv8.2-FHM:
ID_AA64ISAR0_EL1 .F HM。
ID_ISAR6_EL1 .FHM。
ID_ISAR6 .FHM。
詳しくは、以下を参照してください。
SIMD演算PAGに e C3−213
要素によるSIMD C3-219ページの算術演算
アドバンストSIMD MUL F1-3642 ページの簡単な説明
ARMv8.2-LSMAOC、ロード/ S引き裂く原子性および秩序環制御ols
ARMv8.2-LSMAOCは、従来の動作を無効にするコントロール追加しますAArch32負荷の倍数
店舗ムー複数の指示、およびこの従来の動作の1つの側面罠を提供しなさい
ARMv8.2- LSMAOCの実装はオプションです。ときに実装され、それは以下を提供します。
•LSMAE feln トン時間e SCTLR_EL1 SCTLR_EL2 HSCTLR 、およびSCTLR レジスタ。これら
フィールドがAArch32 Load Multiple and Storeの動作に次のような影響を与える可能性があります。
倍数構造体:
- 2つのメモリアクセス間で割り込みが発生する可能性があります1回のロードで作成
倍数またはSマルチインストラクション
- メモリアクセス単一のLoad MultipleまたはStore Multiple instrによって作成されます。
Reorde以外のデバイスメモリリング属性は並べ替えることができます。
中nTLSMDフィールドSCTLR_EL1 SCTLR_EL2 HSCTLR 、およびSCTLR レジスタこれら
フィールドはDevice-nGRE、Device-nGnRE、またはDevice-nGnRnEメモリへのアクセス
Alignmentフォルトを生成するためのAArch32 Load MultipleおよびStore Multipleが構造化されています。
注意
ARMv8.2はsofを非推奨にしますAArch32 Load Multipleの従来の動作へのウェア依存
店舗ムー複数の命令、およびこれらのフィールドはこの動作を無効にします。
以下のフィールドは、ARMv8.2-LSMAOCのサポートを識別ます
ID_AA64MMFR2_EL1 .LSM
ID_MMFR4_EL1 .LSM
ID_MMFR4 .LSM。
詳しくは、再Eのgisterのフィールドの説明と:
ロード/ストアによるアライメントエラーの生成 Eの複数のデバイスメモリへのアクセス
E2-3581ページ
マルチr ロードとストアのegisterE2-3594ページの「デバイスメモリ」アクセスするための es
T 複数のrの間に割り込みまたは他の例外を起こすegisterロードまたはstor電子上の
G1 - 5273ページ
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-64 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARMv8.2-UAO、PSTA特権荷重/ Sの TE オーバーライド引き裂く
ARMv8.2では、次のものに新しいビットが追加されています。 PSTATE PST の値がATE .UAOは1であり、実行されると
HCR_EL2を持つEL1またはEL2 E2H、TGE} == {1、1}、メモリによるアクセス
ロード/ストアunpr変更された命令は、ロード/ストアレジスタによって作成されたかのように動作します。
説明書 見る荷重/ SトルPAに特権がないge C3-181 荷重/ S引き裂くC3-177 ページのegister
この機能はARMv8.2実装では必須です。
この機能はAArch64状態でのみサポートされています
ID_AA64MMFR2_EL1 .UAOフィールドはARMv8.2-UAOのサポートを識別します。
詳しくは、以下を参照してください。
PSTについて ATE.UAO onD5-2458ページ
ARMv8.2-DCPoP、ポイントオブパーシスタンスまでクリーンアップしたデータキャッシュ
ARMv8.2-DCPoPでは、永続メモリの場所を識別して管理するためのメカニズムが導入されています。
共有メモリ階層を含む
DC CVAP
命令。
この機能はARMv8.2実装では必須です。
この機能はAArch64状態でのみサポートされています
ID_AA64ISAR1_EL1 .DPBフィールドは識別ARMv8.2-DCPoPのサポートを
ARMv8.2-DCPoPの詳細、 見る:
メモリ階層 B2-1 ページの chy11
ARMv8.2-VPIPT、VMID対応PIPT命令キャッシュ
ARMv8.2-VPIPTは新しい命令キャッシュキャッシュの標準をサポートしますe、VMID賞として記述e PIPT
(VPIPT)指示イオンキャッシュ
注意
ARMv8.2では、サポートされているキャッシュタイプのセットにVPIPTが追加されました。これは、ARMv8.2の実装を意味します。
VPIPT caを実装することが許可されていますしかし、そうする必要はありません。
この機能は、AArch64およびAArch32状態でサポートされています。
CTR_EL0 .L1IpとCTR .L1IpフィールドはARMv8.2-VPIPTのサポートを識別します
詳しくは、以下を参照してください。
VPIPT(VMID-awar e PIPT)命令キャッシュD5-2534ページを参照してください
VPIPT(VMID-awar e PIPT)インストラクションG5-5544ページの n個のキャッシュ
ARMv8.2-AA32HPD、AArch32ハイエラーchicalパーミッションが無効になります
ARMv8.1-HPDの紹介能力tを達成したo階層を無効にするcal属性、APT有能、PXNTできる、
とUXNTVMSAで可能v8-64の翻訳体制。ARMv 8.2-AA32HPDはこれを拡張します
VMSAの機能再v8-32翻訳それらの制度があるgimesLongを使う
記述子変換テーブル フォーマット。
この機能はAR Mv8.2実装ではオプションです。チオン。それは
実装 DEFINED トンか彼の
実装されています。
ID_MMFR4_EL1 .HPDSとID_MMFR4.HPDSフィールドはのサポートを識別します
ARMv8.2-AA32HPD。
詳しくは、以下を参照してください。
VMSAの属性フィールド v8-32ロングディスクリプタ変換テーブルフォーマットディスクリプタ
ページG5-5486
ARMv8.2-TTPBHA、T変換テーブルのページベースのハードウェア属性
ARMv8.2は、 オペレーティングシステムまたはハイパーバイザーが最大4ビットを作成できるようにする
使用可能な変換テーブルの最終レベル記述子のリスト
実装定義 ED ハードウェア使用
この機能はAArch64状態のすべての翻訳体制で利用できます。
AArch32状態での変換では、Long記述子変換テーブル形式が使用されます。
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1〜65
ID103018 非機密扱い
ARMv8.2-TTPBHAはARMv8.2 impではオプションです。ただし、実装は
ARMv8.2-TTPBHAでは、両方の実装が必要です。
ARMv8.1-HPD
ARMv8.2-AA32HPD 、例外が発生した場合 EL0 以上ではAArch32を使用できます。
注意
ステージ1の翻訳については、 ページベースのハードウェア属性は、翻訳段階でのみ使用できます。
そのための階層disableフィールドの permissi onの値は1です。
以下のフィールドは、ARMv8.2のサポートを識別します。-TTPBHA:
ID_AA64MMFR1_EL1 .HPDS
ID_MMFR4_EL1 .HPDS
ID_MMFR4 .HPDS。
詳しくは、以下を参照してください。
VMSAのメモリ属性フィールド v8-64の翻訳ンテーブル形式は、記述子
D5-2449ページ
VMSAの属性フィールド v8-32ロングディスクリプタ変換テーブルフォーマットディスクリプタ
ページG5-5486
ARMv8.2-LPA、大PAとIPサポート
ARMv8.2-LPA:
より大きな中級体格cal address (IPA)とP使用時に最大52ビットのスペース
64KBの翻訳単位
ブロックがある場所で、レベル1のブロックサイズを許可64KBの4TBアドレス範囲をカバー
翻訳の場合は実装サポート52ビットのPA.
これはオプション機能であるARMv8.2 implemen タチons。それは
実装DEFINED
実装されています。
この機能はAArch64状態でのみサポートされています
ID_AA64MMFR0_EL1 .PARangeフィールドはARMv8.2-LPのサポートを識別しますA.
ARMv8.2-LPの詳細A、参照:
VMSAアドレス ess型とアドレスD5-2385ページの essスペース
アドレス D5-2399ページの「 essサイズの設定
拡張アドレス D5 ページで 48ビットを超える場合2404
VMSA v8-64変換テーブルレベル0、レベルl 1、andレベル2記述子フォーマットオン
D5-2444ページ
ARMv8変換テーブルでは、D5-2447の 3種類のディスクリプタ形式を使用できます
ARMv8.2-LVA、大Vサポート
ARMv8.2-LVAはより大きいVをサポートしています各TRのためのスペースanslationテーブルBA アップの南東レジスタ 52ビットまで
64KBの翻訳単位を使用する場合
この機能はAArch64状態でのみサポートされています
これはオプション機能であるARMv8.2 implemen タチons。それは
実装DEFINED
実装されています。
もし ARMv8.2-LVA が実装され、次に実装されたトレースmアクロセルは最低限必要ですETMv4.2。
ID_AA64MMFR2_EL1 .VARangeフィールドの識別 ARMv8.2-LのサポートVA.
ARMv8.2-Lの詳細VA、参照:
VMSAアドレス ess型とアドレスD5-2385ページの essスペース
アドレス D5-2399ページの「 essサイズの設定
拡張アドレス D5 ページで 48ビットを超える場合2404
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-66 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
VMSA v8-64変換テーブルレベル0、レベルl 1、andレベル2記述子フォーマットオン
D5-2444ページ
ARMv8変換テーブルでは、D5-2447の 3種類のディスクリプタ形式を使用できます
ARMv8.2-TTCNP、T翻訳テーブルコモン非公開の翻訳ではありません
ARMv8.2-TTCNPは乗算を許可します同じ内部共有可能ドメイン内のe PEで同じものを使用する
特定の段階のアドレス変換用の変換テーブル
この機能はARMv8.2実装では必須です。
この機能はすべてのVMSAで利用可能ですV8-64の翻訳体制とVMSAv8-32の翻訳
Long 記述変換テーブル形式を使用するステージ
以下のフィールドは、ARMv8.2のサポートを識別します。-TTCNP:
ID_AA64MMFR2_EL1 .CnP
ID_MMFR4_EL1 .CnP
ID_MMFR4 .CnP
詳しくは、以下を参照してください。
D5-2510 ページの「一般的な非私用翻訳
VMSAでの一般的な非プライベート翻訳 v8-32 (G5-5533)
ARMv8.2-TTS2UXN、T変換テーブルのステージ2特権のないExecute-never
ARMv8.2-TTS2UXNは、ステージ2の変換テーブルアクセス権を拡張して
メモリが実行可能かどうかそれがEL1で実行可能であるかどうかに関係なくEL0で e
この機能はARMv8.2実装では必須です。
この施設は利用可能ですまたはVMSAの第2段階または第2 段階v8-64とVMSAv8-32
以下のフィールドは、ARMv8.2-TTS2UXNのサポートを識別ます
ID_AA64MMFR1_EL1 .XNX。
ID_MMFR4_EL1 .XNX。
ID_MMFR4 .XNX。
詳しくは、以下を参照してください。
instrのアクセス許可 D5-2461 ページ「関数実行
instrのアクセス許可 uction実行ページG5-5506に
ARMv8.2-デバッグ、ARMv8.2デバッグ
ARMv8.2-Debugが選択をカバー 以下を含む義務的な年齢の
コア電源ドメインに電源が入っている場合
DoubleLockStat米国()
== TRUE、
EDP​​RSR 。{DLK、SPD、PU}のみが許可されています{ UNKNOWN 、0、0}を読みます
Exの定義ception キャッチデバッグイベントがリセットエントリを含むように拡張されます
•All
制約EDの予測不可能 除外イオンを生成する BLE ケース キャッチデバッグイベントは
削除されました。
例外Catcを制御するための制御 EDECCR 追加されましhデバッグイベント生成オン
例外リターン
•All
実装定義 OSLAR_EL1への外部デバッグアクセスの ED 制御
削除されました。
ExternalSecureNoninvasiveDebugEnabled()
カウントのソフトウェア制御を無効にすることはできません
偶然にもセキュア状態のts。
ARMv8.2-Debugのサポートを識別するフィールドは以下のとおりです。
ID_AA64DFR0_EL1 .DebugV erとDBGDIDR .V外傷。
ID_DFR0_EL1 。{CopSDbg、CopDb g}およびID_DFR0 。{CopSDbg、CopDbg}。
EDDEV ARCH .ARCHID。
詳しくは、以下を参照してください。
例外キャッチデバッグイベント オムARMv8.2 (H3-6471)
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1〜67
ID103018 非機密扱い
EDP​​RSR。{DLK、SPD、PU}およびth e CorE電源ドメインページH6-6521に
インタラクションw EL3のi ページ(D6-2545)
外部アクセスが無効になっている(H8-6546)
ARMv8.2-PCサンプル、PC サンプルベースの教授iling
ARMv8.2では、の制御と実装
オプションのPCサンプルベースのプロファイリングエクステントシオン
ED * SRデバッグレジスタからPM * SRレジスタに移動します。パフォーマンスモニタアドレス
スペース。See 章H7 PCサンプルベースのProfiling拡張
これはオプション機能であるARMv8.2 implemen タチons。それは
実装DEFINED
実装されています。
以下のフィールドは、ARMv8.2-PCSampleのサポートを識別ます
EDDEVID .PCSample。
DBGDEVID .PCSample。
EDDEVID1 .PCSROf fset
DBGDEVID1 .PCSROffset。
PMDEVID .PCSample。
ARMv8.2-IESB、暗黙的なエラー同期イベント
ARMv8.2-IESBでは、例外が発生したときに暗黙のエラー同期イベントが追加されました入り口と戻り
追加されたSCTLR_ELx .IESBフィールドによって制御されます。IESBフィールドがESR_ELxに追加されました
シンドローム登録
暗黙のエラー同期イベントは、同じ同期可能非同期イベントに影響します。
によって同期されます
ESB
指示は、信頼性を見ます、Av 可用性とサーブアイスアビリティ(RAS)
A1-74ページの「拡張
この機能はARMv8.2実装では必須です。
この機能はAArch64状態でのみサポートされています
ID_AA64MMFR2_EL1 .IESBフィールドは番目の識別ARMv8.2-IESBのEサポートを。
詳しくは、以下を参照してください。
ARM
®
信頼性、A利用可能性、およびServiceabilのITY(RAS)仕様、ARMv8、
ARMv8-A arチャイテクターe prオイレ
ARM暗号化の拡張hicエクステンション
ARMv8.2-SHA およびARMv8.2-SMの機能の説明を参照にARMv8.2拡張
暗号エクステA1-58 ページの「nsion」を参照してください
追加の要求者ARMv8.2のts
ARMv8.2アーキテクチャ構造はいくつか含まれています 必須の変更帽子は関連付けられていません機能を追加しました。Tヘッセです:
ACTLR2 およびHCTLR2レジスタへの変更
AArch32状態では、ACTLR2 およびHACTLR2 レジスタは必須になります
実装RAS Exteの機能国家
RAS拡張機能を実装する必要あります。信頼性を参照してください、Availabi lityとサービスアビリティ
(RAS)拡張機能(A1-74ページ
ARMv8.2 extの実装追加要件のすべてに準拠している必要があります。nts。そんな
実装時には、com必須のarch itectuに縛られてARMv8.2のすべての機能は、次のとおりです
ARMv8.2アーキテクチャの実装
A1.7.5 ARMv8.3 ar アーキテクチャ拡張
ARMv8.3アーキテクチャextensio nにarchiが追加されました構造的な特徴
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-68 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
建築の特徴 ARMv8.3で追加されました
ARMv8.3拡張機能の実装には、thのすべてを含める必要があります。eの特徴 このセクションでは、
必須そのような道具イオンは、作業者とも呼ばれますARMv8.3アーキテクチャの一部です。
ARMv8.3アーキテクチャ拡張では、以下のアークが追加されています。理想的なものによって明示される
建築の私と短いdをフィーチャー機能の説明:
ARMv8.3-CompNum、SIMD 複素数 サポート
ARMv8.3-CompNumでは、 浮動小数点の乗算と加算
複素数
これらの説明A64およびA32 / T32命令セットに追加されています。
この機能はARMv8.3実装では必須です。
これらの命令の半精度バージョンARMv8.2-FP16 が以下の場合にのみ実装されます。
実装するd。それ以外の場合は
未定義D
その分野ARMv8.3-CompNumの存在を確認するには、以下の手順に従います。
ID_AA64ISAR1_EL1 .FCM A.
ID_ISAR5_EL1 .VCMA。
ID_ISAR5 .VCMA。
詳しくは、以下を参照してください。
SIMD複素数演算(C3-225)
アドバンストSIMD複雑なnumbe rの演算命令 O nページF1-3643
ARMv8.3-JSConv、Javascript 変換命令
ARMv8.3-JSConvには、倍精度からの変換実行する命令が導入されています
符号付き32ビット整数への浮動小数点値ゼロに丸めます。詳しくは、以下を参照してください。
A64命令セット用
C7-1480 ページのFJCVTZS
A32 / T32インストラクション用オンセット
FJ - 4753の「VJCVT」
これらの説明A64およびA32 / T32命令セットに追加されています。
機能は必須ですARMv8.3実装ではory。
その分野PRの識別ARMv8.3-JSConvのesenceのとおりです。
ID_AA64ISAR1_EL1 .J SCVT
ID_ISAR6_EL1 .JSCVT
ID_ISAR6 .JSCVT
詳しくは、以下を参照してください。
浮動小数点変換O nページC3-208
A64 SIMDおよび浮動小数点命令について C7-1268ページ
高度なSIMD命令と浮動小数点命令 E1-3542ページを参照してください
浮動小数点データpr pagの指示を処理すぎて電子F1-3647
ARMv8.3-RCpc、WイーカーrEのリースconsistenc
ARMv8.3-RCpcが3つのinstを発表弱いRelease Consiste ncyプロセッサをサポートするための破壊
並べ替えを可能にする整合性のある(RCpc)モデル負荷の獲得に続くストアリリース
別のアドレスに:
LDAPR C6-847ページを参照してください
LDAPRB ページC6-849に
LDAPRH ページC6-850に
これらは指示するイオンはA64命令セットに準拠しています。
機能は必須ですARMv8.3実装ではory。
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-69
ID103018 非機密扱い
ID_AA64ISAR1_EL1 .LRCPCフィールドを識別しますARMv8.3-RCpcの存在
詳しくは、以下を参照してください。
荷重取得 e、Load-AcquirePCとSトルB2-108ページの「 eリリース
荷重取得 e / Sトルe-Release (C3-182ページ)
ARMv8.3-NV、ネストV初期化
ARMv8.3-NVはサポートを提供します ゲストハイパーバイザーを非セキュアEL1で実行する
Guest Hypervisorはそれを認識していません その例外レベルで実行されています。最新のハイパーバイザーは
HCR_EL2 .E2Hの値に関係なくサポートされます。
この機能はAArch64状態でのみサポートされています
機能は必須ですARMv8.3実装ではory。
ID_AA64MMFR2_EL1 .NVフィールドはARMv8.3-NVのサポートを特定します
詳細については、「D5-2492」のネスト仮想化」を参照してください
ARMv8.3-CCIDX、キャッシュエクステNDEdセット数
ARMv8.3-CCIDXは以下の紹介INGのREGをキャッシュをより詳細に記述できるようにするための要素
集合の数とより大きな連想性:
CCSIDR_EL1の 64ビットフォーマット
CCSIDR2_EL1
CCSIDR2
この機能は、AArch64およびAArch32状態でサポートされています。
この機能はARMv8.3実装ではオプションです。
以下のフィールドはARMv8.3のサポートを識別します。-CCIDX:
ID_AA64MMFR2_EL1 .CCIDX
ID_MMFR4_EL1 .CCIDX。
ID_MMFR4 .CCIDX。
詳しくは、以下を参照してください。
可能 キャッシュのマット サイズ識別レジ立体D4-2355 ページのCCSIDR_EL1
キャッシュの可能フォーマット サイズID 有効化登録レジスター、CCSIDRおよびCCSIDR2 オン
ページG4-5427
ARMv8.3-P認証、ポイント認証誘惑
ARMv8.3-PAuthは、レジスタの内容のアドレス認証をサポートする機能を追加します。
その登録の前にtarはtarとして使用されます間接分岐の g et、または負荷として。
この機能はAArch64状態でのみサポートされています。
この機能はARMv8.3実装では必須です。
ARMv8.3-Pのサポートを識別するフィールド認証はID_AA64ISAR1_EL1 です。{GPI、GPA、
API、APA}。
詳しくは、AArでのポインター認証参照してください。ch64の状態ページで D5-2388
A1.7.6 ARMv8.4 ar アーキテクチャ拡張
ARMv8.4アーキテクチャextensio nにarchiが追加されました構造的な特徴
建築の特徴 ARMv8.4で追加されました
ARMv8.4拡張機能の実装には、thのすべてを含める必要があります。eの特徴 このセクションでは、
必須そのような実装は 実装者とも呼ばれますARMv8.4アーキテクチャの特長
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-70 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARMv8.4アーキテクチャ拡張では、以下のアークが追加されています。理想的なものによって明示される
建築の私と短いdをフィーチャー機能の説明:
ARMv8.4-DIT、データ非依存タイミング命令
データは、PRのARMv8.4-DITは、独立したタイミングを提供WI命令をocessing 添加番目
PSTATE .DITおよびCPSR .DITフィールド
この機能は、AArch64およびAArch32状態でサポートされています。
この機能はARMv8.4実装では必須です。
以下のフィールドはARMv8.4のサポートを識別します。- DIT
ID_AA64PFR0_EL1 .DIT
ID_PFR0_EL1 .DIT
ID_PFR0 .DIT
詳しくは、以下を参照してください。
PSTについて ATE.DITB1-87ページを参照してください
E1ページのDITビットについて 3540
ARMv8.4-CondM、条件フラグ操作
ARMv8.4-CondMは提供します PSTを操作する命令ATE。{N、Z、C、V}フラグ。
これらは指示するイオンはdded のみ設定A64命令
この機能はARMv8.4実装では必須です。
ID_AA64ISAR0_EL1 .TSフィールドは、PR識別するARMv8.4-CondMのesenceを。
詳細は、C3-200ページのフラグ操作命令」を参照してください
ARMv8.4-RCPC、アンARMv8.4 弱いとhancements リリース一貫性Ncy
ARMv8.4-RCpcは9ビットのスケーリングされていない署名付きのLDAP RおよびSTLRのバージョンを提供します。
即時オフセット
これらは指示するイオンはdded のみ設定A64命令
この機能はARMv8.4実装では必須です。
ID_AA64ISAR1_EL1 .LRCPCフィールドを識別しますARMv8.4-RCpcの存在
詳しくは、以下を参照してください。
ARMv8.4 でのシングルコピーの原子性への変更(B2-93ページ)
非排他的ロードアクイア EとSトルC3-183ページの「 eリリース」の手順
A64命令であること eはH2-6428ページの「デバッグ」状態変更されました
ARMv8.4-LSE、大規模システム拡張
ARMv8.4-LSEではsingle-coに変更が加えられましたでPY ロードとストアのためomicity要件、および
配置を変更すると、荷物や店舗の手入れが必要になります。
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
ID_AA64MMFR2_EL1 .ATフィールドはARMv8.4-LSEのサポートを識別します。
詳しくは、以下を参照してください。
要求する SINGLためements 電子コピー不可分ページB2-92に
境界整列されていないデータアクセス estrictions ページの B2-117
ARMv8.4-TLBI、TLBメンテナンスおよびd TLB範囲命令
ARMv8.4-TLBIはTLBIメンテナンスを提供しますthにまで及ぶ古代の命令e外部共有可能ドメイン
入力アドレスの範囲に適用される TLBI無効化命令
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
フィールドID_AA64ISAR0_EL1 .TLBは、ARMv8.4-TLBIの存在
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-71
ID103018 非機密扱い
詳しくは、以下を参照してください。
におけるTLBのメンテナンス D5-2518ページの構造構文
TLB範囲のメンテナンス手順 D5-2526ページを参照してください
ARMv8.4-TTL、T翻訳T有能レベル
ARMv8.4-TTLはTTLフィールドを以下に提供します。 トランのレベルを示すスレートテーブルウォークホー葉っぱ
アドレスがbのエントリ無効化されました。このフィールドはすべてのTLBメンテナンスで提供されています
指示書でVを取るAまたは IP引数です。
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
フィールドID_AA64MMFR2_EL1 .TTL i存在を特定する ARMv8.4-TTLのバージョン。
詳しくは、以下を参照してください。
におけるTLBのメンテナンス D5-2518ページの構造構文
TLB範囲のメンテナンス手順 D5-2526ページを参照してください
ARMv8.4-S2FWB、S2段目Wを走ったライトバック
ARMv8.4-S2FWBは減少します 追加の必要性lキャッシュ保守管理システム内の機能
データの場所th によって使用されるキャッシュ可能性属性電子ゲスト・オペレーティング・システムのare違う それらから
ハイパーバイザーが期待するもの
この機能はAArch64状態でサポートされています。
この機能はARMv8.4実装では必須です。
ID_AA64MMFR2_EL1 .FWBフィールドは番目の識別ARMv8.4-S2FWBのEサポートを。
詳しくは、以下を参照してください。
メモリ D5-2476 ページの egion属性
ステージ2メモリ egion attr ibutes、EL1&0翻訳regime ページD5-2478で
ARMv8.4-TTST、スモールT変換テーブル
ARMv8.4-TTSTリレーSIZの下限値をXES最大値を増やして変換テーブルの e
のT1SZおよびT0SZフィールドの許容値 TCR_EL1 TCR_EL2 TCR_EL3 VTCR_EL2
VSTCR_EL2
この機能はAArch64状態でのみサポートされています
この機能は、ARMv8.4実装では必須です。ARMv8.4-SecEL2 が実装されています。
ARMv8.4-SecEL2 がnoの場合、この機能はオプションです。実装されています。
ID_AA64MMFR2_EL1 .STフィールドはサポートを識別しますARMv8.4-TTSTの場合
詳しくは、以下を参照してください。
入力アドレス D5-2401の essサイズ
•の概要 VMSAv8- 64 ADDRD5-2415ページの ess翻訳ステージ
ARMv8.4-TTRem、翻訳タブのサイズの変更ルマッピング
ARMv8.4-TTRemはハードウェアの要件
ブロックサイズを変更するときのbreak-before-makeシーケンス翻訳
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
ID_AA64MMFR2_EL1 .BBMフィールドは識別ARMv8.4-TTRemのサポートを。
詳しくは、以下を参照してください。
VMSAのメモリ属性フィールド v8-64の翻訳ンテーブル形式は、記述子
D5-2449ページ
ブロックサイズを変更するためのサポートレベル(D5-2517)
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-72 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARMv8.4-SecEL2、セキュア EL2
ARMv8.4-SecEL2はEL2の実装を許可しますセキュア状態では、セキュア時 EL2が有効
他の安全な翻訳と同じ形式に従う新しい翻訳体制が導入されました
政権。
EL2がAArch32を使用している場合、この機能はサポートされません。
この機能はARMv8.4実装では必須です。
ID_AA64PFR0_EL1 .SEL2フィールドはARMv8.4-SecEL2のサポートを識別します。
詳しくは、以下を参照してください。
V irtualization ページD1-2152で
VMSA v8-64広告ドレス翻訳システムD5-2392ページを参照してください
ARMv8.4-NV、ネストVのサポート強化初期化
ARMv8.4は入れ子の仮想化をサポートしますレジリダイレクトすることションSTERは、それがアクセスに閉じ込められたことになります
代わりにEL1とEL2を使ってメモリにアクセスします。ADDRES S Oメモリアクセス 情報によります
で開催されたVNCR_EL2
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
ID_AA64MMFR2_EL1 .NVフィールドはARMv8.4-NVのサポートを特定します
詳しくは、入れ子のサポートの強化を参照してください。仮想ページD5-2494で
ARMv8.4-IDST、IDスペースTラップ処理
ARMv8.4-IDSTすべてIDへの読み取りアクセスを許可する姉妹スペース時オプションが生成されます。
ESR_ELx でECコードを使用して報告された
0x18
この機能はAArch64状態でのみサポートされています
この機能はARMv8.4実装では必須です。
ID_AA64MMFR2_EL1 .IDSフィールドはARMv8.4-IDSTのサポートを特定します
ARMv8.4-CNTSC、汎用カウンタスケーリング
ARMv8.4-CNTSCでは、メモリマップカウンタモジュールにスケーリングレジスタが追加されています。
報告された基本周波数からスケーリングされるように生成されたカウンタの周波数
カウンターIDメカニズム。
この機能は、AArch64およびAArch32状態でサポートされています。
この機能はARMv8.4実装ではオプションです。
CNTID .CNTSCフィールドはARMv8.4-CNTSCのサポートを識別します。
詳しくは、以下を参照してください。
CNTCR、カウンターコントロール ol I5-6858ページの登録
ARMv8.4 - デバッグ、ARMv8.4デバッグの緩和と拡張
ARMv8.4-デバッグは選択をカバーします 以下を含む義務的な年齢の
フィールドMDCR_EL3 。{EPMAD、EDAD}はNon-seを制御します。デバッグへのアクセスを修正して
PMUレジスタ バスマスターは他のデバッグ認証を担当します。
OSダブルロック機能は
ARMv8.2のオプション 実装するそれ以降
機能ARMv8.0-DoubleLockが導入されました。追加の変更を参照してください
ARMv8.4 (A1-74ページ)
ソフトウェアロックは廃止されました。
非侵襲的デバッグ制御は緩和されています。
デバッグレジスタの セキュアビューと非セキュアビューが有効になります。
ARMv8.4-Debugのサポートを識別するフィールドは以下のとおりです。
ID_AA64DFR0_EL1 .DebugV あー
DBGDIDR .V 外傷。
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1-73
ID103018 非機密扱い
ID_DFR0_EL1 。{CopSDbg、CopDb g}。
ID_DFR0 。{CopSDbg、CopDbg}。
EDDEV ARCH .ARCHID。
詳しくは、以下を参照してください。
H1ページの「外部デバッグコンテキストでのデバッガの定義と概要」 -6412
外部デバッグINTEのデータポートのR ページ H8-6545のアクセス許可の登録
ARMv8.4-Tレース、ARMv8.4 Sel fホストTレースエクステンション
ARMv8.4-Traceは、システムレジスタを介して自己ホストシステムにトレースの制御を追加します
機能は提供します:
例外レベルのコントロールAセキュリティはどこtrエースの生成は禁止されています。
オフセットするかどうかの制御は、トレースinformatで記録したタイムスタンプのために使用されていますイオン。
コンテキスト同期命令
TSB CSYNC
の並べ替えを防ぐために使用することができます
他のアクセスに関する操作アクセスのトレースサムのseシステムレジ姉妹。
ETMアーキテクチャの場合レースユニットはインプですこの機能は必須ですryETM PE
Tレース部 システムレジスタacを実装する必要がありますその管理体制への移行姉妹。別のPE Tならレース
ユニットは実装されています言及した、番目の機能はオプションです。
リセットstPEの食べたPR 番目によって制御される地域ohibited 電子機能は、外部ません
認証信号s。外部トレースコントローラが上書きする必要があります 内部統制
トレースを有効にするリセットからトレースを削除します。これはacです前のトレースアークからのハンガーアーキテクチャとは
後方互換性はありません。
ARMv8.4-Traceのサポートを識別するフィールドは以下のとおりです。
ID_AA64DFR0_EL1 .T raceFilt
ID_DFR0_EL1 .T raceFilt。
ID_DFR0 .T raceFilt
EDDFR .T raceVあー
ID_AA64DFR0_EL1 .T raceVあー
詳しくは、以下を参照してください。
章D3 AAr ch64セルフホストTレース
章G3 AAr ch32セルフホストTレース
ARMv8.4-PMU、ARMv8。4 PMU延長イオン
ARMv8.4-PMUは、上位目標を可能にするためにカウントされたイベントの数を拡張しますのwnビュー
PEの利用利用されているサイクルに加えてリソースを調達します。これにより、
マルチスレッド環境でのイベント。それはまたPMMIR_EL1 PMMIR レジスタを紹介します。
この機能は、AArch64およびAArch32状態でサポートされています。
この機能はARMv8.4実装では必須です。
ARMv8.4-PMUのサポートを識別するフィールドは以下のとおりです。
ID_AA64DFR0_EL1 .PMUV あー
ID_DFR0_EL1 .Perfmon。
ID_DFR0 .Perfmon。
EDDFR .PMUV あー
詳細については、PMUイベントとイベント番号参照してください。D6-2553ページ
ARMv8.4-RAS、ARMv8.4 RASの拡張シオン
ARMv8.4-RASはRAS System Arch itecture v1.1を実装していますそしてのサポートを追加します。
ARMv8.4-DFE
ERR <n> STの単純化ATUS
追加最終エラー<n>MISC <m>ギスターズ。
オプションのRAS共通故障注入モデル拡張。
この機能は、AArch64およびAArch32状態でサポートされています。
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-74 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
この機能はARMv8.4実装では必須です。
以下のフィールドは、サポートまたは部分的なサポートを識別します。ARMv8.4-RASのpport:
ID_AA64PFR0_EL1 .RAS。
ID_AA64PFR1_EL1 .RAS_frac。
ID_PFR0_EL1 .RAS。
ID_PFR2_EL1 .RAS_frac。
ID_PFR0 .RAS。
ID_PFR2 .RAS_frac。
ARMv8.4-DFE が実装されていない場合ERRIDR_EL1 .NUMがゼロの場合、
ID_AA64PFR0_EL1 .RASとID_PFR0 .RASは
定義された実装
0b0001
または
0b0010
詳しくは、以下を参照してください。
信頼性 、A利用可能性、そしてServiceability(R AS)拡張
ARM
®
信頼性、Aベイル能力、およびServiceability (RAS)仕様、ARMv8、
ARMv8-A arチャイテクターe prオイレ
ARMv8.4-DFE、ARMv8.4ダブレット障害拡張
ARMv8.4-DFEには2つの制御があります。
SCR_EL3 .E ASE。
SCR_EL3 .N MEA
この機能はAArch64状態でのみサポートされています
EL3の場合、この機能はARMv8.4実装では必須です。が実装され、EL3が使用する
AArch64 それ以外の場合は実装されていません。
この機能は ID_AA64PFR0_EL1 .RASの場合に実装 > =
0b0010
そしてその実装
AArch64を使用したEL3が含まれます。
詳しくは、以下を参照してください。
信頼性 、A利用可能性、そしてServiceability(R AS)拡張
ARM
®
信頼性、Aベイル能力、およびServiceability (RAS)仕様、ARMv8、
ARMv8-A arチャイテクターe prオイレ
の追加変更 ARMv8.4
ARMv8.4アーキテクチャにはsomが含まれています変更は関連付けられていません。 ARMv8.4の機能を備えています。
ARMv8.0-DoubleLockの必須機能は導入されており、ARMv8.2からダブルロックは
オプションです。
ID_AA64DFR0_EL1 .DoubleLockフィールドがあることを識別するOSダブルロックが実装されています。
A1.7.7 Reliability、アバイ怠惰、およびServiceability(RAS)拡張子
RASエクステンションは、 ARMv8.2アーキテクチャ、およびオプションの拡張
ARMv8.0およびARMv8.1アーキテクチャ。
RASエクステンション以下を提供することによってシステム
信頼性つまり、 正しいsの連続性サービス。
A利用可能性つまり、正しいサービスを受けるための準備です。
Servicea胆汁、t帽子は、能力 修正を受ける 修理します。
AArch64 状態の場合はID_AA64PFR0_EL1 .RAS、AArch32状態の場合はID_PFR0 .RAS。
拡張機能が実装されています。
RAS拡張は新しいbを導入します研arrier ruction、エラーS ynchronizationバリア(
ESB
)、A32、T32、
A64命令セット。
RAS拡張によって導入されたシステムレジスタについては、以下で説明します。
AArch64の場合、RAS rD1ページの egisters2-3404
AArch32の場合、RAS rG8ページの egisters-6311
A1はじめにARMv8アーキテクチャ
A1.7 ARMv8アーキテクチャ拡張
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。A1〜75
ID103018 非機密扱い
さらに、RAS拡張機能には、多数のメモリマップドレジスタが導入されています。s。これらARMで説明されています
®
信頼性、A利用可能性、および保守性(RAS)仕用カチオン、ARMv8、ARMv8-ARアーキテクチャprオイレ
ARMv8.2では、RAS拡張機能に以下のアーキテクチャ機能が導入されています
ARMv8.2-IESB
ARMv8.4では、RAS拡張機能に以下のアーキテクチャ機能が導入されています
ARMv8.4-RAS
ARMv8.4-DFE
A1.7.8 ザ・S統計プロファイリング拡張(SPE)
S統計プロファイリング拡張 optionaのあるLARMv8.2アーキテクチャによって導入された拡張
Sの実装tatistical Pr ofiling Extensionは、少なくともARMv8.1の実装を必要とします。
ARMv8アーキテクチャの概要 The統計プロファイリング拡張機能はAArch64状態でのみサポートされています。
S統計プロファイリングEx張力を使用してソフトウェアとハ​​ードウェアをサンプリングする非侵襲的方法を提供します。
命令セットarchで定義されているようにどちらかのアーキテクチャー命令のランダムサンプリング繰り返し、または
マイクロアーキテクチャー手術
ID_AA64DFR0_EL1 .PMSVerは統計Pr拡張機能が実装されています。
詳細については、章D8 The Sを参照してください。統計Pr拡張機能
A1.7.9 スケーラブルV エクステンションエクステンション(SVE)
スケーラブルVector Extensionは、ARMv8.2アーキテクチャによって導入されオプションの拡張子です。SVEはサポートされています
AArch64状態のみ
スケーラブルVエクター拡張は提供し、primarilベクトル命令YをサポートwidARMよりもerのベクトル
アドバンストSIMD計測器設定セット。ARM
®
Arチャイテクターe参照マニュアルの補足、The Scalable Vエクター
ARMv8-Aの拡張機能(SVE)では、SVEについて説明しています。
ID_AA64PFR0_EL1 .SVEはScalかどうかを示します有能なVエクステンションが実装されています。
スケーラブル Vエクステンション愛情いくつかのAArch64 System レジスタ、およびt registerレジスタの変更は、
このマニュアルの今号では、SVEの特徴として識別さます。SVEはまた新しいを紹介しますAArch64システム
ただし、このマニュアルには記載されてません。形成についてもっと新しいシステムレジスタ
SVEによって導入された、pl簡単に見て ARM
®
Arチャイテクターe参照マニュアル補足、The Scalable Vエクター
ARMv8-A用の拡張機能(SVE)
スケーラブルVエクステンションは以下のシステムを導入します。エジスター:
ID_AA64ZFR0_EL1。
ZCR_EL1、およびこのレジスタの EL2エイリアス、ZCR_EL12。
ZCR_EL2。
ZCR_EL3。
スケーラブルVエクステンション修正以下の既存のシステム・レジスタ:
CP ACR_EL1
CPTR_EL2
CPTR_EL3
ESR_ELx
ID_AA64PFR0_EL1
TCR_EL1
TCR_EL2
A1.7.10 ザ・活動Monitorsエクステンション
Activity Monitors Extensionは、ARMv8.4アーキテクチャによって導入されたオプションの拡張機能ですAMUは
AArch64 およびAArch32状態でサポートされています。
A1 ARMv8アーキテクチャの紹介
A1.7 ARMv8アーキテクチャ拡張
A1-76 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
Activity Monitors Extension は、Activity Monitors architのバージョン1 実装しています。講義、AMUv1、
に似た機能を提供します。 既存のPerformance Monitors Extension機能のサブセット、のために意図された
デバッグやプロファイリングではなくシステム管理の使用
アクティビティモニタs Extensionはシステム登録者interを実装します。Activity Monitors登録に直面するrs、そしてまた
オプションの外部メモリマップインターフェースをサポートします。
フィールドthプレを識別でActivity Monitors Extensionの意味は次のとおりです。
ID_AA64PFR0_EL1 .AMU。
ID_PFR0_EL1 .AMU。
ID_PFR0 .AM U.
EDP​​FR .AMU。
詳細については、章D7 Aを参照してくださいアクティビティモニターEx緊張
A1.7.11 メモリPartitioに モニタリングとモニタリングの拡張(MP)AM)
メモリパーティショニングとMonitoのリング拡張はオプションの元であるtensioARMv8.4で導入されたn
アーキテクチャと本質的な要素が必要ARMv8-Aアーキテクチャプロファイルの少なくともARMv8.2の定義MPAMは
AArch64状態でのみサポート
MPAM Extensionは、1つ以上のパーティションを分割するメモリシステムコンポーネントコントロールのためのフレームワーク提供します。
コンポーネントのパフォーマンスリソース
フィールドthプレを識別でMPの意味AM Ext次のとおりです。
ID_AA64PFR0_EL1 .MP AM
EDP​​FR .MP AM
詳細については、ARMを参照してください。
®
Ar建築 参照してくださいマニュアルの補足、メモリシステムのリソースce
パーティショニングとモニタリング(MP)AM)、ARMv8-A用
パートB
AArch64アプリケーションレベルアーキテクチャ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B1-79
ID103018 非機密扱い
チャプターB1
AArch64アプリケーションレベルプログラマモデル
アプリケーションファイルについて velプログラマのmoデルページB1-80に
AArのレジスタ ch64 実行状態(B1-81ページ)
ソフトウェア 電子制御オールフェザーESとEL0 ページB1-86に
B1 AArch64アプリケーションレベルプログラマのモデル
B1.1アプリケーションレベルプログラマについて モデル
B1-80 著作権©2013年から2018年ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B1.1 アプリケーションレベルプログラマモデルについて
この章には彼はPROGRA mmers'モデルの情報が必要なアプリケーション開発のためのDを。
番目の情報章はシステム情報とは異なるED SEにrviceとサポートアプリケーション
オペレーティングシステム、またはより高いレベルのシステムソフトウェアの下での実行しかしながら、いくつかのシステムの知識
アプリケーションレベルのプログラマのモデルをコンテキストに入れるためには情報が必要です
実装の選択に応じて、アーキテクチャは複数レベルの実行特権をサポートします。
EL0からEL3まで上方向に番号が付けられているさまざまな例外レベルによって示されます。EL0は最も低いレベルに対応します
特権レベルであり、しばしば非特権dとして記述されます。アプリケーションレベルのプログラマモデルは
実行するソフトウェアのプログラマモデルEL0。詳しくは、例外を参照してください。レベルページD1-2146で
システムソフトウェアがEを決定しますxceptionレベル、したがってthソフトウェアが実行される特権のレベル。いつ
オペレーティングシステムがEL1とEL0の両方での実行をサポートしている場合、通常はアプリケーションが実行されます。EL0では特権がありません。この:
オペレータを許可するシステムリソースを割り当てるatingシステム独自の方法または共有された方法でアプリケーションにアクセスする
他のprocesseからの保護の度合い提供Sを、そしてその保護に役立ちますからオペレーティングシステムを
ソフトウェアの誤動作
この章では、システムレベルの理解が必要な箇所について説明します。そして、それが関連するところでは参照を与える
システムレベルの説明へ。
EL0より上の任意の例外レベルでの実行は、特権付きと呼ばれることがよくあります。実行。
システムレベルの詳細情報アーキテクチャのエルビューを参照してください章D1 ザ・AARch64 SyをSTemレベル
Prプログラマの モデル
B1 レベルプログラムのAArch64アプリケーションランマーズモデル
B1.2 AArch64実行状態のレジスタ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B1-81
ID103018 非機密扱い
B1.2 AArch64実行ステーションのレジスタ食べた
このセクションでは、AA rch64状態で実行しているときにEL0で表示されるレジスタとプロセス状態について説明します。それは含んでいます
以下:
AArのレジスタ ch64状態
Pr 超過状態、PSTAB1-82ページの TE
システムr B1-84 ページの egisters
B1.2.1 AArch64 stのレジスタ食べた
AArch64アプリケーションレベルではvi ewArm Proce ssing要素は、
R0〜R30 31本の汎用レジスタ、R0〜R30。各レジストリ terは次のようにアクセスできます。
X0〜X30という 64ビット汎用レジスタ。
W0〜W30という 32ビット汎用レジスタ。
図B1-のレジスタ名のマッピングを参照してください。1
B1-1一般puレジスタ登録なし
X30汎用レジスター手続き呼び出しリンクレジスタ
注意
命令エンコーディングでは、値
0b11111
(31)は示すために使用されます ZR(ゼロレジスタ)この
引数がゼロの値をとることを示しますが、ZRが実装されいることを示すものではありません
物理レジスタとして
SP 64ビット専用Stac kポインタレジスタスタックポインタの最下位32ビットは
アクセスしたviレジスタnアメWSP
命令内のオペランドとしてのSP の使用は、現在のスタックポインタの使用を示します。
注意
スタックポインタ整列16バイト境界への変更はc onfです。EL1で点火可能。詳細については
Pr手首e Sに電話するタンダルArm 64ビットArの場合 dchitecture
PC 64ビットプログラムカウンタ 現在の命令のddress。
ソフトウェアに直接書き込むことはできません。 パソコン それ分岐、例外エントリ、または更新時にのみ更新できます。
例外リターン
注意
A64の命令を実行しようとしていますあるンワード境界で整列生成しないのPCのアライメントフォルト、
参照PCアライメントチェックページD1-2164に
V0〜V31 32個のSIMD&FPレジスタ、V0〜V31。レジスターは受諾可能 として設定:
Q0〜Q31という名前の128ビットレジスタ。
D0からD31までの64ビットレジスタ。
S0〜S31という名前の32ビットレジスタ。
H0〜H31という16ビットレジスタ。
B0〜B31という8ビットレジスタ。
128ビットの要素ベクトル。
63 32 31
0
Rn
Wn
Xn
B1 AArch64アプリケーションレベルプログラマのモデル
B1.2 AArch64実行状態のレジスタ
B1-82 著作権©2013年から2018年ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
64ビットの要素ベクトル。
記述されているビット数 レジでSTER名全体SIMD&FPを占有しません。
登録、それを指します最下位ビット Se電子図B1-2
図B1-2 SIMDと浮動小数点ntレジスタの命名
データ型の詳細サポートされているデータ型を参照してください。 A1-39 ページを参照してください
FPCR、FPSR T SIMDと浮動小数点制御および状況レジスタ、FPCR およびFPSR
命令処理と例外処理のためのレジスタを参照してください。 D1-2155ページ の詳細については
登録s。
疑似コードの記述AArch64 stのレジスタ数n食べた
レジスタにアクセスする擬似コード関数では
割り当て形式はレジスタ書き込みに使用されます。
レジスタ読み出しのための未割り当て。
の用途
X []
機能は次のとおりです。
nを 使用して必要なインデックスを作成する、 X0〜X30の読み取りまたは書き込み登録
ゼロレジスタZRの読み取り としてアクセス
X [31]
注意
擬似コードの使い方 ゼロ登録を表すX [31]の意味は、 そのハードウェアはこれを実装する必要があります
登録
AArch64
SP []
関数は現在のSPを読み書きするために使用されます
AArch64
パソコン[]
機能はPCを読むのに使用されています。
AArch64
V []
機能はアドバンストSIMDとfloa読み取りまたは書き込みに使用されティン小数点レジスタ使用して、S V0-V31を
パラメータ
n
必要なレジスタにインデックスを付ける
AArch64
Vpart []
関数を使って読みますまたは次のいずれかのパラメータを書く V0〜V31、パラメータを使用
n
インデックスを作成する
必要な登録およびパラメータ
の必須部分を示す 登録してください。 の機能の説明
詳しくは。
SP []
パソコン[]
V []
、そして
Vpart []
関数はJ章で定義されています1 ARMv8疑似コード
B1.2.2 プロセス工程食べた、PSTATE
プロセスst食べたりPSTATEは形成過程におけるプロセス状態の要約です。構造体セットのすべてが提供します
その命令PSTの要素を食べATE。
127 64 63 16 1532 31 7 08
Vn
Bn
Hn
Sn
Dn
Qn
B1 レベルプログラムのAArch64アプリケーションランマーズモデル
B1.2 AArch64実行状態のレジスタ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B1-83
ID103018 非機密扱い
次のPSTATEの情報■EL0でアクセス可能:
条件フラグ
フラグ設定命令sを設定します。彼らです:
N 否定条件フラグ。命令の結果が考慮される場合 2のように
符号付き整数を補完する PEはこれを次のように設定します。
結果が負の場合は1。
結果が正の場合は0 またはゼロ
Z ゼロ条件フラグ。に設定:
指示の結果が1の場合イオンはゼロです。
それ以外の場合は0。
ゼロの結果 同じ結果を示すことが多い 比較から。
C キャリーコンディションフラグ。に設定:
instの場合は1破裂はキャリーコンをもたらすdition、例えば符号なしオーバーフロー
それは加算の結果です。
それ以外の場合は0。
V オーバーフロー条件フラグ。に設定:
符号付きなど 、命令の結果がオーバーフロー状態になる場合は1
加算の結果であるオーバーフロー。
それ以外の場合は0。
条件付き命令は、N、Z、C、およびV条件フラグをテストしますそれらをCondition組み合わせます
命令のコードかどうかを判断する 命令は 実行されました。この方法では
命令の実行は、前の操作の結果を条件とします。多くのための
条件付き執行に関する情報条件フラグとrを参照してください。得意の指示
C6-689ページ
例外マスキングビット
D デバッグ例外マスクビット。EL0がenabの場合 マスクビットを変更するためにつながった、このビットは
表示され、変更することができます。しかしながら、このビットはアーキテクチャですEL0では無視されます。
SError割り込み マスクビット
私は、割り込みマスクビットをIRQ。
F FIQ割り込みma SKビット。
ビットごとに、値は:
0 例外はマスクされていません。
1 例外がマスクされました。
使用EL0にアクセスAArch64状態が依存するSCTLR_EL1 .UMATを参照EL0のEL1へのラップ
へのアクセス PSTATE。{D、Aは、I、Fは}マスクを中断ページD1-2212で
プロセス状態、PSTを参照してください。Aシステムレベルのビューについては D1-2161ページの TEPSTATE
B1 AArch64アプリケーションレベルプログラマのモデル
B1.2 AArch64実行状態のレジスタ
B1-84 著作権©2013年から2018年ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
PSTへのアクセスAEL0のTEフィールド
AArch64状態を使用しているEL0、PSTATE フィールドにアクセス可能直接使用できる特別な目的のレジストラを使用する
MRS 命令でリードし、MSR(レジスタ)命令で直接ライトイオン。T有能なB1-1
PSTにアクセスする専用レジスタAPEがEL0にあるときにAArch64状態を保持する TE フィールド
AArch64 他のすべてのPSTATE フィールドは、EL0で直接の再書き込みおよび書き込みアクセスを持ちません
ソフトウェアはMSR(即時)命令を使用して直接書き込むこともできます。PSTATE 。{D、A、私、F}。T有能なB1-2 shows
MSR(immedia)te)直接 PSTに書き込めるオペランドATE 。{D、A、私、PEがAArch64を使用してEL0にある場合
状態。
しかしながらPSへのアクセスTATE 。{D、A、I、F} fiELでELDのAArch64状態を使用して0に依存 SCTLR_EL1μ
TPSTへのEL0アクセスのEL1へのラップATE{D、A、I、F}割り込みマスクD1-2212ページを参照してください
WPSTに儀式ATE フィールds持っている サイドevの影響PE動作のrious態様。すべてのサイドエフ実は、
保証:
初期には見えないようにする実行ストリーム内のr命令。
To 実行ストリームで後でイオンを指示するために表示されます。
B1.2.3 システムレジスタ
システムレジスタは、実行制御、ステータス、および一般的なシステム設定をサポートします。大多数
システム登録にアクセスできない EL0。
しかしながら、いくつかのシステムレジスタはからのアクセスを許可するよう設定できます。ソフトで実行ウェアEL0。任意のアクセス
EL0からシステムレジスタのwiにAC番目無効にすると無効になりますふるまい
未定義D
EL0からアクセスできるレジスタは次のとおりです。
キャッシュIDegisters CTR_EL0 DCZID_EL0 レジスタはimplemen提供tationパラを EL0のメートル
キャッシュ管理サポート。
デバッグレジスタデバッグ協力を 通信チャネルはMDCCSR_EL0 DBGDTR_EL0
DBGDTRRX_EL0 およびDBGDTRTX_EL0 レジスタ。
パフォーマンスモニタレジスタ
Performance Monitors Extensionには、カウンタと構成レジスタがあります。
EL1 以上の例外レベルで実行されているソフトウェアが混乱する可能性があります。これらのレジスタのいくつかを見る
EL0でアクセス可能にする。
詳細については、 章D6 パフォーマンスモニタ拡張
Activity Monitorsレジスタ
Activity Monitors Extension は、カウンタと設定レジスタを提供しますソフトウェア
EL1以上の例外レベルで実行すると、これらのレジスタをアクセス可能に設定できます。
EL0で。
TabルB1-1 PSTにアクセスするAMRSとMSRを使用したEL0のTEフィールド(レジスタ)
専用レジスター PSTATEフィールド
NZCV N、Z、C、V
DAIF D、A、私 、F
T有能なB1-2 AccPSTを発行AMSRを使用してEL0で TE。{D、A、I、F}(即時)
オペランド PSTATEフィールド ノート
DAIFSet D、Aは、I、Fは、 直接のいずれかを設定しますPSTATE 。{D、A、私、F}ビットから1
DAIFClr D、A、I、F は、のいずれかを直接クリアします。PSTATE 。{D、A、私、F}ビットを0に
B1 レベルプログラムのAArch64アプリケーションランマーズモデル
B1.2 AArch64実行状態のレジスタ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B1-85
ID103018 非機密扱い
詳細については、 章D7 アクティビティモニターExt次元
スレッドIDegisters TPIDR_EL0 TPIDRRO_EL0 レジスタはdifを持つ2つのスレッドIDレジスタです。激しい
アクセス権。
タイマーrレジスタARMv8では、以下の操作が実行されます。
CNTFRQ_EL0を使用 したシステムカウンタクロック周波数への読み出しアクセス
物理および仮想ティムERコCNTPCT_EL0 およびCNTVCT_EL0レジスタなし
物理アップカウント比較、ダウンカウント値、およびタイマ制御レジスタ
CNTP_CVAL_EL0 CNTP_TVAL_EL0 、およびCNTP_CTL_EL0
V実際のアップカウント比較、ダウンカウント値、タイマー制御レジスタ
CNTV_CVAL_EL0CNTV_TVAL_EL0 、およびCNTV_CTL_EL0
B1 AArch64アプリケーションレベルプログラマのモデル
B1.3ソフトウェア制御機能とEL0
B1-86 著作権©2013年から2018年ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B1.3 Sofウェア制御機能とEL0
以下のセクションでは、ARM v8ソフトウェア制御機能のEL0ビューについて説明します。
例外処理
W 割り込みとWのためのAITイベントを待ちます。
YIELD命令
アプリケーションleveののLキャッシュ管理ページB1-87に
説明書r デバッグの開始ページB1-87
B1.3.1 例外処理
アームアーキテクチャでは、 例外 プログラムフローの変更を引き起こす元の実行停止ハンドラが開始します。
定義からEL0より高い例外レベルに関するDベクター取ら例外に。
例外は次のとおりです。
割り込み
メモリシステムが中断します。
att によって生成された例外実行する ある命令
未定義D
システムコールs。
セキュアモニタまたはハイパーバイザトラップ。
例外をデバッグします。
例外処理のほとんどの詳細はアプリケーションレベルには見えませんlソフトウェアであり、第D1章で説明されています。
AArch64システムレベルl Prプログラマの モデル
SVC
命令はSupervisoを引き起こしますRのコール例外。これは特権のないソフトウェアにメカニックをもたらす。
システムをcalにするオペレーティングシステムにl。
BRK
命令はブレークポイント命令exを生成します中止。これは、 デバッグ
同じPE上でデバッガ実行を使用するソフトウェアBrを参照オークポイント私命令エクセレンスptions ページD2-2294で
注意
BRK
命令はサポートされています A64命令セットで。同等の楽器T32とA32の
命令セットは
BKPT
B1.3.2 WInterr uptを待ち、前夜を待ちますnt
を発行
WFI
命令は、fuがないことを示しますWFIまではさらに実行が必要ウェイクアップイベント発生rs、Wを参照イト
D1-2258ページの「割り込み」の場合これは低電力への参入を許可する状態。
を発行
WFE
命令はそれ以上の実行を再されていないことを示すWFEウェイクアップイベントが発生するまでquiredを参照してくださいWaは トン
イベントメカニズムのためとイベントを送信ページD1-2255 これにより、低電力状態への移行が可能になります。
B1.3.3 YIELD命令
産出
命令は、スレッドによって実行されたタスクがインポが低いというヒントを提供します。それが共同するようにrtance利回り、
C6-1266ページのYIELD」を参照このメカニズムを使用すると、システム全体のパフォーマンスを向上させることができます。対称
マルチスレッドイージング(SMT)または対称型マルチプロセッシング(S)MP)システム
ときの例
産出
命令m使用することがありますスレッドがsp ロック状態にあるか、または
スヌープビットの調停優先度SMPシステムが変更されました。
産出
命令はバイナリを許可します
互換性がありますSMTシステムとSMPシステムの間
産出
命令はNOP(No Operation)hint命令
産出
命令はシングルスレッドシステムには効果がありませんが、 そのようなシステムは
flへの指示その意図した用途将来のAMへの移行マルチプロセッサまたはマルチスレッドシステムメートル。オペレーティング
システムは使用することができます
産出
利回りのヒントが必要な場所で、存在しない場合はNOPとして扱われることを知っている
実装上の利点
B1 レベルプログラムのAArch64アプリケーションランマーズモデル
B1.3ソフトウェア制御機能とEL0
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B1-87
ID103018 非機密扱い
B1.3.4 アプリケーションレベルのキャッシュ管理
少数のキャッシュ管理命令を使用して、より高いレベルの特権から EL0でsを有効にすることができます。
SCTLR_EL1 システム登録terEL0からオペラへのアクセスアクセス権付き 無効にすると
として振る舞うための指示
定義されていません
利用できる操作については「キャッシュ関連機能へのアプリケーションレベルのアクセス」(B2-1ページ)を参照してください。13
B1.3.5 関連する 指示デバッグ
B1-86 ページの「例外処理
BRK
ブレークポイント命令例外を生成する命令。
さらに、AArch64 状態とAArch32状態の両方で、
HLT
指示書PE 使用して実行を停止し、
デバッグ状態 これはmechanisの提供私たちはソフトウェアのデバッグ用メートルINGのを PEの外部にあるデバッガ。
チャプテr H1 外部デバッグについて
注意
AArch32状態では、アーキテクチャの以前のバージョンでは
DBG
指示、thaトンのクーロンのdがへのヒントを提供します
デバッグシステム ARMv8では、この命令は次のように実行されます。
NOP
ARMはの使用を非難します
DBG
命令。
B1.3.6 PSTについてATE.DIT
PSTの値がATE .DITは1です。
instDITに記載されている破滅 持っている必要があります。
- Tそのレジスタのいずれかで提供さたデータの値、およびその値に依存しないiming
ニュージーランドのCVフラグ
- 非同期例外に対する応答は、それらのいずれかに指定された値に基づいて変化しません。
登録、またはNZCVフラグの値。
すべての負荷店舗には、タイミングを考慮する必要があります。eは、ロードまたは格納されているデータの値になります。
注意
ARMは、ARMv8.3のポインタ認証を推奨しています。ンの命令はありません上の自分のタイミングに依存
ポインターauthで使用されるキー値PSTに関係なくATE .DITビット
PSTの値がATE .DITが0の場合、アーキテクチャは無効になります。のタイミング特性についての注意
説明書 しかしr、 それはこれらの命令ションのHAはそれがinvariあるタイミングVEの多くのsiのデータのアリチューニング。
対応するDITビットがPSTに追加されますAAArch64統計での TEe、およびAArch32状態の CPSR
AArから例外が発生した場合ch64状態からAArch64状態、PSTATE .DIT にコピーされます SPSR_ELx .DIT
AArから例外が発生した場合ch32状態からAArch64状態へ、CPSR .DITはSPSR_ELx .DITにコピーされます
例外がAArch64状態frに戻ったときAArch64状態では、SPSR_ELx .DITがにコピーされます。PSTATE .DIT
例外がAArch32状態frに戻ったときAArch64状態では、SPSR_ELx .DITがにコピーされます。CPSR .DIT
PSTATE .DITは、すべての例外レベルで読み書きできます。
注意
PSTAデバッグ状態に入っても TE .DITは変更されません
PSTATE .DITがデバッグ状態に影響を与えることは保証されていません
B1 AArch64アプリケーションレベルプログラマのモデル
B1.3ソフトウェア制御機能とEL0
B1-88 著作権©2013年から2018年ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-89
ID103018 非機密扱い
チャプターB2
AArch64アプリケーションレベルメモリモデル
この章はアプリケーションを与えますメモリモデルのレベルビュー。それはコンタ以下のセクションで:
ARMの記憶モデルについて B2-90ページを参照してください
•の原子性 アームアークハイテクターB2-92ページの e
定義 AR F MV8メモリモデルページB2-97に
キャッシュとメモリ階層 B2-1 ページの chy11
アライメントのサポートページでB2-1 16
エンディアンのサポートページでB2-1 19
メモリの種類と属性(B2-122ページ)
メモ属性の不一致(B2-132ページ)
シンクロ オン化とセマフォB2-135ページの「 es」を参照してください
注意
この章、システムレジスタ名は通常D12章のレジスタの説明にリンクしていますAArch64システム
例えば、記述の登録SCTLR_EL1
B2 AArch64アプリケーションレベルメモリモデル
B2.1 Armメモリモデルについて
B2-90 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B2.1 Armメモリモデルについて
アームアーキテクチャ弱くて信頼できるメモリアーキテクトです。それは観測値に匹敵するnとの完了
メモリアクセス異なる順序でes プログラムの順序からこの章の以下の節では、
ARMv8メモリモデルの完全な定義であるため、この紹介は定義対比するものではありません。
これらのセクションにあります。一般的には、ARMv8メモリモデルは以下のとおりです。
T同様の弱点持つメモリモデルを提供する。によって使用されるメモリモデルにあるものに当てはまります。
CやJavaなどの高級プログラミング言語。例えば、独立した記憶を許可することによって
他の観察者に見られるように並べ替えるためのアクセス
To 大部分のメモリタイプでマルチコピーアトミック性の要件を回避する
補償するための 命令とメモリバリアの提供マルチコピーアトミック性の欠如
必要な場合
作成時または作成時 にアドレス、データ、および制御の依存関係を使用して、問題を回避します。過剰すぎる
障壁の数またはその他の明示的な指示によっていくつかの順序が要求される状況
プログラマーまたはコンプiler
このセクションtains:
アドレス エスエススペース
メモリタイプの概要
B2.1.1 アドレス空間
アドレス計算は64を使用して実行されます。ビットレジスタ しかしながら、優れたisoryソフトウェアは設定することができます
dとしてタグとして使用するための8アドレスビットAArの住所タグ付けに記載ch64状態ページに D5-2386 これが行われれば、
アドレスビット[63:56]:
アドレスが有効かどうかを 判断するときに考慮されません
プログラムに伝わることはありませんカウンタ
監視ソフトウェアが有効なアドレスを決定します範囲。にアクセスしようとしています無効な ddre ssが生成される
MMUの障害
命令の単純な順次実行sが有効なアドレス範囲をオーバーフローする可能性があります。詳しくは解説、参照
VD4-2351 ページの仮想アドレス空間のオーバーフロー
メモリアクセスは
Mem []
関数。この関数は必要な型のアクセスを行います監視ソフトウェアの場合
タグとして使用するための上位8アドレスビットを設定します。上位8アドレスビットは無視されます。
AccType {}
列挙型は、さまざまなアクセスタイプを定義します。
注意
チャプテ r D4 AArch64システムレベルメモリモデル章D5AArch64 V仮想記憶システム
Arチャイテクターe 透過的なメモリシステム機能の説明を含む彼のアプリケーション、税込おはよう
メモリアクセス、アドレスの翻訳、私メモリのメンテナンス手順、アライメントチェック、および
関連する障害処理 これらのchこれらの操作の擬似コードの説明も含まれます
メモリアクセス関連する 疑似コードについては、「基本メモリアクセス」参照してください。
D4-2380 D4-2381ページの「境界整列されていないメモリアクセス、および D4ページの「境界整列されたメモリアクセス」 -2381
B2.1.2 メモリ種別の概要
ARMv8は、以下の相互に排他的なメモリタイプを提供します
通常これは、一般的に大容量メモリオペラのために使用されるション、両方の読み取り/書き込みNDリードオンリー動作を制御します。
デバイスThe Armアーキテクチャは禁じます s 任意のタイプのデバイスメモリ投機的読み取りこれはデバイスを意味します
メモリの種類は適していますread-senのble属性sitive 場所の。
B2 AArch64アプリケーションレベルメモリモデル
B2.1 Armメモリモデルについて
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-91
ID103018 非機密扱い
ペリフェラルに割り当てられているメモリマップの場所は通常デバイスを編集
メモリ属性
デバイスメモ次のような追加の属性があります。翼効果:
読み書きの集約を防ぎ、維持します。の数とサイズ
指定されたメモリアクセスそうです。参照してください収集B2-128ページ
アクセスの順序を守るアクセスのためのrと同期の要件
単一周辺機器と、の可観測性に関する同期化要件がある場合
1つ以上のメモリw儀式してアクセスを読むs。並べ替えを参照してください B2-129ページ
書き込みがエンドポイント以外で認識されるかどうかを示します見る早い
W儀式謝辞PAGに電子B2-130
通常メモリとデバイスメモリの詳細、 見る メモリタイプと属性(B2-122ページ)
注意
以前のバージョンのArmアーキテクチャは、単一のデバイスメモリタイプとStr ongly-oを定義していました。順序付けられたメモリタイプ。
A 注意してデバイスメモリページB2-126にどのようにこれらのメモリタイプ説明ARMv8メモリタイプへのマップを。
B2 AArch64アプリケーションレベルメモリモデル
B2.2 Armアーキテクチャのアトミック性
B2-92 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B2.2 Armアーキテクチャのアトミック性
アトミックは、メモリの特徴であるとして説明し、アクセス跡見学園女子大学c アクセス アームアーキテクチャー裂け目を指す
2種類の原子性シングルコピーの原子性マルチコピーアトミックArmv8アーキテクチャでは、原子性
メモリアクセスの要件は、メモリの種類、およびアクセスが明示的か暗黙的かによって異なります。それ。にとって
詳しくは、以下を参照してください。
要求する siの要素コピーコピーの原子性
Pr 「シングルコピーアトミックアクセス」(B2-93ページ)の操作
マルチ共同 PYアトミックページB2-94に
要求する 複数コピーのアトミック性対応するs (B2-94ページ)
コンカー 命令の修正および実行B2-94ページを参照してください
メモリタイプの詳細については、「メモリタイプの概要」(B2-90ページ)を参照してください
B2.2.1 シングルの 要件- コピー原子性
明示的なmの場合エモリーはアクセスルExceptionから生成さVEL以下の規則が適用されます。
単一のgeneral-pu をロードするロード命令によって生成された読み取りrposeレジSTERとに整列されます
読み込みサイズ instをructionは、単一コピーがアトミックです。
1つの汎用レジスタを格納し、次のようにアライン されたストア命令によって生成された書き込み
書き込みサイズ構造体はシングルコピーアトミックです。
負荷によって生成される読み取り、その負荷ペア命令2つの一般目的の登録と位置合わせ
各レジスタへの負荷の大きさは扱われ、原子が読み込み2つの単一のコピー、1レジスタごとに
ロードしました。
WSによって生成される儀式引き裂いた2 GE格納ペア命令ネラール汎用レジスタSおよび整列さ
各レジスタの店舗の大きさとして扱われる2つのシングルコピー原子書き込み、ある各レジスタに対して1つの
保存しました。
2つの32ビット量とStの ロードエクスクルーシブペア命令鉱石-のぞく32ビットのusiveペア命令
数量はシングルコピーアトミックです。
排他的ストア/排他的ストアの場合2つの64ビットを使用する tore -E 排他的ペア命令
成功すると、更新中の全メモリ位置の単一コピーのアトミック更新が発生します。
注意
To 2つの64ビット量を自動的にロードし、Load-Exclusiveペアを実行する/ Store -Eの排他的ペアシーケンス
Store-Exclusiveペアが成功したのと同じ値の読み書きから読み込み値を使用します。
Load-Exclusiveペア
変換テーブルを生成歩く変換テーブルENTRの読み取りyは、この読み取りはシングルコピーアトミックです。
•の ために構造体フェッチの意味は、Concurrを参照してください命令の修正および実行
B2-94ページ
64ビット以下の単一の SIMDおよび浮動小数点レジスタへの読み取りuant の大きさに揃えられITY
ロードされる量は、シングルコピーアトミックリードとして処理されます。
WSIMDおよび単一64-biの浮動小数点レジスタからの儀式t以下の量thatはサイズに合わせられます
保管されている数量のうちtrは単一コピーのアトミック書き込みとして扱われます。
要素またはSSIMDとfloating-pを読みますOINの64ビットまたはSMのTレジスタAllerのをELEMそれぞれの場所
要素が番目の大きさに揃えられ、それぞれのEL有し、ロードされているE要素 ementのTRをシングルコピーアトミックとして食べられる
読む。
要素または構造Cture WSIMDからの儀式 そして浮動64ビットまたは小数点レジスタer要素、ここで
各要素は格納される要素のサイズに合わせられ、各要素は単一コピーとして扱われます。
アトミックストア。
B2 AArch64アプリケーションレベルメモリモデル
B2.2 Armアーキテクチャのアトミック性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-93
ID103018 非機密扱い
128ビットVAの SIMDおよび浮動小数点レジスタへの読み込みメモリ内で 64ビット境界で整列さているルー
単一コピーのアトミック64ビット読み取りのペア。
WSIMDとフローティングからの儀式メモリ内で64ビット境界で整列された128 ビットのit値のポイントレジスタが処理されます。
1組のシングルコピーアトミック64ビットとして書き込みます。
他のすべてのメモリアクセスesはバイトへのアクセスのストリームと見なされますbetw NDなしアトミックEENのaccesse
違いferentバイトはarchitによって保証されていますecture。
どのバイトへのアクセスもすべてシングルコピーアトミックです。
注意
AArch64状態では、メモリアクセスはありません DC ZVからAは、1個以上の任意の量の単一コピーの原子性を持ちます。
個々のバイト
によると、se規則、命令が実行される シーケンスとしてアクセスのes、割り込みを含む例外
その後に撮影することができますアクセスされているメモリの種類にかかわらず、nce これらの例外のいずれかが
優先リターンアドレスを使用して返された場合、一連のアクセスを生成し命令は次ようになります。
再実行されたため、例外が発生する前に実行されたアクセスはすべて繰り返されます。Tも見てください割り込みを起こす
または複数のrの間の他の例外D1-2207 ページの「 egister load or store」を参照してください
注意
例外 これらmultipのための行動ルアクセスもsの指示はtを意味します彼らはSではないwri用に適していますテストする
ソフトウェア目的のメモリ 同期
single-cへの変更ARMv8.4でのopyの原子性
ある指示ARMv8.4-RCpcで導入されました。 次の条件に該当する場合、シングルコピーアトミックです。
アクセスされているすべてのバイトが、16バイトに揃えられた同じ16バイトの量の範囲内です。
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
そうでなければ
シングルコピーかどうかを定義した実装 アトミックです。
ARMv8.4-LSE が実装されている場合、すべてのロードとストアは単一です。以下の条件に該当する場合、アトミック電子コピー
本当:
アクセスはtheiに非整列であるRデータサイズが、16-BYTの内に整列されているアリされた電子量16バイトに調整
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
そうでなければ
実装はDEFINED ロードとストアがいるかどうか、単一コピー不可分です。
ARMv8.4-LSE が実装されている場合は、
自民党、
LDNP
、そして
STP
説明書2つの64ビットレジスタをロードまたは格納する
以下の条件に該当する場合、シングルコピーアトミックです。
全体のメモリアクセスは16バイトにアラインされています。
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
ARMv8.4-LSE が実装されている場合は、
自民党、
LDNP
、そして
STP
16バイトを超えないでアクセスする命令はシングルコピーです。
以下の条件が当てはまる場合はatomic です。
アクセスされるすべてのバイトは、16バイトに揃えられた16バイトの量の範囲内です。
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
そうでなければ
実装定義 NED かどうか
自民党
LDNP
または
STP
それを受け入れる指示ssが16バイト未満の場合
シングルコピーアトミック。
B2.2.2 シングルcの性質opyアトミックアクセス
シングルコピーアトミックであるメモリアクセス命令は、以下の特性を有する。
1. 重複する単一コピーのアトミックストア命令のペアの場合重複する書き込みはすべて1つのコードによって生成されます。
店舗の コヒーレンス - 他のストアによって生成された対応する重複書き込みの
B2 AArch64アプリケーションレベルメモリモデル
B2.2 Armアーキテクチャのアトミック性
B2-94 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
2. 単一コピーアトミックロード命令Lについて
1
これは、シングルコピーアトミックストア命令Sとオーバーラップします。
2
のいずれかの場合
Lによって生成された重複読み取り
1
読み取り元Sによって生成された重複書き込みの 1つ
2
それから何もない
Sによって生成された重複書き込みの
2
されているコヒーレンス-た後、対応するoverl appingが発生した読み取り
Lによって
1
詳細については、「ARMv8メモリモデルの定義」(ページB2-97)を参照してください
B2.2.3 複数コピーの原子性
マルチプロセッシングでは システム、メモリ位置への書き込みfo多コピー原子の場合条件が両方である
本当:
•への すべての書き込み同じ場所が直列化されている、つまりobsであることを意味する同じ順序でerved すべての観察者による
一部の観察者は、のすべてを観察しないかもしれません書き込みます。
場所を読むesは書き込みの返さないすべての観察者がその書き込みを観察するまで
注意
コヒーレントではない書き込みは、マルチコピーアトミックではありません。
B2.2.4 マルチコピーアトミック性の要件
通常メモリ用書き込みはマルチスレッドである必要はありません。iコピーアトミック。
デバイスメモリ用書き込みはマルチコピーアトミックである必要はありません
ARMv8メモリモデルはその他です。アトミックコピー詳細については、またはを参照してください。に制約与える
B2-101ページ
B2.2.5の 同時変更と実行 説明書
Armv8アーキテクチャーctureはセットを制限します その指示の することができます ある実行スレッドによって実行される
明示的な同期を必要とせずに、別の実行スレッドによって変更されている
命令の同時修正および実行は、結果として得られる命令の実行につながる可能性があります。行動を起こす
それは、同じ例外レベルから実行される可能性のある命令のシーケンスを実行することによって達成することができる
各命令の場所を除く変更前の変更変更後の指示
B
BL
BRK
HVC
ISB
NOP
SMC
または
SVC
命令。
のために
B
BL
BRK
HVC
ISB
NOP
SMC
、そして
SVC
arの指示アーキテクチャはそれを保証します、の修正後
命令、動作は次のいずれかの実行と一致しています。
命令または最初に取得されました。
変更された命令の取得
1つの実行スレッドが条件付き分岐を変更した場合 などの命令
B
または
BL
他の条件付き命令へ
そして変更は条件フィールドと分岐tarの両方に影響します変更された命令を他の取得、実行する
変更が同期される前の実行スレッドは、以下のいずれかを引き起こす可能性があります。
昔の状態が悪かった新しいターゲットアドレスに関連付けられています。
に関連付けられている新しい条件古いターゲットアドレス
これらの可能性は、条件がブランチへの変更の前後どちらにあっても関係なく適用されます。
命令は、常に 調子。
他のすべての指示については、避けるために
予測不能E またはCONS予測されない行動、指導
変更はそれらがarの前に正確に同期されなければなりません実行されました。必要な同期は次のとおりです。
1. PEをeにすることはできません命令の実行他のPEがtを変更中帽子の指示
2. To変更された命令が観察可能であることを確認する。命令を書いているPEは
以下の一連の指示および操作
; コヒーレンシeデータとインストラクションの例内のアクセスアクセス 同じ内部共有可能 ドメイン。
B2 AArch64アプリケーションレベルメモリモデル
B2.2 Armアーキテクチャのアトミック性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-95
ID103018 非機密扱い
; これを入力<Wt>を含むコード 新しい32ビット命令イオン、
; 開催されるキャッシュ可能なスペースにが指している場所 Xn
STR Wt、[Xn]
DC CVAU、Xn。きれいなダポインティングするVAによるtaキャッシュ統一のt(PoU)
DSB私SH; vを確認データの妥当性 キャッシュから消去
IC IVAU、Xn。無効命令キャッシュby VAからPoU
DSB私SH; cを確認評価の省略イデーション
注意
DC CVAU
メモリーの領域がキャッシュ不可またはWの場合、操作は不要です。ライトスルー
キャッシュ可能
物理メモリの内容が異なる場合マッピング間の相互作用、Vのマッピングの変更に関して Pとして
命令が1つのPEによって同時に変更され、によって実行される可能性があります。別のPE あれば
変更は命令に影響します変更を受け入れることができるとされているもの以外
回避するには同期を使用する必要あります。
予測不能またはCONひずみ予測 BLEの動作
3. マルチプロセッサシステムでは、
IC IVAU
t以内にすべてのPEにブロードキャストされます。H PEの電子内部共有可能ドメイン
このシーケンスを実行しています。しかしながらとき、 実行されているPEなど変更されたインストレーションが観察可能です。
修正された命令は以下を発行しなければなりません。 修正されたプログラムの実行を保証する命令
説明書
ISB ; Syフェッチしたinstをnchronize破裂流
必要な同期操作の詳細については、同期を参照してくださいオニザティオnとcoherencyの問題
データと命令の間のアクセスについて B2-1ページ14
注意
命令フェッチによるメモリアクセスについては、またはを参照してください。dering relations ページB2-100に
B2.2.6 可能な道具でのatomicの使用に関する制限構造体
いくつかの実装ではons、および一部のメモリタイプでは、これらのプロパティ原子性は機能によってのみ満たされる
PEの外側 いくつかのシステムim慰めはしないかもしれませんメモリの全領域に対するアトミック命令
特に、これはに適用することができます:
システムのメモリの任意のタイプのもの ハードウェアキャッシュの一貫性をサポートしていません
デバイス、非C達成可能なメモリ、またはトレアである記憶しない実装では、キャッシュ不可として設定されています。
ハードウェアキャッシュの一貫性をサポート
そのような実装でntations、それはシステムによって定義されます。
atかどうかoma命令はregaではアトミックですメモリにアクセスする他のエージェントへのrd
アトミック命令がotに関してアトミックである場合アクセスする彼女のエージェントSメモRYどのアドレス範囲 または
これが適用されるメモリタイプ。
実装どのメモタイプを扱うかを選択できますキャッシュ不可。
それが反復的に archであるメモリタイプアトミック命令がアトミックであること保証されます。
内部共有可能内側Wライトバック、アウターWライトバックノルム読み取り割り当てのあるalメモリ ヒントとWr繰り返し
割り当てのヒントであり、一時的なものではありません。
外部共有可能、内部ライトバック、外部W儀式バック読む配分のヒントとWノーマルメモリ儀式
割り当てのヒントであり、一時的なものではありません。
アトミックインストラクションが他のエージェントに関してアトミックicではない場合メモリを停止それから アトミックを実行する
そのような場所への指示は持つことができます 次のうち1つ以上の効果
命令がシンクロを生成するnous外部アボート。
インストラクションgenerates システムエロR INTEを急ぎます。
B2 AArch64アプリケーションレベルメモリモデル
B2.2 Armアーキテクチャのアトミック性
B2-96 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
この命令は、データアボートフォルトを使用して報告され実装定義 MMUフォルトを生成します。
ESR_ELx.DFSCのステータスコード=
110101
EL1&0変換レジームでは、原子が以下のメモリタイプのため、構造体はサポートされていません。
translの最初の段階で定義されていますつまり、翻訳の第2段階が有効になっていない場合は、この例外が発生します。
最初のスタッグです中止して連れて行かれる EL1。さもなければ、例外は次の段階の中止であり、そしてEL2に取られる。
inst裂け目として扱われる ある
NOP
inst破裂が行われます、bグアがない私の牧場モリーアクセスは悪かった準備した
他に関して原子的にメモリにアクセスするエージェントこの場合、命令がそう生成する
システムエラー割り込み。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-97
ID103018 非機密扱い
B2.3 ARMv8メモリモデルの定義
このセクションでは、ARMv8メモリモデルでの観察と順序付けについて説明します。それは以下を含みます
サブセクション
場所
または deringと観測ページB2-98に
または 制約をdering ページB2-101に
完了とエンドポイントまたは dering ページB2-102に
メモリバリア(B2-103)
限定または dering regions ページB2-109に
メモリアクセスのエンドポイント順序付けの詳細については、Reorを参照してください。dering ページB2-129に
ARMv8メモリモデルでは、共有可能性メモリはトリビュートは、ハードウェアが必要とする程度示します。
一連のオブザーバ間でメモリの一貫性を確保します。「メモリの種類と属性」(B2-122ページ)を参照してください。
Armv8アーキテクチャは追加のメモリ属性と関連する動作を定義しています。
このマニュアルのシステムレベルの項。見る:
D4 AArch64 システムルVELメモリモデル
D5 AArch64 V仮想記憶システムArチャイテクターe
B2-132ページの「メモリ属性の不一致」も参照してください
B2.3.1 ロケーション
ARMv8メモリモデルは、以下の許可されたシーケンスを抑制するために使用される一連の定義を提供します。
メモリへのアクセスAR Mv8メモリモデルは以下を定義します。
observの順序メモリアクセスの間の異なる観察者
arの順序エンドポイントに到着するメモリアクセスのライバル
記憶アクセスの観察と記憶の到着 を制御するメカニズム
エンドポイントでアクセスします。
場所、メモリ完璧なsとオブザーバ
ARMv8メモリモデルでは、メモリ内の位置について次のように定義されています。
ロケーション
場所は、メモリ内の単一のバイトを指し、
その実行の一部として、命令はメモリ効果を生成するかもしれませんシステム内のオブザーバー
メモリー効果その指示の場所ARMv8メモリモデル専らデfollowi ngの定義
メモリ効果観察者
メモリー効果
命令のメモリ効果は、読み取り、書き込み、またはバリアです。 その効果 命令。のために
メモリにアクセスする命令
Lo ごとに読み取り効果が生成されます。命令によって読み取られるカチオン
書き込み効果Loに対してfectが生成されます命令によって書かれるカチオン
命令はgをすることができます読み取りと書き込みの両方の効果をなくします。
メモリー効果命令の影響私
1
メモリの前にプログラム順に現れると言われています
命令の効果I
2
もし私だけが
1
私の前に起こる
2
プログラム順
ARMv8メモリモデルを説明する目的で、すべての読み取りおよび書き込み効果はアクセスのみ
通常のメモリ共通の共有可能性ドメイン内のカチオンこのセクションが読むことを指すところでは、
書き込みまたはメモリバリアなし 任意の資格、その後、それは対応するメモリに参照されています
効能t。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-98 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
観察者
観察者処理要素、または他の何らかのメモリアクセスを参照するできるエージェント
メモリからの読み書きを生成する
共通のShareabilドメイン
A 一般的な共有プログラムの有効性ドメイン 最小の共有可能性すべてを含むn
Memory efアクティブオブザーバ概要プログラムによって生成されたファクト
B2.3.2 秩序と可観測性
ARMv8メモリモデルでは、メモリアクセスのリングを許可しています。これsec t ionは課される制約を定義します
以下を使用したメモリアクセスの並べ替え
レジスタ値に依存設立する機関あるPEに命令間の時間順序。
ロケーションへのアクセス間の 順序を確立するための順序付け制約
値依存関係を登録する
ARMv8メモリモデルは、follo betw翼の依存関係EENのinstructions:
依存関係を登録する
A から依存関係登録する 最初のデータ値V
1
2番目のデータ値へ V
2
PE内に存在する場合 そして
どちらか一方だけの場合:
レジスタVを保持するために使用される AArc h64ゼロレジスタ(XZRまたはWZR)を除く
1
です
Vの計算に使われる
2
VからRegisterの依存関係がある
1
第3のデータ値Vへ
3
そしてレジスタがあります
Vからの依存関係
3
Vへ
2
データ登録未決
A 最初のデータ値Vからのデータ依存関係の登録
1
2つ目のデータへe V
2
PE内に存在する
以下のいずれかの場合に限ります。
レジスタAArch64ゼロレジスタ(XZRまたは WZR)とAArch32 PC、
Vを保持するために使用されます
1
そして計算に使われますVのn
2
Vとの計算
1
そして
V
2
どちらも含まれていません。
- 条件がd である条件付き分岐Vによって決定
1
- 条件がVによって決定される 条件付き選択、移動、または計算
1
選択、移動、または計算の入力データ値にデータがない場合
Vへの依存
1
VからRegisterデータの依存関係がある
1
三つ目のデータへ 値V
3
、そしてレジスタがあります
Vからのデータ依存
3
Vへ
2
アドレス依存
ADDR読み取りRからの ess依存関係
1
後続の読み取りRへ
2
ある場合に限り存在します
データ値tからデータ依存関係登録する帽子は戻るRによる
1
Rによって使用されるアドレスへ
2
ADDR読み取りRからの ess依存関係
1
次の書き込みWへ
2
もしあればある場合はnly
データ値tからの依存関係の登録帽子が帰ってきたRによるd
1
Wが使用するアドレスへ
2
データ依存
A 読み取りRからのデータ依存
1
次の書き込みWへ
2
存在する場合に限り存在しますあるレジスタ
データ評価からの依存性Rから返されたe
1
Wによって書き込まれたデータ値へ
2
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-99
ID103018 非機密扱い
制御の依存関係
CONTR読み取りRからの古い依存関係
1
次の命令へ
2
以下のいずれかの場合に限り存在します。
•T時間ere ある 返されたデータ値から依存関係登録するRによって
1
で使用されるデータ値へ
交流分枝の評価と私
2
次のいずれかの結果としてのみ実行されます。
その条件付き分岐の考えられる結果。
•T時間ere ある 返されたデータ値から依存関係登録するRによって
1
で使用されるデータ値へ
命令の同期例外の判定I
3
、 そして私
2
プログラムに登場
私の後に注文
3
秩序と可観測性 ある場所で
メモリ効果の上の場所は、以下の関係によって関連しています。
読み取り元
A 読み取り - frオム関係そのクー読み取りと書き込みを同じ 各読み取りがあるような場所
プログラムへの1回の書き込みとペアになります。読み取りR
2
ローカチオン書き込みWから読み取り
1
Rと同じ場所
2
Wからデータを取得
1
注意
Reads-fromリレーションは、書き込みによって満たされた読み取りを示し、書き込まれたものを返します。
データ。
コヒーレンス順序
A コヒーレンスまたはデアごとに、関係場所すべての書き込みに全順序を提供するプログラムで
すべての首尾一貫したオブザーバからその場所へ、starti概念的に初期値を書きます。
注意
Locatiのコヒーレンス順序on は、Locatio への書き込み順序表します。nに着く
記憶
コヒーレンスアフター
書き込みW
2
場所ですCoherその後 - 別の書き込みW
1
次の場合に限り、同じ場所に
W
2
Wの後に順序付けされている
1
コヒーレンスオーダー場所
書き込みW
2
へのアクセスはコヒーレンス後 読み取りR
1
同じの 場所ifおよびoRならnly
1
書き込みWからの読み取り
3
同じ場所と西へ
2
コヒーレンス後W
3
重複アクセス
Tw メモリ効果が重なると、同じロケーションにアクセスする場合に限りますT命令が重複する
生成されたメモリー効果が1つ以上重複している場合に限ります。
観察者
読み取りまたは書き込み RW
1
以下からのオブザーバーれる観測-によって書き込みW
2
次の場合は別のオブザーバから
Wの場合のみ
2
Rの後にコヒーレンスW
1
書き込みW
1
オブザーバーからの観察者による観察 読み取りR
2
Rが異なる場合に限り、異なるオブザーバから
2
Wからの読み取り
1
注意
Observed-by関係は、によって生成されたアクセスにのみ関連します。違う オブザーバーの。
DMB FULL
A
DMB FULL
です
DMB
どちらでも
LD
または
ST
限定子
このセクションが参照する場所
DMB
資格なしで、それはそれのすべてのタイプを指しています
DMB
特定の共有ドメインが定義されていない限り、
DMB
共通共有ドメインに適用されます。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-100 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
に適用されるすべてのプロパティ
DMB
対応するにも適用されます
DSB
関係を注文する
単一のLocationに対する順序関係に加えて、ARMv8メモリモデルも注文を提供します
順序を記述する関係複数の場所メモリー効果の。そのeは次のとおりです。
依存関係順
依存関係クレア外部から見える読み取りと他のMemory efの間の順序発生したファクト
同じオブザーバーによる読み取りR
1
ある依存関係、またはデア編まれた電子読み取りまたはRを書きますW
2
同じから
観察者 Rの場合のみ
1
プログラム順序の前に現れるe RW
2
そして以下のいずれか 事件
適用する:
あるアドレスの依存関係データDEPは、Rさんからの人気
1
RへW
2
•RW
2
令状ですe W
2
そして、RからControlへの依存関係があります。
1
Wへ
2
•RW
2
読み取りRです。
2
プログラムに現れるときに命令によって生成されるか、命令の後にder
3
コンテキスト同期イベントを生成しますそして、RからControlへの依存関係があります。
1
私に
3
•RW
2
令状ですe W
2
後にプログラム順に現れる 読み取りまたは書き込みRW
3
そしてあります
Rからのアドレス依存
1
RへW
3
•RW
2
書き込みWです
2
それはコヒーレンスです - Wの書き込み
3
そして、Controlの依存関係または
Rからのデータ依存
1
Wへ
3
•RW
2
読み取りRです。
2
それは読み込み-から書き込みW
3
そしてあります アドレス依存性またはデータ
Rからの依存関係
1
Wへ
3
原子秩序編まれたe
Load-Exclusive命令とStore-Exclusive命令は、たとえその中でも順序付け保証を提供します。
依存関係がない。読み取りまたは書き込みRW
1
ある原子、またはデア編まれた電子読み取りまたは書き込みRW
2
Rが同じ場合に限り、同じオブザーバからW
1
Rの前にプログラム順に現れるW
2
そしてのどちらか
以下の場合が適用されます。
•RW
1
読み取りRです。
1
とRW
2
書き込みWです
2
そのような R
1
とW
2
原子によって生成される
指示または成功したLo ad-Exclusive / Store-Exclusive指示pa同じにir
場所です。
•RW
1
令状ですe W
1
アトムicによって生成された 命令または成功したSトレ排他ve
命令とRW
2
読み取りRです。
2
AcquireまたはAcquirePCの命令によって生成されます。
Rのような意味論
2
Wからの読み取り
1
詳しくは、Synchrを参照してくださいオン化とセマフォB2-135ページの「 es」を参照してください
バリア前に並べ替え
バリア命令は、前のメモリー効果をサブシーケンスの前に並べるトンのメモリー効果がで生成されたS
同じオブザーバーA読み取りまたは書き込みRW1は、バリアまたはデア編まれた電子読み取りまたは書き込みRW
2
から
同じオブザーバー場合と その場合に限り RW1はRの前にプログラム順に現れますW
2
そして以下のいずれか
ケースが適用されます。
•RW
1
aの前にプログラム順に表示されます。
DMB FULL
または両方のAcquireを使ったアトミックインストラクション
プログラム順で現れるセマンティクスとリリースセマンティクスRW
2
•RW
1
書き込みWです
1
Release semの命令によって生成されます。AnticsとRW
2
読み取りです R
2
Acquireセマンティクスの説明に従って生成されます。
•RW
1
読み取りRです。
1
そして、
—R
1
aの前にプログラム順に表示されます。
DMB LD
それはprogに現れますRの前のラム順序W
2
—R
1
AcquireまたはAcquirePCセマンティクスを持つ命令によって生成されます。
•RW
2
令状ですe W
2
そして、
—RW
1
書き込みWです
1
aの前にプログラム順に現れる
DMB ST
それが現れる プログラム内
Wの前に注文する
2
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-101
ID103018 非機密扱い
- W
2
命令ウィットによって生成されます。h意味論を解放する。
—RW
1
書き込みWの前にプログラム順に現れる
3
以下の命令によって生成されます。
セマンティックの解放sとW
2
あるコヒーレンスは、後にW
3
前に注文
の任意のペア メモリー効果sは、順序付けられたアクセスの連鎖によってリンクできる場合は順序付けされます。
exteと一致実観測読み取りまたは書き込みRW
1
ですまぶしいd - 読み取りまたは書き込みRのW
2
いずれかの場合に限り番目の例を次の電子が適用されます。
•RW
1
される観測-によってRW
2
•RW
1
依存秩序-前RW
2
•RW
1
されるアトミック・注文-前RW
2
•RW
1
されるバリア注文-前RW
2
•RW
1
Rの前に順序付けられた読み取りまたは書き込みの前に順序付けられているW
2
B2.3.3 注文方法c拘束
ARMv8メモリモデルは、Other-multi-copy atomicとして記述されていますその他の定義- マルチコピー
atomicは次のとおりです。
その他の- マルチ- コピーアトミック
ではその他マルチコピーアトミックシステム、それは必要です赤からの書き込み 観察者、観察
異なるent オブザーバは、それにアクセスする他のすべてのオブザーバによって監視されます。コヒーレントに位置それは、
しかしながらそれらを可視化するオブザーバーが自身の書き込みを観察することを許可他に
の観察者システム。
その他、マルチコピーアトミックプロパティARMv8メモリモデルをされて配置することにより、強制の制約
プログラムの実行可能性 THOSの電子の実行くれていますその他の制約順序付けモデルによって与えられる nt sは言われる
されるように、AR構造的に整形式実行可能な実装プログラムの開催は展示のみ許可されています
arch itと一致する振る舞い構造的に整った処刑n:
建築的に整形式
建築家よく整った実行 以下の両方の要件を満たす必要があります。
内部の可視性要件
読み取りまたは書き込みRの場合W
1
読み書きRの前にプログラムorde rに現れるW
2
同じロカ、内部可視性REQuirementはそれを正確に要求しますのe
次のことが当てはまります。
•RW
2
書き込みWです
2
それはRWの後のコヒーレンスです
1
•RW
1
書き込みWです
1
とRW
2
読み取りRです。
2
次のいずれかです。
—R
2
Wからの読み取り
1
—R
2
W 後のコヒーレンスである別の書き込みからの読み取り
1
•RW
1
とRW
2
両方ともRです
1
とR
2
そのようなR
1
書き込みWからの読み取り
3
そして
どちらか
—R
2
Wからの読み取り
3
—R
2
W 後のコヒーレンスである別の書き込みからの読み取り
3
注意
もし ある メモリー効果 M
1
オブザーバからのデータはメモリの前にプログラム順で表示されます。
効果 M
2
同じからのオブザーバー、その後、 M
1
Mの前に発生するように見えます
2
それによって
オブザーバー
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-102 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
外部からの可視性の要求
読み取りまたは書き込みRの場合W
1
以下からのオブザーバーれる順序-前に、読み取りまたは書き込みRW
2
別のオブザーバによる外部可視性の制約intはRを必要としますW
2
ではない
観測されたRW
1
これの意味は その建築家完全に整形式の実行形式イオンはいけません
周期を示す順序付けられた関係の e
注意
もし ある メモリー効果 M
1
オブザーバからの命令別のMemory efの前に順序付けされるフェクトM
2
DIFから知性の低い観測者、そしてM
1
Mの前に発生するように見えます
2
すべてによるオブザーバーの中
システム。
B2.3.4 完了と終了軟膏発注
インタラクショントゥイーンオブザーバーのようでystemはに制限されていませんCOMMの共有のVA経由unication コヒーレントでriables
記憶たとえば、オブザーバは割り込みconを設定できます。トロール別に割り込みを上げるために、ERをオブザーバー
メッセージの受け渡しの形式として。typiこれらの相互作用的には、さらなる薬剤を含んでいるD命令を微調整する
異なる通信リンクを確立するために必要なシーケンスフェレントオブザーバーこれらの形の
相互作用は共有変数と関連して使用されますs、
DSB
命令を使用して順序を強制することができます
それら。
全メモリ用完了規則は次のように定義されます。
•A reある R
1
Lオカレーションシェアリビの完成です以下のすべてが当てはまる場合、tyドメイン。
- thへの書き込み共有可能性ドメイン内のオブザーバによる同じ場所は、Coherence-afterになります。
R
1
- あらゆる翻訳nテーブルが関連するwiを歩く番目のR
1
完成している その共有性のために ドメイン。
•A wrトンe W
1
場所の移動は、次のすべてのフォルダが終了したときに共有ドメインに対して完了します。当然のことながら、
- thへの書き込み共有可能性ドメイン内のオブザーバによる同じ場所は、Coherence-afterになります。
W
1
- 任意のsaへの読み私の場所によってオブザーバー共有性の中でくださいmainはread-fromのどちらかになります
W
1
または書き込み- 書き込みからあるコヒーレンスは、後にW
1
- 任意の翻訳テーブル 書き込みに関連するウォークはそのshに対して完了していますareabilityドメイン。
変換テーブル メモリがアクセスすると、共有ドメインに対するウォークは完了です。ルディング
translのアップデートアクションテーブルエントリ、関連付け翻訳テーブルを見ながらそのために再完成
共有可能性ドメイン、およびTLBが更新されます。
キャッシュメンテナンス1人の共有指導が完了しましたyドメインのメモリ効果
命令は そのシェアを補完する能力ドメイン、および任意 変換テーブルを歩く から生じる
命令は そのために完成 共有性ドメイン。
TLB invalidate命令は すべてのメモリが完了したら完了 TLB entriを使ったアクセスされているES
を無効にしました再完了してください。
キャッシュまたはTLB 管理命令の完了には、次のものが含まれます。afであるすべてのPEでの完了影響を受けた
命令と
DSB
保証するために必要な操作 の可視性 メインtenance命令。
注意
これら 完成は私を支配するそれ、例えば、キャッシュメインテナンス指示t帽子はVによって作動するAからt彼のPoC
暗記後にのみ完了PoCの y が更新されました。
さらにDevice-nGnRnE メモリの場合Locatの読み書きイオンでのメモリマップペリフェラルこと
サイドeを展示効果はcoです読み取りまたは書き込みが両方の場合にのみ完了します。
メモリマップペリフェラルの 状態に影響を与え始める可能性があります。
アルを誘発することができます関連付けられたサイド効果それらがあるかどうか他の周辺機器、PE、またはメモリに影響を与える
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-103
ID103018 非機密扱い
注意
デバイスnGnRnメモリのこの要件は一貫していますメモリアクセスhaで ntヴィングREACは、周辺機器をHED
終点。
周辺機器
このセクションは、メモリマップペリフェラルと、ペリフェラルへの読み書きの合計順序を定義します。
ペリフェラルコヒーレンス順序として定義されます。
メモリマップペリフェラル
メモリマップされた周辺機器はの記憶領域占有IMPLEMENTATION DEFINED サイズ及び
ロード命令およびストア命令を使用してアクセスできますメモリーeメモリマップペリフェラルに最適
ペリフェラルを使用すると、次のような副作用があります。アクションを実行する Vそのarをaluesから読む
メモリマップペリフェラル内のアドレスは、最後に書き込まれたデータ値に対応しない場合があります。
それらのアドレスに。など、メモリー効果メモリマップペリフェラルへのsは、に表示されない場合があります。
読み込み-からか、コヒーレンス順序関係。
周辺コヒーレンスまたはデア
周辺coherまたはデルメモリマップ周辺機器はすべてに全順序で読み込み、
その周辺に書き込みます集会
注意
メモリマップペリフェラルのペリフェラルコヒーレンス順序は、次の順序で行われます。
アクセスが到着する エンドポイント
読み取りまたは書き込みRの場合W
1
そして読み書きRW
2
同じに 周辺機器n RW
1
表示されます
Rの前にペリフェラルコヒーレンスのrを指定するW
2
フォローのどちらかならngケース
適用する:
•RW
1
とRW
2
キャッシュ以外を使用したアクセスabl eまたはデバイス属性とRW
1
です
注文前のRW
2
•RW
1
とRW
2
アクセス可能Device-nGnREを使用する またはDevice-nGnRnE属性とRW
1
Rの前にプログラム順に現れるW
2
帯域外の順序前に
読み取りまたは書き込みRW
1
あるアウトオブバンドかデア編まれた電子読み取りまたは書き込みRW
2
次のいずれかの場合に限り
以下の場合が該当します。
•RW
1
aの前にプログラム順に表示されます。
DSB
実装を開始する命令
定義済み命令間接的にRの生成につながるシーケンスW
2
•RW
1
される順序-前に、読み取りまたは書き込みRW
3
とRW
3
Rの前にバンド外順序付きW
2
もしメモリ効果M
1
読み取りまたは書き込み前に、アウトオブバンド順序付きM
2
そしてM
1
発生しているように見える
Mの前
2
すべてのオブザーバーによる。
B2.3.5 メモリバリア
メモリバリア 命令、または一連の命令に適用される一般的な用語です。同期化を強制する
PEによるイベント retiに関してリングロード/ストア説明書 memによって定義されるオリの障壁 Armv8
アーキテクチャはさまざまな機能を提供します以下を含みます:
荷/保管の順序eの指示
ロード/ストアの完了争い。
コンテキスト同期
以下のサブセクションでは、ARMv8メモリバリア命令について説明します。
命令シンクロ オニゼーションバーier(ISB)(B2-104)
データメモリバリア(DMB) B2-104ページを参照してください
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-104 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
データ同期 B2-106 ページの「 Onization Barrier(DSB)」を参照してください
B2-105の「スペキュレーティブデータバリア(CSDB)の消費
投機的S トルeバイパスバリア(SSBB)(B2-105ページ
物理的な投機的なS t またはeバイパスバリア(PSSBB)(B2-105 ページ
T レースシンクロオニザティオNバリア(TSB CSYNC)ページB2-106の
シャー eabilityとのアクセス制限データバリアオペレーションページB2-107に
荷重取得 e、Load-AcquirePC、そしてStorB2-108 ページの「 eリリース
LoadLOAcquir e、StoreLORelease PAGに電子B2-109
注意
必要な同期に応じて、プロgramはそれ自身でメモリバリア使うかもしれないし、それを使うかもしれない
一般にオンになっているキャッシュ保守およびメモリ管理命令と組み合わせて利用可能
ソフトウェアの実行がEL1以上の場合
DMB
そして
DSB
指示af読み書きメモリシステムへのes生成ロード/ストアによるd破綻とデータ
または統合キャッシュ管理PEによって実行されているインストラクションイオン取得を指示するまたはによって引き起こされるアクセス
ハードウェア翻訳テーブルアクセスに 明示的なアクセントではないsses
命令同期イオン化バリア(ISB)
ISB
命令は、後にくるll命令
ISB
プログラム順の命令は、
キャッシュまたはメモ後にry
ISB
命令は完了しました。を使う
ISB
確実にの影響
以前に実行されたコンテキスト変更操作
ISB
目に見えるeの後にフェッチされた命令
ISB
命令。
コンテキスト変更操作の例ことrequirの挿入
ISB
守るための指示の効果
操作はvisibです後に取得された inst ructionsへのル
ISB
指示は次のとおりです。
完成したキャッシュとTLB maメンテナンスの指示
システムレジスタへの変更。
プログラムordに現れるすべてのコンテキスト変更操作後にえー
ISB
命令のみ 効く 後に
ISB
実行されました。
の操作のための擬似コード関数
ISB
です
命令同期ronizationBarrier ()
Memも参照してください。オリフィスバリア(D4-2)382
データメモリバリア(DMB)
DMB命令はメモリバリアですより前にメモリアクセスの相対順序を保証する
メモリアクセスの障壁 バリアの後構成中のDMBは、以下のいずれかの完了を保証するものではありません。
相対順序を保証するメモリアクセス
DMBの完全な定義は正式に tの定義AR Mv8メモリモデル(B2-97ページ)
このDMB命令の紹介は意図したものではありません。cont そのセクションを放棄します。
基本校長DMB命令のeは、注文を導入することです指定されているメモリアクセス
DMB命令に引数として提供されたDMBオプションの影響を受けるします。DMB命令は、そのすべて
tによるメモリアクセスへの影響PE実行者DMBの前のDMBがプログラムの順序で表示されます。それらの
これは別のPEから発生したものです。電子NT DMBのオプトによって要求されているイオン、観測-で
DMBが実行される前のPEされている観測-により各PE、エクステント再へ帖のD DMBオプションによって、任意の前に
影響を受けるメモリアクセスthプログラムに登場 DMBの後の注文観察-によってそのPE。
の使用
DMB
Memory ef間の順序を作成しますfect の指示の降順としての定義におけるribed
バリアーオア前に信じて
DMB
メモリアクセスとデータキャッシュおよびユニファイドキャッシュメンテナンスの操作にのみ影響します。牽引、参照
A64キャッシュのメンテナンス手順(D4-2364)他の命令の順序には影響しません。
PE上で実行しています。A
DMB
コンプを保証することを意図した命令ETI キャッシュメンテナンス命令の上でなければなりません
アクセスタイプがloadと 店。
の操作のための擬似コード関数
DMB
です
DataMemoryBarrier()
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-105
ID103018 非機密扱い
Sの消費累積データバリア(CSDB)
CSDB命令はメモリバリア命令である。帽子は、スペキュラクティブな実行とデータ値の予測を制御します。
これも:
命令の データ値予測
PSTATE。{N、Z、C、V}
現れる条件付き分岐命令以外の命令の予測
プログラムの順序
CSDB
それは建築的に解決されていません。
SVE命令に対する SVE予測状態の予測
CSDBの定義上、
PSTATE。{N、Z、C、V}
データ値とは見なされませんこの定義許可がある場合:
前後のフロー推測の制御CSDB
•の 投機的実行結果を使用しない限り、CSDBの後の条件付きデータ処理命令
データ値の
PSTATE。{N、Z、C、V}
指示の予測Cの前にプログラム順に現れるイオンSDB
それはar chitされていません構造的に解決されました。
スペキュラive Store Bypお尻バリア(SSBB)
SSBBは、そのメモリバリアです。投機的なロードが以前のストアを同じ仮想へバイパスするのを防ぎます。
認証条件の下でのアドレス
投機的ストアバイパスバリアのセマンティクスは次のとおりです。
ある場所への荷重がプログラム順に表示された後
SSBB
それから負荷は投機的に読まない
コヒーレンスの早い方のエントリ、その場所のrよりもlaによって評価されたエントリー遺伝子満足のいくテストストア
以下のすべての条件
- お店は 同じlに負荷としての職業
- 店舗は、同じ仮想アドレスを使用します。負荷。
- ストアは、プログラムの順番の前に表示されます。
SSBB
ある場所への荷重がプログラム順に表示される前に
SSBB
、 そうして 負荷はスペキュラしない黙読する
fのすべてを満たす任意のストアからのデータ嫌がる条件:
- お店は 同じlに負荷としての職業
- 店舗は、同じ仮想アドレスを使用します。負荷。
- ストアは、プログラムの順番の前に表示されます。
SSBB
物理的なやり方累積ストアバイプお尻バリア(PSSBB)
PSSBBはメモリバリアです。他の店舗を迂回して同じ物理的な店舗に投機的な負荷がかかるのを防ぎます。
認証条件の下でのアドレス
物理的販売店舗バイパスのセマンティクス■障壁は次のとおりです。
ある場所への荷重がprに表示されたとき後のプログラム順
PSSBB
それから負荷は投機的に読まない
コヒーレンスの早い方のエントリ、その場所のrよりもlaによって評価されたエントリー遺伝子満足のいくテストストア
以下のすべての条件
- お店は 同じlに負荷としての職業
- ストアは、プログラムの順番の前に表示されます。
PSSBB
ある場所への荷重がプログラム順に表示される前に
PSSBB
それから負荷は推測しない読んで
fのすべてを満たす任意のストアからのデータ嫌がる条件:
- お店は 同じlに負荷としての職業
- ストアは、プログラムの順番の前に表示されます。
SSBB
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-106 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
Trace同期化バリア(TSB CSYNC)
TSB CSYNC
メモリバリアの指示メモリアクセスの相対順序を保持するイオンシステムへのs
トレース操作およびその他のメモリアクセスによるレジスタ同じレジストリへのesrs。
トレース操作は、PE Tの操作です。レースユニtのトレースを生成するARMv8.4-Tのときの構造レース
実装されている
A
TSB CSYNC
他の命令に対してプログラム順に実行する必要はありませんこれもであること
構造体の他の痕跡に関して並べ替えました確実にするには、 1つ以上のコンテキスト同期イベントが必要です。
それ
TSB CSYNC
必要な順序で実行される
コンテキスト同期イベントとイベントの間にトレースが生成された場合
TSB CSYNC
操作、これらのトレース 操作は
に関して並べ替える
TSB CSYNC
操作、したがって 同期していない可能性があります
以下の状況は、を使用して同期されます。 ある
TSB CSYNC
システムレジへの直接書き込みBSter 、同じレジスタの間接読み取りまたは間接書き込みの後に、
以下のすべてが当てはまる場合は、トレース操作A。
- Aはコンテキスト同期イベントCの前にプログラム順に実行されます。
- Cはaの前にプログラム順になっています。
TSB CSYNC
操作T
- BはTの後にプログラム順に実行されます
直接 システムのBを読むトレース操作による同じレジスタへの間接書き込みの egisterが順序付けされている
以下のすべての場合本当です:
- Aは、コンテキスト同期イベントC1の前にプログラム順に実行されます。
- C1は前にプログラム順になっている
TSB CSYNC
操作T
- Tはプログラム順に実行されます。または2番目のコンテキスト同期イベントC2。
- C2の後にBがプログラム順に実行されます。
A
TSB CSYNC
操作はnです悲惨さを確実にするために必要なものct システムレジスタに Bを書き込む間接読み取りの前に並べる
または同じレジスタへの間接書き込み トレースoperatiAの場合、次のすべての場合翼は本当です:
Aはコンテキスト同期イベントCの後にプログラム順に実行されます。
BはCの前にプログラム順に実行されます
の操作のための擬似コード関数
TSB CSYNC
TですraceSynchr onizationBarrier()。
データ同期バリア(DSB)
DSBは、そのメモリACCE確実にメモリバリアであるSSES目をの前に DSBは以前に完了しました
DSB命令の完了 これを行うことで、それはDMBより強力なバリアとして振る舞います
特定のicオプションを指定したDMBによって作成されます。DSB同じオプションで生成されます。
の実行
DSB
EL2では投機的変換によるメモリアクセス テーブルはEL1&0から歩く
翻訳体制が観察されています。
EL3では speculによるメモリアクセスアクティブ翻訳テーブルから EL2または
EL2&0変換レジーム。
詳細については、「範囲外の翻訳の使用」を参照してください。D5-2406 ページのegimes
A
DSB
PEによって実行された、PEe、完了次のすべてが当てはまる場合はs
私をすべて明示するprogに現れる必要なアクセスタイプのメモリアクセスDSBの前のラムオーダーは
必須のsh 領域ドメインのオブザーバのセットに対して完全です
•必要な 場合のアクセスタイプ
DSB
読み書き、tです。すべてのキャッシュメインテナ編nce命令とすべてのTポンド
PEeの前に発行されたメンテナンス指示
DSB
requiのために完成している赤い共有可能性に。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-107
ID103018 非機密扱い
また、表示される指示はありません DSB命令がシステムの状態を変更できるようになった後のプログラム順
またはその一部を実行するDSBが完了するまでの機能
メモリから取得されているデコードされました。
SIMDと汎用の読み方直接浮動小数点レジスタ、特殊用途レジスタ、またはシステムレジスタ
または間接的にside-efを引き起こしているウィット付きで読む事実です。
の操作のための擬似コード関数
DSB
です
データ同期onBarrier ()
Memも参照してください。オリフィスバリア(D4-2)382
共有性とアクセス datの制限バリア操作
DMB
そして
DSB
指示がかかる 議論のtは以下を指定します。
命令が動作しなければならない共有可能性ドメインこれは次のいずれかです。
- フルシステム。
- 外部共有可能です。
- 内部共有可能。
- 共有不可
命令が動作する アクセスこれは次のいずれかです。
- 読み書きアクセスバリア命令の前後両方
- W儀式アクセスのみバリア命令の後のndの
- 読むには、バリアの前にアクセスしstruction、および書き込みおよび読み取りアクセス第FTER 電子バリア命令。
注意
この形の
DMB
または
DSB
命令はdescrですLoad-Load / Storeの障壁と言われる
whetheの詳細についてはACCES rをsはバリア命令の前または後です。データメモリバリア(DMB)を参照してください。
B2-104ページまたはデータ同期B2-106 ページの「 Onization Barrier(DSB)」を参照してください
T有能なB2-1 はこれらのオプションがencである方法を示すで終わった
<オプション>
命令のフィールド:
詳細については、命令記述子を参照してください。
DMBC6-817
C6-820ページの DSB
注意
ISB
システム全体に対応する値を 1つだけ含むことができるオプションの制限引数もサポートします
操作、参照 ISB (C6-838)
Table B2-1エンコーディング
DMB
そして
DSB
<オプション>
pパラメータ
共有可能性ドメインへのアクセス
の前に
バリア
後に
バリア
フルシステム アウター シェア可能インナーShareab 非共有可能
読み取り、書き込み、 読み込みと書き込み
SY OSH ISH NSH
Wrトンes Wrトンe
ST OSHST ISHST NSHST
読み込み 読み込みと書き込み
LD OSHLD ISHLD NSHLD
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-108 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ロード取得、ロードAcquirePC、および店舗関連e
ARMv8は、Acquireセマンティクスを含む一連の命令提供します。load、d Release sema店のためのntics。これら
指示はReleasを支えるeコンシステ連続的に一貫性のある(RCsc)モデル さらに、ARMv8.3-RCpc
Load-AcquirePC命令を提供します組み合わせLoad-AcquirePCとSの設定tore-Releaseは、
弱い人を支える リリース整合性pr首尾一貫性(RCpc)モデル。
Load-AcquireおよびLoad-A cquirePC命令の完全な定義は次のとおりです。定義で正式にカバーされている
ARMv8メモリモデル B2-97 ページLoad-Acquire およびLoad-Acquire PC命令のこの紹介
そのセクションを限定する意図はありません
Load-Acquire命令とLoad-AcquirePC命令の両方の基本原理は、組み込みです。間の順序を生成する
Load-A cquireまたはLoad-AcquirePC命令によって生成されたメモリアクセスと表示されるメモリアクセス
ロード取得後のプログラム順またはLoad-AcquirePC命令。メモリアクセスは次のように生成されます。
ロード取得またはLoad-A cquirePC命令がObである以下の範囲で、各PEが担当します。 PEはする必要があります
tを守る彼はコヒーレンにアクセスするタイの前に私の記憶の ny表示されるアクセス後のプログラム順
Load-AcquireまたはLoad-AcquirePC命令はそのPE によって thに監視されます。その程度のPE する必要があります
ACを観察首尾一貫した
負荷取得したり、負荷の獲得の使用PC命令は間の順序を作成メモリー効果命令のSを
バリアの定義で説明されているように前に注文しました
Store-Release 命令の完全な定義は下記の通りです。ARMv8定義に含まれる同盟国記憶
B2-97 ページのモデルとStore-Release命令の紹介 このセクションを矛盾させるつもりはありません
基本原則Store-Release 命令の多くは、メモリ間に順番を入れることです。ACCEはによって生成されたSSES
PE元Sを吐き出すトレリリースインスツルメント差異から生じるものと一緒に程度までのferent PE
PEはそれらを首尾一貫して観察する必要がある観測-によってPE実行前 ストアリリースe。
Sの使用tore-Release命令はMemory ef間の順序を作成します説明されている命令の概要
バリアの定義前に注文しました
ロード後にプログラムの順序でロード取得が表示される場所リリースしてから メモリアクセス属によってテッド
格納- リリース命令は観察されます 各PE、thへPの範囲Eはアクセスcoherを観察するために必要ですひそかに
記憶の前にLoad-A cquire命令によって生成されたアクセスは、そのPE によってエクステントに監視されます。nt
PEはアクセを観察する必要がありますssコヒーレントddition、ロード-交流の使用帖、負荷AcquirePC又は
アクセス時のストアリリース命令メモリマップ周辺の間の順序を紹介しますメモリー
効果その指示ペリCCESS 説明するように、pheral の定義に周辺coher発注
負荷獲得、負荷AcquirePC NDセントLo ad-Acquire排他ペア以外の鉱石リリース
ストアリリース限定ペア単一のデータ要素のみにアクセスする。このアクセスはシングルコピーアトミックです。アドレスof
データオブジェクトは、アクセスするデータ要素のサイズに合わせて配置する必要があります。そうでなければaccess遺伝子評価する
アライメント不良です。
排他的Pのロード獲得エアーとストアリリース 独占ペアac2つのデータ要素を中止します。アドレスの供給先
命令はelemの2倍のサイズに整列させる必要がありますロードされているent 、そうでなければaccess遺伝子評価する
アライメント不良です。
Store-Release Exclusive命令には、リリースセマンティクスだけがあります。店が成功した場合はIC。
注意
各ロード獲得排他veと店舗関連e独占的な指導は基本的に
相当するLoad-ExclusiveまたはStore- Exclusive in構造。すべての使用制限と単一コピーの原子性
プロパティ:
- それはLoad-Exclusive命令にも適用されます Load-Acquireに適用 排他的な指示
- あてはまるo Sto再独占命令イオンはまたtに適用するストア関連アセ独占instr争い。
Load-Acquire、Load-AcquirePC、およびStore-releaseの指示イオンは使用する必要性を取除くことができます
明白な
DMB
命令。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-109
ID103018 非機密扱い
LoadLOAcquire、StoreLOリリース
各PEについて、非セキュア物理メモリマップは次のように分割されます。保持されているテーブルを使用した LO 領域のセット
PE内 任意のPノンセキュアメモリマップ内のAは、1つのメンバーになることができますLORegi に。PならAは に割り当てられた
複数のLORegionを使用している場合、実装側はそれをあたかもそれが少数のLORegionに割り当てられいるかのように扱うことがあります。
指定されています。APSecure物理メモリマップの Aは任意のLORegionのメンバー 多くのための
情報は、限定を参照してくださいまたはdering regions
ARMv8.1は、Acquire semを使用て一連の命令提供します。ロード用のantics、およびストア用のReleaseセマンティクス
relaに適用定義されたLORegionへの移行s。Load-AcquireおよびStore-Release instの新しい変数破裂
LoadLOAcは何ですかquireとStoreLORel簡単です。LoadLOAcquirを参照してくださいe / SトルC3-184 ページのeLORelease
すべてのメモリタイプに対して、これらの命令ションは、以下の持っている発注要件を:
LoadLOAcquireにはtがあります。彼は同じsemantiLoad-Acquiとしてのcsそれ以外は メモリアクセス影響を受けるのは内にある
LoadLOAcquire命令によって生成されたメモリアクセスのアドレスと同じLORegion 見る
荷重取得e、Load-AcquirePC、そしてStor電子リリース(B2-108)
StoreLOReleaseにはsがありますSとしてのame意味論tore-Release excそのメモリのACCをept影響を受けるLすなわち内
メモリアクセス属のアドレスと同じLORegionStoreLOReleaseの指示に従ってくださいn。見る
荷重取得e、Load-AcquirePC、そしてStor電子リリース(B2-108)
さらに、メモリマップペリフェラルへのアクセスの場合:
LoadLOAcquire has Load-Acquire exと同じセマンティクスその愛を捨てるCTED メモリ効果のs
そのACの指示周辺住所は、住所と同じLORegion内にありません。メモリアクセスのss
LoadLOAc quire命令によって生成されます。Load-Acquirを参照してください。e、Load-AcquirePCとSトレリリース
B2-108ページ
StoreLOReleaseも同じです Storとしての意味それ以外の電子リリース影響を受けたメモリ効果fect 秒の
そのACの指示周辺住所は、住所と同じLORegion内にありません。メモリアクセスのss
StoreLORelによって生成されます。指導を容易にします。見る負荷獲得、ロードアックイRePCとSトル電子放出
B2-108ページ
注意
LoadLOAcquire / StoreLOReleaseの指示は再することができます説明を使用するように要件を移動するそれ
DMB
命令。
B2.3.6 限定発注 地域
ARMv8.1では制限付きまたはdering r大きなsyを許す egions (LORegions)特別な演技の茎
ロード獲得とストアその指示をリリースarへのメモリアクセス間の順序PのエギオンA
集合によって観察されるような地図 オブザーバー
この機能はAArch64状態でのみサポートされています
LORegionsの仕様
LORegionはLORegionディスクリプタのセットを使用して、非セキュア物理メモリマップに定義されています。
LORegionディスクリプタの数は実装です。 定義済みLORID_EL1を読むことで見つけることができます
登録
各LORegion記述子は次のもので構成されています。
次の値のタプル
- 開始アドレス
- 終了アドレス。
- LORegion番号
VそのLORegion ディスクリプタが有効かどうかを示すalidビット
記憶場所のうそLORegion内での識別Pの場合は、LORegion NumberによってSの間にあるタルト
アドレスと終了アドレス Sタルトアドレスを定義する必要があります アルをする64キロバイトと終了にigned
アドレスは、64KBのメモリブロックの to pバイトとして定義する必要があります。
B2 AArch64アプリケーションレベルメモリモデル
B2.3 ARMv8メモリモデルの定義
B2-110 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
LORegion記述子は、LORSA_EL1 LOREA_EL1 LORN_ELを使用してプログラムされます。1、およびLORC_EL1
システム登録スペースに登録します。これらのレジスタは、ノンセキュアメモリマップでのみサポートされています。
LoadLOAcquireまたはSの場合toreLOリリース その場合、どのLORegionとも一致しません。
LoadLOAcquireはLoad-Acquireとして動作し、注文されます。 respecと同じようにすべてにt
それらのLORegionsとは無関係アクセス
セントoreLOReleaseは、Store-Releaseとして提供されます。ndはと同じ方法で注文されます 尊敬する
それらのLORegionsとは無関係アクセス
注意
LORegionsが実装されていない場合は、LoadLそのため、OAcquireとStoreLOReleaseは、
積荷取得とストアリリース
新しいアクセスタイプ
AccType_LIMIT編集済み
これらの限られたために追加されているかデ・リング命令が識別されます。
B2 AArch64アプリケーションレベルメモリモデル
B2.4キャッシュとメモリ階層
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-111
ID103018 非機密扱い
B2.4 キャッシュとメモリ階層
メモリシステムの実装は異なり重くmicroarchitectの上のUREのため、多くの詳細
メモリシステムは実装定義 です。ARMv8 defiメモへのアプリケーションレベルインタフェースry
階層を含むシステム乗数付きヒカルメモリシステムキャッシュのeレベル。このセクションではアプリについて説明します結末
このシステムのレベルビュー。それはサブセクションが含まれています:
イントロ キャッシュへの産卵
メモリ階層 ちょっと
Fへのアプリケーション・レベルのアクセスunctionality R キャッシュに関連したページB2-113年
キャッシュの意味 Rアプリケーション・プログラマーのOnページB2-113
Pr eloadingキャッシュページB2-1に15
B2.4.1 キャッシュの紹介
キャッシュは高速メモリのブロックで、それぞれ次の要素で構成されています。
メインメモリアドレス通知として知られている タグ
関連データ。
キャッシュはメモリアクセスの平均速度を上げます。キャッシングでは、ローカリティの2つの原則が考慮されます
空間的局所性
アクセスto one location はこんな感じですアクセスの後に続く 隣接する場所へs。の例
この原則は以下のとおりです。
シーケンシャル命令実行。
データ構造へのアクセス
T時間的地域
メモリ領域へのアクセスは短い時間繰り返される可能性が高いEのPEのriod。この一例
原則はソフトウェアループの実行です。
To 保存されている制御情報の量を最小限に抑える。地域プロパティグループ複数の場所
同じタグの下で一緒に。この論理ブロックは一般にキャッシュラインと呼ばれます。いつ データが
キャッシュ、アクセスTI後続のロードおよびストア用のmes再ですオベで、その結果、duced RALLパフォーマンス上の利点。アクセス
すでにキャッシュに入っている情報へのアクセスはcと呼ばれます。痛いヒット、および他のアクセスはcalleですd キャッシュミス
通常はキャッシュは自己管理型で、更新は自動的に行われます。いつPEがアクセスするか
キャッシュメモリlオカレーション、c痛みをチェックします。 アクセスした場合sはキャッシュ ヒット、ACtで停止が発生します彼はキャッシュします。
それ以外の場合は、ssをメモリにするT根っから、このアクセスをするとき、キャッシュ位置は割り当てられますdと
キャッシュラインがロードされました メモリからARMv8はdifferen許可トンキャッシュトポロジとACCEのSSをポリシー
メモリコヒーレンシに従うこのマニュアルで説明されている cy モデル。
キャッシュはpotenの数紹介したTiAlを 問題は、主に原因:
メモリアクセスが発生する可能性がありますプログラマーがそれらを期待する時以外の時に。
データ項目は複数の物理的な場所に保持できます
B2.4.2 メモリ階層
T典型的にはaに近いメモリ PEは非常に低い待ち時間を持っていますが、lサイズと費用で模倣実装するe。さらにr
PEから 暗黙に共通ですemen 大きなトンメモリブロックだがレイテンシが増加T最適化
全体的なパフォーマンスance、ARMv8メモリシステム 複数を含めることができます キャッシュレベル 階層的な記憶
利用するシステムこのトレードオフサイズ間のトレードオフと待ち時間 B2-1 B2-112 ページshそのような例を示す
仮想アドレス指定をサポートするARMv8-Aシステムのシステム
B2 AArch64アプリケーションレベルメモリモデル
B2.4キャッシュとメモリ階層
B2-112 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
図B2-1複数 メモリ階層内のキャッシュのレベル
注意
このマニュアルでは、私はナ私は階層的モリーシステム、レベル1 処理エレメントに最も近いレベルを参照しますのように
図B2-1に示す
指示やデータは分野におけるSE parateキャッシュまたは統合CA内チェ。キャッシュ階層には1つ以上の階層を含めることができます。
1つ以上の統一されたキャッシュを持つ、別々の命令キャッシュとデータキャッシュのレベルに位置しています レベル 一番近い
メインメモリへ記憶Y密着するのキャッシュトポロジ用NCYを解除することができます目を使用して罰金電子概念的なポイントのポイント
統一PoU )、ポイントオブコハーency PoC )、および Point of Persistence PoP )。
注意
ARMv8 ARMv8.2-DCPoP Point of Persistenceのアーキテクチャ上のサポートを追加
詳細については、PoU PoC 、およびPoPの定義はAbを参照してください。AArch64のキャッシュアウトメンテナンス
D4-2360ページの状態
キャッシュ性としゃリアリティメモリ属性
キャッシュ可能性 と共有性 2つの属性 それを記述する メモリ階層inaマルチプロセッシング システム:
キャッシュ可能性この属性は、メモリの場所をキャッシュに割り当てることを許可するかどうかを定義します。
キャッシュ性は、内部キャッシュ性と外部キャッシュ性の場所で別々に定義されます。
共有可能性この属性 メモリlかどうかを定義します職種間での共有が可能フェレントエージェント私システムなし。
特定のドメインで共有可能としてメモリの場所をマークするには、次のことを確認するためのハードウェアが必要です。
場所は thaのすべてのエージェントに対してコヒーレントt domai n。共有可能性は、内部に対して独立して定義されます。
と外部共有ドメイン。
Cacについての詳細heabilityとShareabilityメモリの種類と属性」(B2-122ページ)を参照してください
デバイス
PE、
AArch64状態
命令
フェッチ
データ
レベル1
キャッシュ
レベル2
キャッシュ
レベル3
キャッシュ
DRAM、SRAM、
収納クラス
記憶
レベル4
例えば、
メモリカード、
ディスク
住所
翻訳
システム構成
と制御
X30
X0
物理アドレス
バーチャル
住所
B2 AArch64アプリケーションレベルメモリモデル
B2.4キャッシュとメモリ階層
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-113
ID103018 非機密扱い
B2.4.3 funcへのアプリケーションレベルのアクセスキャッシュに関連する部分性
示すように、アプリケーションルについてvel progランマーモデルページB1-80で、アプリケーションレベルの対応
EL0で実行する。アークhitectureは、キャッシュのメンテナンスのセットを定義SOF structionsウェアはに使用することができます
キャッシュコヒーレンシを管理するより高い例外レベルでのソフトウェアの実行これのいくつかの使用を可能にすることができます
次のようにEL0からの機能
SCTLR_EL1 .UCIの値が1の場合
EL0で実行されているソフトウェアは、以下にアクセスできます。
データc痛みの主tenance命令、
DC CVAU
DC CVAC
DC CVAP
、そして
DCシバック
見ます
データキャッシュメンテナンス命令(DC)PAGにe D4-2365
指示イオンキャッシュメンテナンスナンス指導
IC IVAU
命令caを参照してくださいチェ
D4-2365ページの「保守説明書(IC)」を参照してください
これらを構造体で実行しようとすると、次のようにPemissionミッションが発生する可能性があります。に記載されている
D5-2500ページの許可違反
SCTLR_EL1 .UCTの値が1の場合
ELで実行中のソフトウェア0はキャッシュタイプregにアクセスできますisterCTR_EL0を参照してください
SCTLR_EL1 .DZEの値が1の場合
ELで実行中のソフトウェア0はデータキャッシュのゼロ指示にアクセスできますイオン
DC ZVA
データキャッシュを参照してください。
命令ページD4-2374で
SCTLR_EL1 。{UCI、UCT、DZE}コントロールフィールドはそのためだけにアクセス可能ですftwareのexec EL1以上でuting
HCR_EL2 。{E2H、TGE} == 1コントロール{UCI、UCTとDZEは}に見出されるSCTLR_EL2
この機能は
対応するSCTLR_ELの値がEL0のとき未定義1 制御フィールドは0です。以下を参照してください。
T キャッシュ保守命令のEL0実行のEL1へのラップctions ページD1-2210で
T にラップ EL0のEL1からD1-221 ページのCTR_EL0へのアクセス1
T DC ZVのEL0実行のEL1へのラップ説明書D1-2212ページ
B2.4.4 アプリケーションプログラム へのキャッシュの影響メマー
通常の操作では、 キャッシュはほとんど見えない アプリケーションプログラマしかし彼らはなることができます
abがあると見える密着するのでreakdown キャッシュのNCY。そのような故障は起こる場合があります:
メモリ位置が更新されたときbシステム他のエージェントで、それが困難な場合の商品管理
コヒーレンシ
から作られたメモリ更新pplicationソフトウェアがなければならないと見えるようにすることの他のエージェント
コヒーレンシのハードウェア管理を使用しないシステム
例えば:
DMAコントローラを備えたシステム DM Aアクセスのコヒーレンシのハードウェア管理がない場合
PEのデータキャッシュに保持されているメモリ位置を読み取ります。コヒーレンシの破綻は、
PEがデータに新しいデータを書き込んだ キャッシュしますが、DMAコントローラはメモリに保持されている古いデータを読み取ります。
ハーバード大学のキャッシュ実装者tation、SEあるparate命令及びDA キャッシュTA、破壊Of
新しい構造データがdaに書き込まれると、コヒーレンシが発生します。taキャッシュ、しかしt彼の指示 キャッシュ
まだオール含まれDは構造データ。
データの一貫性の問題
ソフトウェアは保障することができます 次の方法でキャッシュのデータの一貫性を確保します。
その場でキャッシュを使用しないコヒーレンシの問題が発生する可能性がある場所のイオンこのcanによって達成される:
- キャッシュ不可またはを使用、 その際私の場合、Wライトスルーキャッシュ可能メモリ
- いらないTのLingキャッシュ彼のシステム
B2 AArch64アプリケーションレベルメモリモデル
B2.4キャッシュとメモリ階層
B2-114 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
cを使用する痛みメンテナンスinstミリアンペアにructions コヒーレンシISSUの投げソフトウェアでES。アプリケーションレベルを参照
機能へのアクセスcaに高揚CHES ページB2-113に
確実にするためにハードウェア・コヒーレンシ機構を使用することにより、データのコヒーレンシをアクセスするキャッシュ可能のためにメモリに
オブザーバーによる位置wi thin 違い共有可能性 ドメイン、非sharを参照有効ノーマル メモリオン
B2-124ページShar有効、内部シャeable、そして外のShar有効な通常メモリ(B2-123ページ)
注意
これらのハードウェアコヒーレンシメカニズムのパフォーマンスは、実装に大きく依存します。いくつかの
実装するイオン、そのメカニズム abを抑制しますshaをキャッシュする機能有効な場所 その他
実装キャッシュコヒーレンシハードウェアは、データ間のコヒーレンシを管理しながらデータをキャッシュに保持できます。
内のオブザーバー 共有性ドメイン。
注意
これらすべてのメカニズムではありませんismsは直接利用可能ですソフトウェアの運用が可能 EL0で呼び出しますとの対話
ソフトウェア操作より高い例外レベルでg
同期化コヒーレンシ問題の賭けウィーンダット命令アクセスセス
現在の実行命令のポイントからどれだけ先にフェッチされるかは、実装定義です。そのような
プリフェッチは、固定または動的に変化する数のinstrのいずれかです。そして、可能な限り、あるいはすべてに従うことができます。
将来の実行パスs。すべての種類のメモリについて
PEがinstを取得し可能性があります前回のContext synchr以降、いつでもメモリからの切り捨てオン化
そのPE上のイベント
これまでにフェッチされた命令y はmultで実行されるかもしれませんこれが必要な場合の実行
プログラム、メモリから再取得せずにがない場合
ある
コンテキストシンクロonizationイベント、そこ
oの数に制限はありませんそのような命令の f 倍は再フェッチされずに実行された
記憶
Armアーキテクチャは、命令キャッシュとメモリ間の一貫性を保証するためにハードウェアを必要としません。
共有メモリの場所でも
ソフトウェアが命令実行とメモリ間のコヒーレンシを必要とする場合これを使用してこのコヒーレンシを管理する必要があります。
コンテキストシンクロonizationイベントとキャッシュのメンテナンス手順 フォローインgコードシーケンスを使用することができます
PE tを許可するoコードthを実行する同じPEで 書いています。
; コヒーレンシeデータとインストラクションの例関数アクセスwithin同じ内部共有可能 ドメイン。
; これを入力<Wt>を含むコード 新しい32ビットの命令
; 開催されるキャッシュ可能なスペースにが指している場所 Xn
STR Wt、[Xn]
DC CVAU、Xn。きれいなダVAによるpoキャッシュへのtaキャッシュ統一のnt(PoU)
DSB私SH; vを確認データの妥当性 キャッシュから消去
IC IVAU、Xn。無効命令キャッシュ VAからPoUへ
DSB私SH; cを確認インバの省略つぶやき
ISB ; 同期取得したinstrをizeuction stream
注意
キャッシュ不可または書き込みThの場合ラフアクセス、Vによるクリーンなデータキャッシュインストのructionはのrequではありません発射した。
しかしながらARMv8-A AArch64を使用するため、無効化命令キャッシュのインストールが必要です。
建築 キャッシュ不可ACを許可インで開催されるべきトラクションキャッシュ 見るキャッシュ不可アクセス
および命令キャッシュ(D4-2359)
このコードは、コードを変更する実行スレッドが、実行スレッドと同じ実行スレッドである場合に使用できます
処刑されるコードを作成します。Armv8のアーキテクチャ セットを制限する スレッド実行できる命令の一覧
明示的に要求することなく、別の実行スレッドによって変更されているため
同期 Concurrを参照してくださいBページの命令の修正と実行2-94
B2 AArch64アプリケーションレベルメモリモデル
B2.4キャッシュとメモリ階層
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-115
ID103018 非機密扱い
SYSソフトウェア管理これらのキャッシュ メインtenanceの指示しイオンは適用に利用できます
SCTLR_EL1 .UCIを設定してレベルを調整します。
注意
このシーケンスが実行されていない場合n場所にデータを書き込むnと命令を実行するその場所で、
命令キャッシュとメモリの間に一貫性がないということは、その指示再実行される可能性があります
使用される古い命令または更新された命令は、実行中に任意に変わる可能性がありますしてはいけません
sの前にソフトウェアによって想定される同期シーケンスが実行されます、th更新された命令が
見たことがある、古い命令は 二度と見られない。
B2.4.5 キャッシュの事前ロード
Armアーキテクチャはメモリシステムのヒントを提供します。
PRFM
LDNP
、そして
STNP
そのソフトウェアc通信するための使用
ハードウェアへのメモリ位置の使用が予想されますメモリシステムはアクションを実行して応答できますそれは
スピードアップが見込まれる メモリアクセスが発生したらウル効果これらのメモリシステムのヒントのct です
実装が定義されましたT 根っから、実装者これらの情報を使用して データや指示を持ってくる
場所に キャッシュ。
Preload命令はヒントなので、実装はそれらを以下のように扱うことができます。
NOP
機能に影響を与えずにs
デバイスの動作 この命令は同期データアボート例外を生成できませんが、結果として
例外的な状況下では、メモリシステムの動作によって非同期の外部アボートが発生する可能性があります。
これはSError割り込み例外を使って取られます。詳しくは、例外frのISSエンコードを参照してください。オム
データアボート(D12-2792)
PrefetchHint {}
プリフェッチヒントタイプを定義します。
Hint_Prefetch ()
機能信号メモリsyへのsその記憶を語るタイプのプロセス
ヒント
からまたはへ
指定された
住所
発生する可能性があります近い将来にウル。メートルエモRYシステムは、いくつかのかかる場合がありますスピードアップするために行動を
発生したときのメモリアクセス指定したアドレスを1つ以上のプリロードするなどインディカとしてのキャッシュテッド
最も内側のキャッシュレベルで
ターゲット
と非一時的なヒント
ストリーム
詳細については
PRFM
ロード/ストア メモリシステムにヒントを与える命令はPrを参照してください。efetch
メモリ(C3-188ページ)およびロード/ ストアe SIMDと浮動小数点数C3-186ページの「時間ペア
B2 AArch64アプリケーションレベルメモリモデル
B2.5アライメントサポート
B2-116 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B2.5 アライメントサポート
このセクションでは、アライメントのサポートについて説明します。それcontai NS次のサブセクション:
命令アライメント
データアクセスの調整
境界整列されていないデータアクセス B2-1 ページの制限17
B2.5.1 命令アライメント
A64命令はワードアライメントである必要があります
命令を取得しようとしています誤った位置からの取り付けは、PCの調整不良を引き起こしますPCの位置合わせを見る
D1-2164ページを確認してください
B2.5.2 アライメントdatのアクセス
あらゆる種類のデバイスメモリへの整列されていないアクセスは、整列を引き起こします。 せい。
アラインメント要件通常の記憶へのアクセスのためのrementsyは次のとおりです。
単一またはm をロードまたは保存するすべての命令その他の複数のレジスタn
ロードエクスクルーシブ/ S排他的およびロード取得/ Store-Release、 アクセスされたアドレスが
sに合わせてデータのサイズアクセス中の要素には、次のいずれかが発生します。
- アライメント不良が発生しています。
- 境界整列されていないアクセスが実行されています
ときの値SCTLR_ELx で.A現在のExcepti on on 1、アライメントチェックが有効、
位置合わせされていないアクセス一般的な位置合わせ失敗ts。
注意
- SCTLR_EL1 .A ビットは、EL0とEL1で動作しているソフトウェアに適用されます。
EL1以降からアクセス
- 配置チェックはアクセントサイズに基づいています全体的なacではなくsed要素セスサイズ この
SIMD要素aに影響を与えるnd構造ロアdsとst鉱石、またロード/ストアペア命令。
- これらのアラインメントチェック規則は、Armv8のアーチ反復が64ビットと
128ビットアライメントチェック
すべて負荷 - 排他e / Store-Exclusive、負荷取得/ Store-Release、および比較とスワップメモリ
アクセスする シングルにアクセスするe要素または アドレスが次のような場合、要素のペアはAlignment フォルトを生成します。
アクセスされるデータ構造は、アクセスされるデータ構造のサイズに合わせられていません
アラインメントの失敗checkの結果 アルミニウムデータとして取り込まれるignment障害、アボート例外とします
次のとおりです。
アクセス用アライメントエラーが発生した場合、EL0またはEL1から翻訳タブを表示ファイルの識別
受諾している住所その後、デバイスメモリとして使用されます。
- 第一段階の場合fアドレス変換によって広告がマークされますデバイスメモリとしてドレスし、その後例外とられる
EL1へ。
- アドレスtrの第2段階のみ応答はアドレスをデバイスメモリとしてマークし次に例外をマークします。
EL2に運ばれます。
それ以外の場合、例外はかかります最も低いExceptioへのn除外を処理できるnレベル、短所との意志
基本的な要求免除レベルは決して例外とることで減少します。したがって:
- HCR_EL2 .Tによってリダイレクトされない限り EL0またはEL1から発生したアライメントフォルトEL1に発生します。GE
- EL2から発生したアライメント不良は、EL2に発生します。
- EL3から発生した アライメント不良は、EL3に引き継がれます。
B2 AArch64アプリケーションレベルメモリモデル
B2.5アライメントサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-117
ID103018 非機密扱い
B2.5.3 整列データアクセス権窮状
以下の点は、ARMv8での符号なしデータアクセスに適用されます
アクセスが単一であること保証されていません。バイトアクセスレベル以外でアトミックにコピーします。アトム性を参照してください。 ARMの中で
ar伝票B2-92 ページをご覧ください
位置合わせされていないこれらのプロセスには通常、追加のサイクルがいくつかかかります。自然に整列したものと比較して完成するs
アクセス。
非整列アクセスを行う操作は任意のメモリACCEの上で中止することができ、それが行うSS、および中止することができます
複数のアクセスで。このページ境界を越えて発生する整列されていないアクセスは、
境界の両側でアボートを生成します
位置合わせされていない負荷除外e / Store限定、およびAtomic instr争い
場合ARMv8.4-LSEが実装され、アクセスが整列していないで、目e命令は同じ単一コピーを持っています
アトミック性とアトミックre -modify-write-properのように結び付ける 以下の条件に該当する場合は、整列アクセス
アクセスされるすべてのバイトは、16バイトに揃えられた16バイトの量の範囲内です。
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
指示が同じ場合 アラインとして単一コピーアトミック性およびオムリックなread-modify-writeプロパティ
アクセス、PEはアライメントを生成しませんSCTLR_ELx .A == 1でない限り、エラーが発生します。
場合ARMv8.4-LSEがあります 実装時、n アクセスは未整列です。
実装定義 ED かどうか
命令は同じシングルコピーアトミック性とアトミックic read-modify-write properを持ちます整列アクセスとして結び付ける
次の条件に該当する場合
アクセスされるすべてのバイトは、16バイトに揃えられた16バイトの量の範囲内です。
アクセス普通の記憶に内側W以外のyライトバック、 外Wライトバックノーマルca嬉しい記憶
指示が同じ場合 アラインとして単一コピーアトミック性およびオムリックなread-modify-writeプロパティ
アクセス、PEはアライメントを生成しませんSCTLR_ELx .A == 1でない限り、エラーが発生します。
以下も参照してください。シングル警官への変更Y ARMv8.4でアトミックページ上 B2-93
未整列ロード取得/ Store-Release instr争い
場合ARMv8.4-LSEが実装され、アクセスが整列していないで、目e命令は同じ単一コピーを持っています
整列としての原子性特性次の条件に該当する場合は、ssを受け入れます。
アクセスされるすべてのバイトは、16バイトに揃えられた16バイトの量の範囲内です。
アクセスは内側へWライトバック、 外Wライトバック通常c達成可能なメモリ
命令がシングルコピーアトミック性プロパティと同じ場合整列アクセスでは、PEは生成しません。
SCTLR_ELx以外のアライメントエラー.A == 1
場合ARMv8.4-LSEがあります Loのときに実装広告取得/ストア - リリース 命令が整列していない、それは
実装DEFINED 命令ヘクタールのかどうかを目VEの Alignedと同じシングルコピーアトミック性プロパティ
以下の条件が当てはまる場合にアクセスします。
アクセスされるすべてのバイトは、16バイトに揃えられた16バイトの量の範囲内です。
アクセスsはインナーWではありませんライトバックまたはアウターW通常のキャッシュ有能なメモリ
命令がaligne dアクセスと同じシングルコピーアトミック性プロパティで機能する場合、PEは機能しません。
以下の場合を除いてアライメントフォルトを生成します。
SCTLR_ELx .A == 1
アクセスはデバイスメモリへのアクセスです
メモリの全バイトではない場合ssは、16バイトに割り当てられた16バイトの数量で、
LDAPR
LDAPRH
LDAPUR
LDAPURH
LDAPURSH
LDAPURSW
LDAPURW
LDAR
LDARH
LDLAR
LDLARH
STLLR
STLLRH
STLR
STLRH
STLUR
、そして
STLURH
次のいずれかの場合、PEは整列エラーを生成します。本当です:
SCTLR_ELx .A == 1
SCTLR_ELx .nAA == 1
B2 AArch64アプリケーションレベルメモリモデル
B2.5アライメントサポート
B2-118 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
アクセスはデバイスメモリへのアクセスです
負荷取得/ Sの場合トレレ容易化命令は単一コピーアトミックではない、アーキテクチャは順序を定義しない
の違いアクセスの激しい取引SESは、DEFI 互いに対して単一の命令によって定義さ
建築家eは、ロードやストアが不要であることを要求しません。11バイトのメモリアクセス
16バイトの量は、16のに整列バイトシングルコピーアトミックです。
以下も参照してください。シングル警官への変更Y ARMv8.4でアトミックページ上 B2-93
B2 AArch64アプリケーションレベルメモリモデル
B2.6エンディアンのサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-119
ID103018 非機密扱い
B2.6 エンディアンのサポート
ARMの弓のエンディアンネスの一般的な説明反復は、エンディアンと
メモリアドレス指定 アーム・アルキットecture。
以下のサブセクションでは、アーキテクチャでサポートされているエンディアン方式について説明します
命令のエンディアン(B2-120ページ)
データのエンディアンページB2-120に
メモリマップペリフェラルのエンディアン
B2.6.1 エンディアンの一般的な説明 アームアーキテクチャ
このセクションでは、メモリアドレスとエンディアンの効果についてのみ説明します。クワッドワードまでのデータ要素の表示
128ビット しかしながら、この説明 larに適用するように拡張することができますgerデータ要素
住所Aの場合、図B2-2 ビッグエンディアンとするために、示して少しエンディアンメモリシステム、
アドレスAのクォドワード
アドレスのダブルワードAとA + 8
アドレスAの単語A + 4、A + 8、およびA + 12。
アドレスA、A + 2、A + 4、A + 6、A + 8のハーフワードA + 10、A + 12、およびA + 14。
アドレスA、A + 1のバイトA + 2、A + 3、A + 4、A+ 5、A + 6、A + 7、A + 8、A + 9、A + 10、A + 11、A + 12、A + 13、
A + 14、およびA + 15。
用語 図B2-2 以下の定義を有します:
B_A アドレスAのバイト
HW_A H アドレスのalfword A.
MSByte 最上位バイト。
LSByte 最下位バイト
図B2-2エンディアン関係
ビッグエンディアンメモリシステム
リトルエンディアンメモリシステム
B_A + 15 B_A + 14 B_A + 13 B_A + 12 B_A + 11 B_A + 10 B_A + 9 B_A + 8 B_A + 6 B_A + 5 B_A + 4 B_A + 3 B_A + 2 B_A + 1 B_A
HW_A + 14HW_A + 12HW_A + 10HW_A + 8HW_A + 6HW_A + 4HW_A + 2HW_A
住所の単語 住所のA + 12 ワード 住所のA + 8 ワード 住所のA + 4 ワードA
アドレスのダブルワード アドレスのA + 8 ダブルワードA
アドレスのクォドワード A
インクリメントバイトアドレス
LSByteMSByte
インクリメントバイトアドレス
B_A + 15B_A + 14B_A + 13B_A + 12B_A + 11B_A + 10B_A + 9B_A + 8B_A + 7B_A + 6B_A + 5B_A + 4B_A + 3B_A + 2B_A + 1B_A
HW_A + 14HW_A + 12HW_A + 10HW_A + 8HW_A + 6HW_A + 4HW_A + 2HW_A
住所の単語 A + 12住所の単語 A + 8住所の単語 A + 4住所の単語 A
アドレスのダブルワード A + 8アドレスのダブルワード A
アドレスのクォドワード A
LSByteMSByte
B2 AArch64アプリケーションレベルメモリモデル
B2.6エンディアンのサポート
B2-120 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
ビッグエンディアンとリトルエンディアンのマッピングスキームクワッドワードのバイトの順序を決定します。
ダブルワード、ワード、またはハーフワードが解釈されますたとえば、住所からの単語のロード
0x1000
常に結果
メモリ位置のバイトへのアクセス
0x1000
0x1001
0x1002
、そして
0x1003
エンディアンマッピング方式
重要性を決定するこれら4バイトのうちe
B2.6.2 命令エンディアン
ARMv8-Aでは、A64命令 持っている 32ビットの固定長で、常にリトルエンディアンです。
B2.6.3 ダットエンディアン
SCTLR_EL1 .E0E、EL1以上で設定可能EL0で実行するためのデータのエンディアン決定する
エンディアン変換に使用されるデータサイズ
tのサイズですロードまたは格納されているデータ値SIMD、浮動小数点レジスタ、および汎用の ed
ロードとストアを登録します。
サイズはデータ要素ENTそれはLですSのために oadedかstoredIMD要素とデータ 構造荷重および 店。
詳しくは、SIMD操作のエンディアンを参照してください
注意
これは、Armv8アーキテクチャが128ビットエンディアン変換の要件を導入することを意味します。
指示to一般的な目的でバイトを逆にするポーズレジスタまたはSI MDとフローラティンポイント
登録
アプリケーションまたはデバイスドライバは、メモリマップペリフェラルとのインタフェース必要な場合があります。すべてのレジスタまたは共有メモリ
ではない構造内部dと同じエンディアンアタ構造。シミラ走るオペレーティングのエンディアン
システムが周辺レジスタのシステムと一致しない可能性があります。共有メモリ目にESEのCエース、PEが必要s効率cient
データのエンディアンを明示的に変換するためのメソッド。
T有能なB2-2 このfu提供する指示を示しています国籍:
SIMD操作のエンディアン
SIMD要素荷重/ S引裂き指示転送vect またはメモリとSIMDの間の要素の数
浮動小数点レジスタファイル 指示イオンは、トランスフデータのサイズとサイズ要素
転送中です。この情報mationをロードするために使用される、両方で正しくデータをストアビッグエンディアンとリトルエンディアン
システム
例えば:
T有能なB2-2 Byte reversalの指示
機能 説明書 ノート
32ビットワードの逆バイト
ある
a。 複数で動作できます 言葉
REV32 一般用 目的レジスタ
レジスタ全体のバイトを反転する。REV 汎用レジスタで使用する。
16ビットのハーフワードの内のバイトを逆REV16 一般-で使用する場合 目的レジスタ
ダブルワードの要素を反転、ベクトルREV64 SIMDおよび浮動小数点レジスタで使用
単語の要素を逆にする、ベクトルREV32 SIMDおよび浮動小数点レジスタとともに使用します。
haの要素を逆にするlfwords、ベクトルREV16 SIMD浮動小数点レジスタと使用するために
B2 AArch64アプリケーションレベルメモリモデル
B2.6エンディアンのサポート
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-121
ID103018 非機密扱い
LD1 {V0.4H}、 [X1]
これにより、4つの16ビット値を持つ64ビットレジスタがロードされます。4つの要素はregに現れます配列順のイスタ、 とともに
最下位アドレスからフェッチされた最下位インデックス要素バイト順要素内のesは
図B2-3に示すように、エンディアン構成したがって、エレの注文の意味 レジスタは 同じ
endianness設定にかかわらず
図B2-3 SIMDバイト順
BigEndian ()
擬似コード関数は、データの現在のエンディアンを決定します。
BigEndianReverse ()
擬似コード関数はエンディアンを逆にしますビット文字列のs
BigEndian ()
そして
BigEndianReverse()
関数はで定義されています 第J1章ARMv8疑似コード
B2.6.4 メモリマップペリフェラルのエンディアン
全メモリマップペリArm建築で定義されている周辺機器ctureはリトルエンディアンでなければなりません。
whicの周辺機器この要件が適用されます。
debugge用にメモリマップされたレジスタインターフェイスRまたはクロストリガインタフェースへ 参照章H8をについて
外部デバッグレジスタ
メモリマップドレジスタinterfaのCE システムファイルへレベル実装 ジェネリックTのイマー、 見る
チャプテr I 2 Syステムレベルの実装ジェネリックTの ti onimer
メモリマパフォーマンスモニタへのレジスタ付きレジスタインタフェース第3章を参照してください。外部推奨
パフォーマンスモニタへのインタフェース
メモリマアクティビティモニタへの登録済みレジスタインタフェース、see 第I4章推奨される外部
インタフェースt活動 モニター
メモリーマPpedレジスタインタフェースアーム汎用インタフェース コントローラARMを参照してください
®
汎用割り込み
管理古いArチャイテクターe仕様、GI C arチャイテクターEバージョン3.0 そしてバージョン4.0。
Arm t へのメモリマップドレジスタインターフェイスレースコンポーネント。見る、例えば、ARM
®
埋め込み
Tレースマックレースすべてのアーチurを繰り返すE仕様、ETMv4。
D [15:8] D [7:0] C [15:8] C [7:0] B [15:8] B [7:0] A [15:8] A [7:0]
4つの16ビット要素を含む64ビットレジスタ
0
1
2
3
4
5
6 D [7:0]
C [15:8]
C [7:0]
B [15:8]
B [7:0]
A [15:8]
A [7:0]
0
1
2
3
4
5
6
D [7:0]
D [15:8]
C [7:0]
C [15:8]
B [7:0]
B [15:8]
A [7:0]
A [15:8]
メモリシステム
リトルエンディアンアドレッシング(LE)
メモリシステム
ビッグエンディアンアドレッシング(BE)
LD1 {V0.4H}、[X1] LD1 {V0.4H}、[X1]
77 D [15:8]
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
B2-122 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B2.7 メモリの種類と属性
ARMv8では、広告へのアクセスの順序メモリのドレス呼ばれる メモリ順序モデルとして、dはによって定義された
メモリ属性があります。次のseこのモデルの説明は次のとおりです。
通常 メモリ
デバイスメモリ B2-126ページの y
メモリアクセス制限ページB2-131に
B2.7.1 通常メモリ
通常のメモリタイプ属性システム内のほとんどのメモリに適用されます。それは大戦を意味しますeは許可されています
アーキによってアクセス許可にかかわらず、これらの場所への投機的データ読み取りアクセスを実行するための技術ons
これらのloのカチオン。
通常の私モリータイプは次のprを持っています事業所:
書き込みto記憶場所のウィット通常の属性eは有限の時間で終了するe。これはつまりグローバルに
のために観察された 共有性有限時間での記憶場所のドメインノンキャッシュ用有効な場所、
場所はすべてのob サーバーによって有限時間で監視されます
コンプリートメモリlへの書き込みノーマルアトリビュートは、世界的にシェアアビに注目されていますライティ
memのドメイン有限時間でのオリの位置 明示的なcを必要としない痛みメンテナンス説明書onsまたは
バリア。いいえの場合nキャッシュ可能な場所、完全なd wr iteは、すべての観測者に対して有限で有限に観測されます。
説明を必要としない時間メンテナンスの指示や障壁を守ってください。
W記憶場所への儀式通常メモリ属性を持つイオンキャッシュ不可であることを確認する必要がありますああ、
その場所の終点 有限時間の記憶システム。
境界整列されていないメモリアクセスcan通常メモリにアクセスするシステムはそのようなものを生成するように設定されています
アクセス
PE以外の メモシステムが識別できるようにするための要件はありませんアクセスされた要素
マルチレジでSter Load / St鉱石の指示。Multi-rを参照してくださいegister load sとstor通常メモリアクセスする es
B2-126ページ
注意
通常のメモリ属性は適切ですまたは、べき等のメモリの場所。
以下のすべての特性を発揮します。
- 読み取りアクセスは副作用なしで繰り返すことができます。事実です。
- 読み取りアクセスを繰り返すと、 reaになっているリソースに書き込まれた最後の値d。
- 読み取りアクセスが可能HA ノーサイド-EFとdditionalメモリ位置事実です。
- W儀礼アクセス 繰り返すことができますtの場合、副作用なしのd彼の内容アクセスした場所 あります
このセクションで説明されているように、繰り返される書き込みの間で、または除外の結果として変更されません
- 整列されていないアクセスをサポートできます。
- アクセスsはbefにマージすることができますタールにアクセスする鉱石メモリシステムを入手してください。
アクセスシーケンス を生成する命令SES で説明したようにアームARで不可分チャイテクター電子上の
ページB2-92 は、の結果として放棄される可能性がありますアクセスのシーケンス中に撮影されたことに気付い
例外から戻る 命令が再開され、したがって1つ以上のメモリ位置
アクセスされる可能性があります複数回。これにより、 繰り返し書き込みacされている場所にアクセス
令状の間に変更eアクセス
アクセス用通常メモリ
DMB
必要な順序保証するためには指示が必要です
次の節では、そのことについて説明します。通常メモリのer属性:
シャー 有効な通常メモリ(B2-123ページ)
非シャープ 有効な通常メモリ(B2-124ページ)
キャッシュ可能性 通常メモリの属性(B2-124ページ)
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-123
ID103018 非機密扱い
また見なさい:
マルチr ロードとストアのegisterB2-126ページの「通常メモリ」アクセスする es
•の原子性 アームアークハイテクターB2-92ページの e
メモリバリア(B2-103)
コンカー 命令の修正および実行B2-94ページを参照してください
共有可能ノーマルメモリ
通常のメモリ位置以下のいずれかである共有可能性属性。
内部共有可能、適用されることを意味しますアクロスは内部共有可能な共有ドメインです。
それはapplie意味外部共有可能、両方の内部共有可能渡っ秒NDにアウト共有可能な共有可能性
ドメイン
共有不可。
共有性の属性は、最低気温のデータの一貫性の要件カチオン、そのハードウェアが実施しなければならない彼ら
の一貫性要件には影響しません。構造体フェッチでは、同期とcoherを参照してください。間で問題を囲む
データと命令がアクセスするページにB2-114
注意
システム設計者は、sharea bility 属性を使用してNormal mem内の場所を指定できますそのためのory
一貫性を維持する必要があります。ハウver、ソフトウェア開発者はその特定を想定してはいけませんメモリを使う
共有不可の許可としての場所なので、場所の非整合性について推測するための準備ができています。
の間共有メモリシステム内のferent PE そのような仮定は異なる間で移植性がありません
マルチプロセッシング実装shareabiliを使用する可能性があるntationsty属性 マルチプロセッシング
実装する実装する可能性がありますntキャッシュ本質的に共有されている異なる処理要素
このアーキテクチャは、同じoを使用するすべてのPE 前提としています。オペレーティングシステムまたはハイパーバイザーが同じインナーにある
共有可能な共有ドメイン
シェア可能、インer Shareable、そしてOuter Sharea通常メモリ
アーム建築家eシステムをシリーズとして抽象化する 内部および外部共有可能性ドメイン
各内部共有性ドメインには、tの各メンバーに対してデータコヒーレントなオブザーバーのセットが含まれています。帽子セット
内部共有属性を使用したデータアクセスそのセットの任意のメンバーによって作られた。
各アウターシェアーブ機能ドメインにはオブザーバのセットが含まれていますそれは、その集合の各メンバーに対して一貫性のあるデータです。
外部共有属性を使用したデータアクセスそのセットの任意のメンバーによって作られた。
以下の性質も成り立つ
各オブザーバーはメンバーにすぎません単一内部共有可能ドメイン。
各オブザーバーはメンバーにすぎません単一外部共有可能ドメイン。
旅館内のすべての観察者共有可能性ドメインはすべてメンバーです同じOuter Shareabilのsドメイン。
これは、内部共有可能ドメインが潜水艦用であることを意味するアウターShareabilit用の他、それはないが、Yドメイン
適切なサブセットである必要があります。
注意
すべてのデータにアクセスできるためキャッシュ不可能な場所へのアクセス時間すべての観察者にとってコヒーレントなデータであり、キャッシュ不可
場所常に治療する外部共有可能としてd。
内部共有可能ドメイン単一のハイパーバイザーまたはオペレーティングシステムによって制御されているPEセットであると予想されます。
システム。
shareabi litの使用方法の詳細y属性はシステム固有のものですシック。B2-124ページの例B2-1 は、その方法を示しています。
それらは使われるかもしれません。
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
B2-124 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
例B2-1の使用 共有性の属性
ある実装では、以下のものを含む特定のサブシステム2つのクラスター PEの要件には、次の要件があります。
各クラスター内ter、データキャッシュまたはunifieのPEキャッシュ クラスタは透明ですすべてのデータアクセスを借りるes
番目のメモリ位置へで共有可能オマージュ
しかし、tの間彼2つのクラスター、t彼はキャッシュします。
- データアクセスに対して 一貫性がある必要はないそれだけがあります内部共有可能属性。
- thを持つデータアクセスに対して コヒーレントであるe外部共有可能属性。
このシステムでは、各クラスタはInne異なる共有ドメインにあります。共有可能な属性、ただしすべてのコンポーネント
subsysのいます 同じ沙外部共有可能属性のためのドメイン。
システムは2つを実装するかもしれません そのような潜水艦システム。もしデータキャッシュesまたは1つの統合キャッシュ サブシステムはありません
透明な他のサブシステムからのアクセスへのt幹、th はsystemには、2つの共有可能性ドメインがあります。
システム設計者に 2つのレベルの共有性を持たせることで、パフォーマンスと電力のオーバーヘッドを削減できます。
Outer Sharea ble共有可能性 domaの一部である必要がない共有メモリの場所に。
共有可能ノーマル用 記憶、ロードEエクスクルーシブとストーe-Exclusive同期プリミティブは考慮に入れます
同じShareabilityドメイン内の複数のオブザーバによるアクセスの可能性
共有不可のノーマルメモリ
Normal mの場合エモリーの場所、ノンシャール有効な属性IDlである通常の記憶を意味しますアクセスしたい
単一のPEによってのみ。
Normal mの位置共有不可能な属性を持つ感情データを作るのに hardwa reを必要としない アクセス
別の tを除いて、オブザーバーは家賃をまとめます彼の記憶は キャッシュ不可。他の場合は、 sh 以外の場所では使用できません。
観察者はメモリシステムを共有するキャッシュメンテナンスの指示を必ず使用してくださいイオン、存在する場合キャッシュの数
オブザーバー間でコミュニケーションをとるとき、一貫性の問題につながる可能性があります。このカフェのメンテナンス要件
これは、メモリの順序付けを確実にするために必要なバリア操作に加えてである
共有不可のノーマルメモリの場合、それは
ロード排他的かどうかを定義した実装
Store-Exclusive同期プリミティブves は、複数のオブザーバーによるアクセスの可能性を考慮に入れています
通常メモリのキャッシュ可能性の属性
外部共有可能であることに加えて、 私は、共有可能nnerまたは非共有可能な、各ノーマルメモリの領域が割り当てられ、
次のいずれかであるCacheability属性。
Wライトスルーキャッシュ可能。
Wライトバックkキャッシュ可能。
キャッシュ不可。
また、Wのライトスルーキャッシュ有能でWライトバックキャッシュ可能ノーマルメモリレジスons:
リージョンには、読み取りおよび書き込みアクセス用のキャッシュ割り当てヒントが割り当てられている場合があります
それは
実装がキャッシュ割り当てに問題があるかどうかを定義 ts ca nには追加の属性があります。
T一時的または非t一時的です。
詳細については、キャッシュ機能を参照してくださいキャッシュ割り当てD4-2356ページの「 hi nts」および「一時的なヒント」を参照してください
記憶場所は販売することができますヘクタールとしてD ヴィング異なるキャッシュ可能性は、たとえば、属性でエイリアスを使用する場合
VAからPマッピング:
属性の場合違いはcだけです痛みの割り当てのヒント、これはafではありませんbehaのfect ことへのアクセスのviorを
ロケーション。
それ以外の場合は、「メモリ属性の不一致」(B2-132ページ)を参照してください
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-125
ID103018 非機密扱い
キャッシュ可能性属性S PR ovideコヒーレンシ機構オブザーバーとコントロール共有性の外側にあります
メモの領域のドメインryいくつかのケースでは、私たちWrite-Thのeラフキャッシュ可能または のキャッシュ不可領域
メモリは、コヒーレンシを制御するために、uよりも優れたメカニックを提供する可能性があります。ハードウェアの一貫性
メカニズムまたはcaの使用メンテナンスルーチン To番目は終わり、tは彼の建築は次の特性を要求する
キャッシュ不可またはWの場合儀式-キャッシュ可能メモリを介して:
Nのメモリ位置への書き込み完了オンキャッシュ可能またはWライトスルーレベルのキャッシュ可能
観察によって作られたキャッシュメモリアクセス システム内のキャッシュのレベルは、すべてのオブザーバに表示されます。
キャッシュレベルの範囲外でメモリシステムにアクセスします。明示的なキャッシュメンテナンスの必要性
メモリ位置への書き込みが完了した。ファイルに対してキャッシュ可能な Nオブザーバによって作成されたキャッシュのレベル
キャッシュレベル外のメモリシステムへのアクセスは、すべてのオブザーバに表示されます。メモリにアクセスする
キャッシュレベル内のシステムwitho明示的なキャッシュメンテナンスが必要です。
Normaへのアクセス用非caであるlメモリいやらしい
DMB
命令はBarrier-ordered-bを導入します前に
すべてのAC上の関係単一のペリフェラルまたはブロックkのメモリにアクセスします。
実装定義サイズ。
詳細については、またはを参照してください。deringとobservability (B2-98ページ)
注意
実装するメンタレーションはtを使うことができます彼はal locationをキャッシュしていますキャッシュのパフォーマンス上の利点の可能性を示すヒントがありますにとって
例えば、プログラマーは、メモリの一部がうまくいかないことを知っているかもしれません。するG 再度アクセスして良いだろう
キャッシュ不可として扱われます。はっきりしたattriを持つメモリ領域間のイオン異なるbutesキャッシュに
割り当てのヒントは、パフォーマンスのヒントとしてのみ存在します。
通常メモリ用、Armの建築は提供しますs 悪質な属性それぞれ独立して定義されているテスト
2つの概念レベルのキャッシュ、内部キャッシュ外部キャッシュ betw関係EENこれら概念レベル
キャッシュとthの実装された物理レベルのキャッシュは
実装が定義されており、
内側の境界そして王ター共有可能ドメイン。しかしながら:
内側とは内側を指すほとんどのキャッシュ、私キャッシュをaning それはclですPにosestE、そして常に税込を使う
最低レベルのcaチェ。
キャッシュなしatは内部キャッシュによって制御されます能力ttributesは、CAの外側に位置することができますによって制御され、CHE
外カシャビリty属性
実装にはないかもしれませ 外部キャッシュ
例B2-2 例B2-3(B2-126)、および例B2-4 onページB2-126 は可能な方法を記述します
として実装3レベルのキャッシュを持つシステム レベル1 (L1)からレベル3 (L3)
注意
L1キャッシュはPEに最も近いレベルです。P. B2-1メモリ階層」を参照してください。11
一貫性を管理する場合、システム設計は内側と外側両方のcacheabilを考慮しなければならない以下のような属性属性
共有可能性アトリバテ。これは、ハードウェアがキャッシュの一貫性を管理する必要があるためです。
ある概念的な他の概念レベルがキャッシュ不可属性を持っている場合でも同じです。
例B2-2 2つのinnを使った実装erと1つの外部キャッシュ レベル
脅威を実行するシステム内のキャッシュのレベル(L1からL3まで)。
内部キャッシュ可能性attributの電子L1に適用 L2キャッシュ
外部キャッシュ可能性属性の適用 L3キャッシュに。
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
B2-126 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
例B2-3 内部キャッシュレベルと外部キャッシュレベルなしの実装
3つのレバーを実行するシステム内のキャッシュのls、L1からL3 、内部キャッシュを含むbility 属性がL1、L2に適用されます。
そしてL3キャッシュ。Outer cacheabiliを使用しないty属性
例B2-4実装上でentation Eの内側と外側の2つのキャッシュルvels
脅威を実行するシステム内のキャッシュのレベル(L1からL3まで)。
内部キャッシュ可能性属性の適用 L1キャッシュに。
外部キャッシュアビリティ属性eをL2に適用 L3キャッシュ
マルチレジスタロードとs通常メモリにアクセスするtores
すべての器用に複数の汎用レジスターをロードまたは保管しているもの例外レベルからのister がない
これらによってアクセスされる要素のサイズを識別できるようにするために PEを超えるメモリシステムの要件
命令をロードまたは保管する。
すべての器用に複数の一般目的の登録をロードまたは保管しているもの例外レベルからの順序
どのレジスタがacであるかcessedはアーキテクチャによって定義されていません。
すべての器用に例外レベルから 1つまたは複数のSIMDおよびFPレジスタをロードまたはストア
メモリの必要条件 エレメントacのサイズを識別できるようにするための、PEを超えたシステムこれらに恵まれた
命令をロードまたは保管する。
B2.7.2 デバイスメモリ
でのデバイスメモリタイプtr ibutes はloがアクセスするメモリ位置を定義します陽イオンは副作用を引き起こす可能性がありますフェクト、
あるいは、ロードに対して返される値が、実行されたロードの数に応じ変わる可能性がある場所。T根っから、 デバイス
メモリ属性は私たちですメモリが追加された周辺機器と同様の場所チオン。
ARMv8 Dの属性デバイスメモリは次のとおりです。
GまたはnGとして識別される収集 収集」(B2-127)を参照してください
並べ替えのIdent RまたはnRと同じです。を見てください。 並べ替えページB2-129に
初期Wr繰り返しの確認
EまたはNEとして識別、参照EをアーリーWアクノwledgement ページB2-130に
ARMv8デバイスのメモリタイプは以下のとおりです。
Device-nGnRnE デバイスが収集されていない、再注文されていない、いいえ早期書き込み確認。
アーキテクチャの以前のバージョンの Strongly-orde redメモリタイプと同等です。
Device-nGnRE デバイス非収集、非再注文、耳 承認を書きます。
アーキテクチャの以前のバージョンのデバイスメモリタイプと同等
Device-nGRE デバイス非収集、再注文、初期W 儀式謝辞。
ARMv8はこのメモリタイプを変換テーブルfoに追加します。以前のバージョンで見つかったrmats
建築学、建築物、建築様式Device-nGREメモリへのアクセスを注文するにはバリアの使用が必要です。
Device-GRE デバイス収集、並べ替え、初期W 謝辞
ARMv8はこのメモリタイプを変換テーブルfoに追加します。以前のバージョンで見つかったrmats
建築学、建築物、建築様式デバイスGREメモリには、最も少ない制約があります。それはavesに似ている
通常の記憶、そのSpecuの制限付きデバイスへの相対アクセス-GREメモリは
禁止されています。
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-127
ID103018 非機密扱い
まとめてtこれらは任意のデバイスメモリタイプと呼ばれますリストの下に行くと、メモリタイプが説明されています
弱くなるにつれて会話するリストが上がるにつれてメモリタイプはstrを取得すると記述されます。こんにちは
注意
タイプのリストが示すように、これらは追加でトリビュートは階層的です。 たとえば、
ギャザリングは再注文とアーリーWも許可しなければなりません謝辞
アーキテクチャでは、各アーキテクチャを区別するための実装は不要です。これらのメモリタイプと
Armは、すべての実装がそうするわけではないことを認識しています小節thatは各属性を説明します。
atの実装規則について説明します。オマージュ
- 強いgly-ordered memoryこれはエクイあるDevice-nGnRnEメモリタイプの。
- デバイスメモリこれは、Device-nGnREメモリタイプと同等です。
これらのすべてのメモリタイプには、次の特性があります。
投機的データアクセスは、任意のデバイスメモリが割り当てられた任意のメモリ位置には許可されません。リブート。この
各記憶を意味する任意のデバイスメモリタイプへのアクセスは、単純な方法で生成されるものでなければなりません。
プログラムの順次実行
これに対する以下の例外が適用されます。
- SIMDおよび浮動小数点命令によって生成された読み出しは無効なバイトにアクセスできます。明示的に
インによってアクセスされたバイトの場合は牽引16バイトのウィンドウでアクセスされたar e、アリグ16バイトにすると、
少なくとも含む 説明的な1バイトインストラクターによるアクセス
- で デバイスメモリ用属性を収集し、thによって生成された読み取りe
LDNP
説明書 あります
受け入れを許可明示されていないSSバイト命令によってアクセス、提供そのバイト数
アクセスされるのは128バイトのウィンドウです並んでいる 128バイトまでです。
命令によって明示的にアクセスされます。
- 荷物や物置命令はメモリアクセスのシーケンスを実行するesではなく、es
シングルコピーアトムiciの規則で定義されているシングルコピーアトミックアクセスty、これらのAC発生する可能性があります
マルチティムExecutiの結果としてのesロード命令またはストア命令を実行する。Prを参照シングルコピーの操作
アトミックアクセス(B2-93ページ)
注意
- Atomicで説明されているようにアクセスのシーケンス を生成する命令ARMの中の氷テクターe
B2-92ページで、次のシーケンスの間に例外が発生したために放棄されることがあります。
アクセス から帰って 例外、t彼の指示は再開されます、したがって、1つ以上の
メモリ位置m複数回アクセスする必要があります。Thローカリティへのアクセスが繰り返される可能性があります。
プログラムは単一のアクセスのみを定義します。この理由のために、アームは強く推奨しません。
デバイスメモリへのアクセスは、境界をまたがる単一の命令から実行されます。のy
翻訳グラニュルかそれとも私は他の方法でできるか一部のアクセスが中断されることになります。
- W他の人には見えない儀式の投機bserversはすべてのメモリタイプで禁止されています。
私への手紙任意のデバイスmとのメモリ位置emory属性が完成しました時間です。これはつまり
は全世界の観測者に対して観測されています。 有限時間のシステム
オブザーバによる明示的な書き込みなしに 任意のデバイスメモリ属性を持つ場所が変更された場合、 この変更
グロブでなければならないt内のすべての観測者について同盟者彼は有限時間でシステムを組む。しょ変化が起こるかもしれない
ステータス情報を保持する周辺の場所
任意のデとメモリロケーションへの書き込み完了副くれmory属性はすべての人にグローバルに見られます
明示的なメンテナンスを必要とせずに有限の時間でオブザーバ
メモリ位置 へのデータアクセスは、システム内のすべてのオブザーバにとって一貫性があります。
外部共有可能として扱われます。
メモリ位置任意のデバイスメモリ属性を使用 キャッシュに割り当てることはできません。
Wnyデバイスメモリ属性を持つメモリ位置への書き込みは、エンドポイントに到達する必要があります。そのアドレスのt
有限時間内のメモリシステムT根っからエンドポイントは周辺機器か物理メモリです。
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
B2-128 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
アクセント用任意のデバイスメモリへのアクセスオリ型、
DMB
命令は障壁を導入しますすべての上の順序の前の関係
へのアクセス シングルペリフェラル実装定義サイズのメモリのブロックまたはブロック多くのための
情報、またはを参照deringと観測B2-98ページ
任意のDeviでメモリへのすべてのアクセスceメモリ属性を調整する必要があります。NY非整列アクセスが発生します
最初の駅でAlignment faultその場所をDeviceとして定義した翻訳のge
注意
HCR_EL2 .TGEであるシステムのEL1&0変換方式では==1とHCR_EL2 .DC==0、任意
その結果生じたアライメント不良すべての場所が扱われるという事実からのtsDeviceが最初の段階で障害であるため、d
翻訳。これはESを引き起こしますR_EL2 .ISS [24]を0にする。
ハードウェアは、メモリからの投機的な命令フェッチを妨げませんデバイスのいずれかとの位置
メモリ属性unleメモリ位置はExecute-neverとしてマークされます。すべての例外レベルに対して。
注意
これはスペキュラを防ぐことを意味します私からの命令フェッチデバイスメモリのあるメモリロケーション
属性、任意のデバイスメモリタイプに割り当てられている任意の場所は、必ず「実行不可としてマークされている必要があります。
すべての例外レベルls。をマークしなかったメモリlocati 任意のデバイスのメモリとの実行ネバーなどの属性
すべての例外レベルでprogrアーミングエラー
メモリも参照してください。 アクセス権発情B2-131ページを参照してください
変換テーブルのメモリタイプは、TCR_ELx内でデバイスメモリタイプとして定義することはできません
EL1&0翻訳レジについて私、ステージ1の変換テーブルウォーク中に行われたメモリアクセスは
第2段階の翻訳、およびこの第2段階の翻訳の結果として、第1段階の翻訳からのアクセス
テーブルの散歩は記憶場所に作られるかもしれないション任意のデバイスメモリタイプ。これらのアクセスmigそれは作られる
投機的にときにの値 HCR_EL2 .PTWビットが1の場合、最初のステージが実行されるとステージ2許可エラーが生成されます。
翻訳テーブルe散歩ができる 任意のデバイスメモリタイプに。
注意
一般的には、変換テーブルを作成しても、デまで徒歩バイスメモリタイプはプログラミングエラーの結果です
命令フェッチの場合、分岐によってプログラムカウンタが次のようにメモリ領域を指すようになる場合デバイス
現在の例外レベルに対して「絶対に絶対」とマークされていない属性。実装では、次のいずれかを実行できます。
T講義をやり直す私たちのようにメモリの場所へNormal Non-cacとの連携ヘーブル属性
Tペルミを覚ますssion fault。
集まる
[デバイスメモリ]属性で、
Gはそれを示します 場所があります Gathering属性
nG ロケーションにGathering属性ないことを示します。これは、その場所がGatheringではないことを意味します。
収集属性 それが真実かどうかを判別どちらかのための聖書:
複数samのメモリアクセス読み取りまたは書き込み、 と同じメモリ位置 にマージされる
単一トランザクション
複数tのメモリアクセス同じタイプ、読む、または 書く、difに恐ろしい記憶lmerになるべき職業に入りました
インターコネクト上の単一メモリトランザクション。
注意
これはからのライトバックにも適用されます。キャッシュ、Natural Evicによるものかどうかションまたは結果として、 キャッシュの
メンテナンス指示
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-129
ID103018 非機密扱い
Gathering属性を持つメモリタイプの場合は、これらの振る舞いの r は許可されています。
メモの場所の一貫性の規則に従います。
メモリタイプ 集まらない属性これらの動作の許可されています。結果として:
メモリ数アクセスが行われる回数は、によって生成された
単純な連続症リットルのexecがプログラムのution。
すべてのアクセスが発生します。彼らのプログラム t以外のサイズ帽子がない 私のための要件モリーシステム
PEを超えて要素acを識別できるようにするマルチレジスタのロード/ストア命令によって処理されます。見る
マルチrロードとストアのegisterB2-131ページの「デバイスメモリアクセスする es 」を参照してください
それらのメモリアクセスに影響を与えるメモリバリアによって分離されたメモリアクセス間の収集はそうではありません。
許可されています。
生成された2つのメモリアクセス間の収集Lo ad-Acquire / Store-Releasによるアクセスは許可されていません。
非収集属性を持つメモリ位置からの読み取りは開始できません。キャッシュまたはバッファしかし、しなければならない
メモリシステム内のそのアドレスのエンドポイントから送信されます。T基本的にこれは周辺機器または物理メモリです。
注意
メモリ位置からの読み取りトリビュートでのギャザリングを伴うnはから来ることができます中間バッファリング
前の書き込み それを提供:
- アクセスはで区切られいません
DMB
または
DSB
バリアthatはボットに影響を与えるアクセスのhes。
- アクセスはACを必要とする他の順序付け構造によって分離されていません。中には
注文そのような構造はLoad-Acqui reの組み合わせであるかもしれません とStore-Reリース。
- アクセスはSによって生成さません。tore-Release inst破滅。
Armアーキテクチャはプログラマを定義するだけです 目に見える行動Theref 鉱石、缶を集めます次の場合に実行される
プログラマーはr集まりが起こったかどうかわかりません
実装は許可ですmanneのGathering属性でアクセスするようにしましたと一致する
非収集属性によって指定された要件
一貫性のある方法で、実装がGatherin以外のg属性を持つアクセス実行することは許可されていません
Gathering属性で許可されている緩和
並べ替え
[デバイスメモリ]属性で、
R はそのロカを示します ションは、番目の持つ電子並べ替え属性を。ロカのへのアクセスションすることができます並べ替え
同じ内 アクセスに適用される規則通常のキャッシュ不可の私へのsモリー全メモリタイプ
Reorderingアトリビュートを使用すると、Normal Non-cachへのアクセスと同じ順序規則が適用されます。有効
記憶、参照またはdering relations ページB2-100に
nR locationにReordering属性はありませ。つまり、並べ替え以外の属性です
注意
重要ではないが PCIeなどの一部のインターコネクトファブリックでは、並べ替え順序が非常に限られています。
ソフトウェアの使用方法 の使用を禁止することは、Armアーキテクチャの範囲外です。
これらの相互接続を持つ非並べ替えメモリタイプ
非Reorde リングを持つすべてのメモリタイプ属性、単一のペリフェラルに到着するメモリアクセスの順序
IMPLEMENTAによって定義された TION 定義サイズ 周辺機器、シンプで発生するのと同じ順序である必要があります
プログラムの順次実行 つまり、アクセスはプログラム順に表示されます。Thが順序は、すべてに適用されています
非Reordering attを持つメモリタイプのいずれかを使用してアクセスするリブート。その結果、
デバイスnGnREとデバイス-nGnRnEがtにアクセスします同じ周辺機器、これらはプログラム順に発生します。メモリなら
アクセスはpeにはありません周辺機器の場合、この属性には制限はありません。
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
B2-130 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
注意
実装 シングルペリフェラルの定義済みサイズfralが当てはまります。または発注保証
によって提供される
DMB
命令。
Armアーキテクチャのみdefines プログラマに見える動作したがって、次の場合に並べ替えを実行できます。
プログラマは、自分の並べ替えがいつ行われたのかわかりません
実装
tで リオーダーによるアクセスを実行することが許可されていると一致した方法でリブート 必要条件
非Reordering属性によって指定されます。
アクセスWi を実行することは許可されていません順序付け属性を共起させるnsisteとnt
Reordering属性によって許可されている緩和
非並べ替え属性では、 Normalに適用されるもの以外に、追加のorde リングが必要です。
記憶、 の間に:
Reorder 以外で 1つの物理アドレスにアクセス属性と差分へのアクセス激しい肉体
Reordering属性を持つアドレス
Reordering以外の属性を持つ 1つの物理アドレスへのアクセス、および異なるアドレスへのアクセスt物理アドレス
通常メモリへ
non-Reordering属性を使用したアクセスとdifへのアクセス周辺機器
実装
定義済みsize。
non-Reordering属性は、たとえメモが無効になっていても、キャッシュ保守命令の順序には影響ません。
命令で指定された位置は、非並べ替え属性を持ちます。
初期Wr繰り返しの確認
[デバイスメモリ]属性で、
E 場所にEarlyがあることを示します W謝辞識別属性。
nE その場所を示します。 No Early Wがあります。確認属性。
PEが動作しているシステムアーキテクチャがそれを必要とするメモリシステムエンドポイントの場合
書き込みの確認応答はエンドポイントからのもので、No Early Wを割り当てます。AC 知識属性てと
私のデバイスモリーロケーション保証人それは:
書き込みアクセスのエンドポイントのみが戻るアクセスの書き込み確認
メモリシステムのそれ以前のどのポイントも、書き込み確認を返しません
これはつまり
DSB
バリアーtによって実行された破裂彼が演奏したPE No Eへの書き込みアーリーW儀式
確認の場所、完了のみ書き込みがメモリシステムのエンドポイントに到達した
周辺機器は、システムエンドポイントの一例です。書き込みの確認応答で th 要求する
終点。
注意
初期のW謝辞識別属性のみエンドポイントの確認応答が返される場所に影響します
acc間のエンドポイントへの到着順には影響しません。esses、によって決定されます
Device Reordering 属性、または順序を作成するためのバリアの使用
enからの 書き込み確認応答用の物理メモリマップの領域dpointが必要です
範囲外 アームアーキテクチャの概要定義であり、sの一部として定義されている必要があります。システムアーキテクト奪う
PEが動作しています。PAでrticularPCIeコンフィギュレーション書き込みとして処理されるメモリ領域
エンドポイントからの AC 知識の書き込みをサポートする予定です。
Armは、物理メモリマップのすべての領域が書き込みをサポートできるわけではないことを認識しています
エンドポイントからの確認応答。特に、アームe私の地域は投稿された通りに扱われることを期待しています
PCIeでの書き込みは、エンドポイントからの書き込み確認をサポートしません
B2 AArch64アプリケーションレベルメモリモデル
B2.7メモリの種類と属性
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-131
ID103018 非機密扱い
最大のソフトウェアcompatibilitについてはY、ARMは強くすべての標準のためのすべての周辺機器をお勧めします
ソフトウェアドライバそれは彼の使用
DSB
命令は書き込みがその終点に達したと判断する
エンドポイントからの書き込み確認をサポートする物理メモリマップの領域に配置されます。
マルチレジスタロードとストアデバイスメモリにアクセスするs
すべての器用に複数の汎用レジスターをロードまたは保管しているもの例外レベルからのister がない
これらによってアクセスされる要素のサイズを識別できるようにするために PEを超えるメモリシステムの要件
命令をロードまたは保管する。
すべての器用に複数の一般目的の登録をロードまたは保管しているもの例外レベルからの順序
どのレジスタがacであるかcessedはアーキテクチャによって定義されていませんこれはどんなタイプのものへのアクセスにもあてはまります
デバイスメモリ
1つのoをロードまたは保管するすべての命令について例外レベルからより多くのSIMD および浮動小数点レジスタ
私には必要ありません識別することができるようにPEを超えた記憶システムアクセスする要素のサイズd by
これらのロードまたはストアインアクセス用でも あらゆるタイプのデバイスメモリに
B2.7.3 メモリアクセス制御幻想
以下の制限メモリアクセスに適用されます。
生成さ れた任意の2バイト(p q へのアクセス用同じ命令:
- バイトp q mustは同じメモリタイプと鋭利な能力attriを持つそれ以外の場合は結果
されているCONSTRAINED 予測不能たとえば、
LD1
ST1
または、整列していないロードまたはストアにまたがるストア
通常メモリとデバイスメモリの境界
制約D 予測不可能です。
- posを除くシブルディファレンシャルキャッシュ内のcesLLO カチオンヒント、アーム償却DIFを持つのATE激しい
キャッシュアビリティattバイトp qに対応します。
許可された
拘束されたUNP 編集可能な動作Cr参照ページ境界を入力yと違う
メモリタイプまたは共有属性K1-7223ページを参照してください
アクセスした場合MULを引き起こす命令のSES任意のタイプのデバイスメモリへの複数のアクセスがアドレスをまたぐ
に対応する境界 実装されている最小の変換単位で、その振る舞いは
拘束された
予測不能、そしてCrデバイスアクセスペリフェラル境界をアクセスする方法については、 K1-7223を参照してください。
許可された行動 このため、アクセスすることが重要です。揮発性メモへry デバイスは作られていません
最小の実装のサイズのアドレス境界をまたぐ単一の命令の使用入力した翻訳
顆粒。
注意
- 参照される境界は、2つのデバイスメモリ領域の間にあり、両方のサイズが同じです。
最小の実装Dトランにslation顆粒と整列最小impleのサイズメンテされた
翻訳グラニュール。
- この制限は、それがインポであることを意味します揮発性メモリデバイスへのアクセスは、
交差する単一の命令ES 番目の大きさのアドレス境界E最小の実装トランスレイション
顆粒。
- ARMはこれを期待するシステムに揮発性メモリデバイスを配置することを厳しく制限することステムメモリ
expeではなくmapアライメントを認識するようにコンパイラを設定するfメモリアクセス。
B2 AArch64アプリケーションレベルメモリモデル
B2.8メモリ属性の不一致
B2-132 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
B2.8 メモリ属性の不一致
メモリ属性はconです特権ソフトウェアによって制御されます。詳細については、D5 The AArを参照してください。 ch64
V仮想メモリシステムアーキテクターe
物理メモ現在地: 不一致の属性はすべての場所にアクセスした場合は使用しません
その場所の以下のすべての属性の共通定義
メモリタイプ、デバイスまたは通常。
Shareability
キャッシュアビリty、 のために同じレベルのインナーまたはouterキャッシュ、ただしキャッシュの割り当てを除く ヒント。
まとめてseはメモリ属性と呼ばれます。
注意
この文書ではnt、用語ロケーションメモリロケーションは参照 内の任意のバイトに 番目の電子現在のコヒーレンシ・グラニュール
と交換可能に使用されている
メモリLocation が誤ってアクセスされたときched属性、onlyソフトウェア表示可能なef影響は1つ以上です
次のとおり
ユニプロセッサザーメンthへの読み書きのためのチックメモリの場所LOかもしれませんセント。これの意味は:
- 私の読み1人のエージェントによる位置検出がうまくいかない場合がある最後に書き込まれた値をそれに変換します
同じエージェントによるメモリの場所
- 複数筆記メモリへのes difを使用した1人のエージェントによるロケーション私ferent カ月ry属性はそうではないかもしれません
プログラム順に並んでいる
複数のエージェントが接続していると 、一貫性が失われる可能性があります。メモリへのアクセスに誘惑場所
プロパティが失われる可能性があります。このセクションの後の箇条書きで説明されているように、メモリタイプから派生しています
すべて専用の負荷/ Sの場合排他的な指示 アクセスするためにすべてのスレッドにわたって実行されます。 与えられたメモリ
場所は一貫したメモリ属性を使用しない、thエクスクルーシブモニターstateになる
不明です。
Wなしで書き込まれたバイト数同じW内のrite -Ba ckキャッシュ可能属性バイトとしての rite-back granule
結果としてキャッシュライト可能なライトバックで書き込まれると、結果としてそれらの値が古い値に戻される可能性があります。
キャッシュWのライトバック。
財産の喪失不一致に関連したsメモリタイプ属性は、以下のプロパティのみを参照します。
デバイスメモリNormal meのプロパティに追加のeモリー:
投機的読み取りアクセスの 禁止sses
集会の禁止。
並べ替えの禁止。
フォローのためにngの状況、 記憶場所はacですで不一致で承認されましたトリビュート、もっと
制限的な一連の動作が適用されます。各状況の説明では、適用される動作についても説明しています。
1. 唯一の記憶ならy型ミスマッチアソシエーションメモリとED 場所すべてにわたってメモリのユーザー
場所が違うデバイスメモリのentタイプ、番目すべてのアクセスは、
最も弱いデバイス私モリータイプ。
2. エージェントt帽子はその記憶を読む 場所同じ共通defini使用して共有可能のンをそして
キャッシュ可能性 属性は保証されていますそれにアクセスするために必需品頼りに〜にそのcoによって範囲requi mmonの定義
以下のすべての条件が満たされている場合に限り、メモリー属性について
すべてのwrそれは実行されますのエイリアス メモリ位置 それはの同じ定義を使用します
共有性キャッシュ可能性の属性テストします。
•次の いずれか
- EL1&0変換方式では、HCR_EL2 .MIOCNCEの値は0です。
- 書き込み権限を持つすべてのエイリアスに 内部キャッシュ可能性属性 外と同じ
キャッシュ可能性オマージュ
B2 AArch64アプリケーションレベルメモリモデル
B2.8メモリ属性の不一致
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-133
ID103018 非機密扱い
•Eトン時間er
- すべての書き込みは、のエイリアスに対して実行されます。内部キャッシュ可能性を持つメモリーの場所
外部キャッシュ可能性は、両方ともキャッシュ不可として帰属します
- すべてのエイリアスemory Location の定義を使用シェアアビリティの属性tは含む
パーマとすべてのエージェント場所にアクセスするためのission
3. 可能なソフトウェア可視効果caus mismatによって編aのched属性メモリ位置が定義されています
もっと正確に言えば、すべてのミスマtched属性は、メモリ定義する場所 の1つとして:
任意のデバイスメモリタイプ。
内部キャッシュ不可、外部N 上のキャッシュ可能なノーマルメモリ
これらの場合s、唯一許可されているソフトウェア- 目に見える効果ミスマッチのs 属性は1つ以上の
以下:
prの損失の可能性記憶に由来する作戦複数のエージェントが試行するときのy型アクセスするt
メモリの場所
同じ私へのメモリトランザクションの可能な並べ替えdifのあるモリーの場所激しい記憶
属性、ポット本質的に一貫性の喪失につながるまたはユニプロセッサのセマンティクス。可能な限りの損失
コヒーレンシまたはユニプロセッサまたはセマンティクスは、insertinによって回避できます。g
DMB
間のバリア指示
同じメモリへのアクセスLocationは異なる属性を使用する場合があります。
があるところ ユニプロセスの喪失その意味論、発注、またはR 一貫性を以下の方法が使用できます。
1. 不一致の場合 メモリロケーションの属性all 同じ共有属性を割り当てる場所その
キャッシュ可能なアトリがあります共有性の範囲内での単一のプロセッサの意味の喪失、注文、または一貫性
ドメインはuによって回避することができますこれほど優れたキャッシュ管理。Toそうするには、ソフトウェアはテクニックを使わなければならない
発注のソフトウェア管理必要なものキャッシュ可能な場所コヒーレンシ
difのエージェント激しいシェアアビリティyドメイン これはs:
Wを使用していない キャッシュ可能な場所に書き込む前ソフトウェアは無効にする必要があります
、または清潔な場所任意の薬剤に書かれている可能性がある場合は、キャッシュから 場所
Wライトバック属性。これは避けます 古いデータでLocation 上書きする可能性
キャッシュに書き込んだ後できる場所Wとrite-Back属性、ソフトウェアmus場所をきれいにする
書き込みvisiblを作るために、キャッシュから外部メモリへのe
キャッシュ可能な属性を使用し 場所読み取る前e、ソフトウェアを無効にするか、クリーンにする必要があります。
無効にする、ttから彼の場所彼はキャッシュします、toそれを確実にする に保持されている任意の値 キャッシュreflec最後に
extに表示される値記憶
•を 実行する
DMB
アクセスの共通の共有可能性に適用される sc命令によるバリア命令
の間にサムへのアクセスキャッシュ可能な場所 私たち異なる属性。
すべての場合において
場所は以下のいずれかを指します。 現在のコヒーレンシ粒内にある。
クリーンで無効な命令は、で使用できます。きれいな命令の代わりに、または無効化の代わりに
命令。
続編でこのセクションで概説した箇所 すべてのキャッシュ保守方法アクションとメモリトランザクション
それらが自然に命令されていない場合は、完了するか、バリア操作を使用して命令する必要があります。
共通のアドレスの使用を参照してください注文データや命令キャッシュ命令の完了について
D4-2371ページ
注意
Wcoheのi番目のソフトウェア管理rency競合状態はデータの損失引き起こす可能性があります。競合状態が発生します
違うとき猛禽類は同時にtを書く同じバイト 場所と無効化書きます、
1つのエージェントのクリーンシーケンスがノッチエージェントの同等シーケンスとオーバーラップます。競合状態も
どちらかのシーケンスの最初の操作がクリーンな場合に発生します 無効というよりは。
B2 AArch64アプリケーションレベルメモリモデル
B2.8メモリ属性の不一致
B2-134 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
2. もし不一致の属性場所のためのes はその多重キャッシュを意味しますLocationへのアクセスが可能
diで作られた架空の共有可能性attr最初に、次にユニプロセッサのセマンティクス、順序付け、および一貫性があります。
保証のみ 次の場合:
それぞれアクセスするPEes キャッシュ可能な属性を持つLocation は、消去を実行します。nとの無効化
ACの前後の場所そのロカやめるます。
•A
DMB
をカバーする範囲の障壁 アクセスの完全な共有可能性あらゆるアクセスの間に置かれるs
同じmemにory difを使用している場所激しい属性。
注意
ルール内の注意 このリストの1 、について可能性のあるレース条件、この規則に適用されます。
またマルチならエージェントはLoad-Excを使用しようとしますLocaにアクセスするための曖昧な、またはストア限定の指示
そして異なるエージェントからのアクセスは異なるメモリを持っています。賛辞場所 d
独占モニターr状態になります
不明です。
Arm は、ソフトウェアが誤った属性を使用しないことを強く推奨します。同じ場所のエイリアスを検索します
実装する性能が最適化されない可能性があります 不整合を使用するシステムの例エイリアス
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-135
ID103018 非機密扱い
B2.9 同期とセマフォ
ARMv8は共有メモリのノンブロッキング同期を提供しますsynchrを使ってonizationプリミティブ
このセクションのプリミティブの同期化によるメモリアクセスに関する情報は、両方へのアクセス
メモリおよびあらゆる種類のデバイスメモリ
注意
の使用 ARMv8同期プリミティブは、マルチプロセスシステム設計に対応します。
T有能なB2-3 は同期化の基本とお尻を示しています発生した
クレックス
命令。
を示す行を除く
クレックス
命令、単一の2つの命令 行は
ロードエクスクルーシブ/ S排他的命令ペアLoad-Exclusive / Sを使用するためのモデル排他的な
中断ない命令にアクセスする命令ペアメモリアドレスx は次のとおりです。
排他ロード中structionメモリアドレスxから値を読み取ります
対応するStore -Exclusive命令は書面で継続するメモリアドレスxに戻る 他にない場合のみ
観察者、プロセス、またはスレッドは、アドレスxに、より新しいストアを実行しましたストア独占ve命令
統計を返します私たちはそれをビット 麦わらを示します彼女の記憶 書き込みは成功しました。
ロードエクスクルーシブ構造体は小さなブロックを示します排他アクセス用の fメモリマークされたブロックのサイズは
実装が定義されています。マーキングと マーク付けされたメモリブロックのサイズ(B2-141ページ)A
格納- 任意の追加への排他的な指示マークされたブロックに戻るマーキング
注意
この節では、e term PE inclLoad-ExclusiveまたはStore-Exclusiveを生成できるオブザーバを使用します。
命令。
次の節では、さらに詳しく説明します。
排他的アクセス指示と非シャール 有効なメモリ位置は、B2-136ページを参照してください
排他的アクセス指示とShar 有効なメモリ位置は、B2-137ページを参照してください
マーキングや目の大きさE B2-141ページ「マーク付きメモリブロック
コンテキストスイッチのサポートページB2-141に
T有能B2-3同期n個のプリミティブと関連命令、A64命令セット
Tトランザクションサイズ 追加のセマンティクス
ロードエクスクルーシブ
ある
a。A64命令セット 内の命令。
店舗限定
ある
その他の
ある
バイト -
LDXRB STXRB
-
ロード取得/ストアリリース
LDAXRB STLXRB
-
ハーフワード -
LDXRH STXRH
-
ロード取得/ストアリリース
LDAXRH STLXRH
-
登録
b
b。 レジスタ命令は、Xレジスタをアクセスする場合はダブルワード、Wレジスタをアクセスする場合はワードで動作します。
X命令にアクセスすると、ペア命令は2つのダブルワードで動作します。Wレジスタにアクセスする場合は、2つのワードを使用します。
-
LDXR STXR
-
ロード取得/ストアリリース
LDAXR STLXR
-
ペア
b
-
LDXP STXP
-
ロード取得/ストアリリース
LDAXP STLXP
-
なし クリア - - CLREX
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-136 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
負荷限定およびS トルe独占インストラクションセージの制約B2-141ページ
スピンロックによる WFEおよびSEV 命令の使用 B2-144ページを参照してください
B2.9.1 排他アクセス命令と非共有可能なメモリ位置
whic用のメモリ位置共有可能性属性は 共有不可、独占アクセス指示に頼る
上のローカルの限定の月itor 、またはローカルモニタ、それはPEが実行されるから任意のアドレスをマーク
ロード排他命令 任意の非borted attem同じPEによるStoの使用変更する再排他的命令
任意のアドレスは、をクリアするために保証されています マーキング。
Load-Exclusive命令は、メモリからロードを実行します。および
実行PEは、物理メモリアドレスに排他アクセス用のマークを付けます。
実行中のPE メッセージのローカルモニタ独占権への賛成ss状態
ストアE排他的命令はメモリthへの条件付きストアを実行するDEPEのでLOCの状態にNDSアルモニター:
ローカルモニタがExclusive Access状態にある場合
住所が ストアの特色ve命令はaddreと同じですされているss
メートルでマーク以前の負荷による監視- 独占命令、ストアが発生します。
そうでなければ、私はtは
実装が定義されているかどうか ストアが発生します。
ステータス値はreに返されますギスター:
- 店舗が開催された場合、ステータス値は0です。
- そうでなければ、status値は1です。
元のローカルモニターPEを移行すると、Open Access状態に移行します。
Exclusivesが監視するときまたはExclusive Access stにある食べた、モニターが設定されています。
ローカルモニタがオープンアクセス状態の場合
店舗はありません。
ステータス値1がレジスタに返される
ローカルモニタOpen Access状態にあります。
独占モニターがいるときrはOpen Access stにあります。食べた、モニターは クリア
Store-Exclusive命令はthを定義します。ステータス値が返される eレジスタ
PEが任意の命令を使用して書き込むとき Store-E以外排他的命令
書き込みがtの場合O PExclusive AcとしてマークされていないAそのローカルモニタとその場所で停止アルモニターが入っている
独占記事アクセス状態は、
実装afは書き込みafかどうかを定義しました 地域の状態に影響を与える
モニター
書き込みが P独占アカウントとしてマークされているAそのローカルモニタによるess、それは
実装 定義済み
書き込みafかどうかローカルモニタの状態に影響を与える
それは
実装定義 マークされたPにストアかどうか NEDAはlocにマークを付けます以下の場合は、モニターをクリアします。
その店は観察者のothによるものです。えーthよりもE 1番目でPを引き起こしたマークされるべきです。
P. B2-137図B2-4 は、ローカルmoのステートマシンを示しています。ニトロと各操作の効果
図に示す。
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-137
ID103018 非機密扱い
図B2-4ローカルモニタステートマシン図
詳細についてはマーキングについて、参照マークとの大きさマークされたメモリブロックのページB2-141に
注意
示すように、ローカルモニタ状態機械の図B2-4
ローカルモニタの実装定義オプションはconsisです。 ローカルモニター付きのテントing
Pを持たないように構築A、しかしinsteadはすべてのacを扱いますtにマッチする彼のアドレス
前のロード除外命令。
ローカルモニタimplementatイオンはLoad-Excを認識しない可能性がありますからの凡例およびストア限定の指示
他のPE
アーキテクチャは他のPEによるロード命令を必要としません。つまり、Lo ad-Exclusive命令ではありません
効果がある ローカルモニタ上
それは
IMPLEMENTATION DEFINED EXCから移行するかどうか Open Access状態へのアクセスが許可されていない
とき
格納
または
StoreExcl
他の観察者からのものです
ローカルモニターへの変更または状態の結果投機的実行からの実行
建築家eはローカルモニタが 仕様の結果としてのオープンアクセス状態発話、または
その他の原因 Thトランジションに追加される architによるオープンアクセス状態への移行施行
表示された操作の 図B2-4
実装次のことを保証する必要があります。
ローカルモニタは、次の結果として Exclusive Access状態を除く状態に移行しているようには見えません。
一方の建築実行に示した動作の図B2-4
すべてのトランローカルモニタの設定 原因ではないOpen Access状態に 建築の執行者
図B2-4に示す動作実行の進行を無期限に遅らせてはいけません
B2.9.2 排他アクセス命令 共有可能なメモリの場所
の文脈でセクション、共有可能メモリ 場所はメモリです持っている、または扱っている職業まるで持っているかのように、
Inne r ShareableまたはOuter Shareableの共有属性です
開いた
アクセス
独占
アクセス
LoadExcl(x) LoadExcl(x)
クレックス
StoreExcl(x)
店舗(x)
クレックス
ストア(!Marked_address)*
ストア(Marked_address)*
*印の操作は可能な選択肢です
実装ATION 定義のオプション
ストア(Marked_address)*
StoreExcl(Marked_address)
StoreExcl(!Marked_address)
ストア(!Marked_address)*
図では、 LoadExclは任意のLoad-Exclusive命令を表します。
StoreExcl は任意のStore-Exclusive命令を表します
ストアは他のストア命令を表します。
どのLoadExcl操作でも、マークされたアドレスを操作に使用されるアドレスxの最上位ビットに更新します
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-138 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
共有メモリ用yロケーション アクセス手順は以下に依存します。
•A システム内の各PEのローカルモニタm、PEが実行するアドレスをマークします。
ロードエクスクルーシブ ローカルモニターは説明されているように動作します。独占ACCESs イオンと非共有可能
sharea を除いて、B2-136ページのメモリ位置Store-Exclusiveは、メモリの使用を制限されます。
グローバルモニタによって、それがthのセクションに記述されているかどうかをチェックする。以下:
- メモリを更新する
- ステータス値0を返します。
ローカルモニタは、システム内の他のPEからのアクセスを無視できます
•A Pをマークするグローバルモニタ特定のPEに対する排他的アクセスとしてのA。このマーキングは後で使用されます
Store-Exclusive tかどうかを判別第Oそのアドレス持ちでローカルモニタによって失敗しなかった可能性があります
の共有可能性ドメイン内の他のオブザーバーによるマーク付きブロックへの書き込みが成功した場合 記憶
場所はマーキングをクリアすることが保証されています。 システム内の各PEについて、グローバルモニタは次のことを行います。
- 少なくとも1つのマーク付きブロックを保持できます。
- 統計を維持しますそれが保持することができるそれぞれのマークされたブロックのための機械。
注意
各PEについては、アーキテクチャのみ 1つのマーク付きアドレスに対してグローバルモニタサポートが必要です。どんな状況でも
それはmultipの使用から利益を得るかもしれません1つのPE上でマークされたアドレスは
予測不能または
CONSTRAINED 予測不能、参照負荷独占とセントを 鉱石-EXCLUSIVのE命令たちAGお休みrictions
B2-141ページ
注意
グローバルモニタは、PE内に常駐することも、メモリインターフェイスでセカンダリモニタとして存在することもできます。
実装 の定義済みの側面モニタは、グローバルmモニターとローカルモニターはcにすることができますぶらつく
ユニットがグローバルモニタとローカルモニタの機能を実行するという条件で、単一のユニットにするこれで定義されている
マニュアル。
共有メモリ用 いくつかの実装では位置 そしていくつかのメモリタイプでは、 グローバルのプロパティ
モニターが必要 外部の機能 PE。いくつかのシステム実装実装は実装されていない可能性がありますこの機能
すべての場所でメモリの大部分では、特定の、これはに適用することができます:
システム実装内のあらゆる種類のメモリ(harをサポートしていないもの)dwareキャッシュの一貫性
キャッシュ不可メモリサポートしている実装では、キャッシュ不可として扱われる
ハードウェアキャッシュコヒーレンシ
そのようなシステムでは、それはsyによって定義されます。幹:
グローバルかどうかモニターが実装されています。
グローバルモニタが有効な場合どの広告ドレスの範囲またはそれが監視するメモリの種類。
注意
TLoad-Exclusive / Sの使用をサポートするシステムがアドレス変換を無効にした場合の排他的メカニズム
少なくとも1つを定義します メモリの場所システム内では、翻訳顆粒のサイズ以上のものメモリ
グローバルモニタをサポートするためのマップ 共通のInner Sh内のすべてのArm PEに対して領域可能ドメイン。しかしながら、 これではありません
建築家l要件 だから、archit構造的に準拠したソフトウェア相互排除を必要としないトン
Load-Exclusive / Sを使うことに頼るトレ - 排他的メカニズムであり、mは、代わりのようなソフトウェア・アルゴリズムを使用する必要があります
ランポートs 相互排除達成するためのベーカリーアルゴリズム
実装はどのメモリタイプをキャッシュ不可として扱うかを選択できるため以下のメモリタイプのみ
それは建築家ですグローバルなExclusiveのモニターを保証します。 実装されています:
内部共有可能内側Wライトバック、アウターWライトバックノルム読み取り割り当てのあるalメモリ ヒントとWr繰り返し
割り当てのヒントであり、一時的なものではありません。
外部共有可能、内部ライトバック、外部W儀式バック読む配分のヒントとWノーマルメモリ儀式
割り当てのヒントであり、一時的なものではありません。
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-139
ID103018 非機密扱い
グローバルモニタがアドレス範囲またはメモに対して実装されていない場合ry type、次にLoad-Exclusiveを実行する
またはそのような場所へのStore-Exclusive命令には、以下の1つ以上のeffがあります。効果:
命令が外部abを生成します。または
命令が
実装定義MMUエラー。これはデータアボートを使用して報告されます。
ESR_ELx .DFSCのフォルトステータスコード=
110101
あれば
実装定義 その場合、ED MMUフォルトはEL1&0変換レジームに対して生成されます。
- で定義されているメモリタイプが 原因で障害が発生した場合翻訳の最初の段階、または
翻訳の第2段階が無効になり、これが第1段階の失敗であり、例外がEL1に渡されます。
- それ以外の場合、障害は2段階目の障害であり、例外はEL2に渡されます。
この障害の優先順位は
実装定義 ED
inst裂け目として扱われる ある
NOP
ロードエキサイティング卑劣な命令は治療です非共有のloにアクセスしているかのようにdカリフォルニアンが、状態
ローカルモニターは
不明です。
Sトレ排他的なinst裂け目として扱われる アクセスしていたら 共有できない場所 しかしの状態
ローカルモニターは
不明です。この場合、構造体で排他的なストアがストア排他的なペアの場合
64ビット数量sの場合、格納されている2つの数量はアトミックに格納されない可能性があります。
彼の価値の結果レジスタにld ストア除外有用な指示になる
不明です。
また、書き込み処理用非PEのobserによって生成されたイオンは、VEのexclusを実装していないrsIVEアクセスまたはその他
アトミックアクセスメカnism、書く効果 Arm PEが使用するグローバルモニタとローカルモニタを使用しているsは
実装が定義されました書き込みは、グローバルなモニターをクリアしないかもしれません 他のPEの rs
一部のアドレス範囲
多少のメモリ タイプ。
グローバルExclusの運営iveモニター
排他的なインストゥルメント共有メモリの性能メモリからのsaロードそしてPを引き起こすのA
maになるためのアクセスexclusとして書いたへのアクセスPEを要求しています。このaccess can c独占権を濫用するアクセスマーク
他のPから削除される要求元PEによってマークされている A。
注意
グローバルモニタは共有可能な私への単一の外出排他アクセスをサポートしていますPEあたりのモリー。
1つのPEによってロード排他命令にはEFFEを有していない上にCTを他のPEのグローバルモニタ状態。
Store-Exclusive命令は条件付きストアを実行しますeからメモリへ:
ストアはONL成功が保証されてyと Pならアクセスがマークされました reの排他アクセスとしてクエスト
PEとローカルモニタの両方とg要求のためのローバルモニターステートマシンesting PEは
独占アクセスの状態 番目にケースです:
- 成功したストアを確認する ために、ステータス値0がレジスターに返されます。
- グローバルモニタステートマシンの最終状態 PEを要求する
実装 DEFINED
- アドレスがaccの場合essedは排他アクセス用にマークされています あらゆるotのためのグローバルモニタステートマシン内彼女の
PE、それから ステートマシーントランジションtオープンアクセス 状態。
ない場合ddressはeとマークされています排他的アクセス 要求元PEの場合、ストアは成功しません。
- ステータス値 の1がaに返されます tを示すように登録する店が失敗しました。
- グローバルモニターはafではありませんFE CTEDとオープンアクセススタットのまま要求元PEのe
異なる場合激しいPAは、要求元PEに対する排他アクセスとしてマークされています。
実装 DEFINED かどうか
ストアは成功するかどうか
- ストアがステータス値0に成功した場合レジスタに返されるそれ以外の場合は、値1が返されます。
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-140 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
- グローバルモニタの場合PE用のマシンが排他的アクセスにあった 前の状態
格納-そのステートマシン移行かどうかの排他的命令インプリメンテーション定義 〜へ
オープンアクセス状態
Store-Exclusive命令はthを定義します。ステータス値が返される eレジスタ
シェアでdメモリシステム、グローバルlモニター道具 別の統計各PE用のeマシン システム内。
アクセのためのステートマシンPE(n)で共有可能なメモリにSSESはCA N全てSHAに応答しますreabl 電子メモリは、VISアクセスible
それに。これは、それがに応答することを意味します。
PE(n)によって生成されたアクセス
他の強みによって生成されたアクセスメモリloの共有性ドメイン内のリバーカチオン。これらのアクセスセス
(!n)として識別されます。
私に共有モリーシステム、グローバル モニター装置 別のセント観察者ごとにマシンを食べて できる
Load-ExclusiveまたはSを生成しますtore-での独占的な指示 システム。
グローバルモニター
独占記事アクセス状態が設定されます。
オープンアクセス状態は明確です。
グローバルモニタイベントをクリア
PEのグローバルモニタ状態ExclusiveなアクセスからOpenアクセスへの変更ntが生成されます
そしてイベントで開催されましたそのPEに登録します。この登録erはWによって使用されていますイベントメカニズムについては、を参照してください。 メカニズム
D1-2255ページの低電力状態への移行
図B2-5 は、gl内のPE(n)のステートマシンを示しています。オバールモニター
図B2-5マルチプロセッサシステムにおけるPE(n)のグローバルモニタステートマシン図
詳細についてはマーキングについて、参照マークとの大きさマークされたメモリブロックのページB2-141に
注意
グローバルモニタステータスマシンの場合示すように、図B2-5
アーキテクチャは他のPEによるロード命令を必要としません。つまり、Lo ad-Exclusive命令ではありません
効果がある グローバルモニタ上
どのLoadExcl操作でも、マークされたアドレスを操作に使用されるアドレスxの最上位ビットに更新します。
開いた
アクセス
独占
アクセス
LoadExcl(x、n) LoadExcl(x、n)
CLREX(n)
StoreExcl(x、n)
CLREX(n)*
StoreExcl(Marked_address、!n)
ストア(Marked_address、!n)
StoreExcl(Marked_address、n)*
ストア(!Marked_address、n)
*印の操作は可能な選択肢です
実装ATION 定義のオプション
図では、LoadExclは任意のLoad-Exclusive命令を表します。
StoreExcl は任意のStore-Exclusive命令を表します
ストアは他のストア命令を表します。
LoadExcl(x、!n)
StoreExcl(x、!n)
店舗(x、n)
StoreExcl(!Marked_address、n)*
ストア(Marked_address、n)*
StoreExcl(Marked_address、!n)
StoreExcl(Marked_address、n)*
StoreExcl(!Marked_address、n)*
ストア(Marked_address、n)*
CLREX(n)*
StoreExcl(!Marked_address、!n)
ストア(!Marked_address、!n)
CLREX(!n)
‡StoreExcl (Marked_address、!n)は、StoreExcl がメモリを更新した場合にのみモニタをクリアします。
店舗(x、!n)
CLREX(!n)
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-141
ID103018 非機密扱い
Stかどうかore-Exclusive命令がメモリを正常に更新するかどうかは、アドレスが正しいかどうかによって異なります。
アクセスしたマークされたshareableを発行するPEの eメモリアドレスe St e-Exclusive命令、
そしてローカルとグロブかどうかアルモニターは独占州です。このため、 B2-5
ページB2-140 は、(!n)による操作がPE(n)のステートマシンの状態遷移を引き起こす方法のみを示しています
Load-Exclusive命令は、マーケティングを更新することしかできません。d共有可能メモリアドレス PEを発行する
ロードエクスクルーシブインストラクションn。
世界の月itorがExclusive Access状態にあります。
実装定義 ED かどうか
クレックス
命令はtransitioするグローバルモニタを引き起こしnは Open Acへの排他的アクセスから状態を停止します。
それは
実装の定義
- 共有への変更かどうか メモリ位置がグロバを引き起こす可能性があります移行から監視へ
独占AからACにアクセスする状態を停止します。
- 非shへの排他的ロード命令かどうか領域メモリの場所グローバルモニタを起動する
移行する オープンアクセスからExclusive Acへ状態を停止します。
B2.9.3 マーキングとマークされたメモリブロックのサイズ
Load-Exclusive命令が実行されると、結果のマークされたブロックは、最も重要度の低いビットを無視します。
64ビットメモリアドレス
ロード専用の場合onが実行され、サイズ2のマーク付きブロック
ある
バイトは無視することによって作成されます 少なくとも
メモリアドレスの有効ビット マーク付きアドレスは、このマーク付きブロック内の任意のアドレスです。のサイズ
マークされたメモリブロックは、 独占記事rESE rvation顆粒The独占記事電子のrvation顆粒であります
実装DEFINED 範囲4から512個の言葉で。
注意
この定義は、Exclusives予約顆粒が次のとおりであることを意味します。
インプリメンター中に4つの単語tation 4です。
implemeで512個の単語をa が1ある ntation1。
例えば、 実装中にである4、成功
LDXRB
住所の
0x341B4
を使ってマーク付きブロックを定義する
アドレスのビット[47:4]。これは、4ワードの記憶が
0x341B0
0x341BF
マークされている
排他的アクセス
一部の実装者ではCTRが識別した場所e独占予約グラニュルE、参照CTR_EL0をそうでなければ、ソフトウェア
最大のExclusiveの予約グラニュル、512個が実装されていると仮定しなければなりません
B2.9.4 コンテキストスイッチのサポート
例外についてローカルのmをクリアする監視人その結果、
クレックス
コンテキストswiの一部としての命令tch
ほとんどの場合、必須ではありません。
注意
コンテキスト切り替えはアプリケーションではありませんイオンレベル操作 しかしながら、t彼の情報は含まれていますを完了する
排他的操作の説明食事
B2.9.5 ロードエクスクルーシブとSトレ排他的なinst破裂使用制限
排他的ストアと排他的ストア忘れないようにすることを意図した指示ペアとしての彼女例えば、
LDXP
/
STXP
ペアまたは
LDXR / STXR
ペアTこれらの関数の異なる実装サポートするnsは、ソフトウェアが従う必要があります
メモnd resここに与えられたトリック
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-142 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
次の注意事項では、
LoadExcl
/
StoreExcl
命令ペアのいずれかの使用を示すために
ロードエクスクルーシブ/ STに示された排他的命令ペアB2-35ページの「B2-2」を参照してください番目に文脈、
LoadExcl
/
StoreExcl
ペアは2つの指示同じ実行スレッド内のイオン
独占vesは単一のoutstaをサポートします各PEの排他的アクセスを許可する実行されるスレッド
アーキテクチャはrを使わないことでこれを利用していますアドレスやサイズのチェックと同じ
IsExclusiveLocal()
関数。ターゲットVの場合のA
StoreExcl
thとは異なりますe V上記のA
LoadExcl
の命令
実行の同じスレッド、動作はすることができます
拘束された 予測不能次のような動作の BLE
-
StoreExcl
どちらかのパス 失敗するか、sta戻り値 によって
StoreExcl
UNKNOWN 、および
locの状態アルおよびグローバルモニターそのPEは不明です。
注意
これは
StoreExcl
のいくつかのインスタンスを渡す可能性があります
LoadExcl
/
StoreExcl
不一致のペア
アドレスを指定し、他のインスタンスでは失敗します。
LoadExcl
/
StoreExcl
誤ったアドレスとペアになっています。
- によってアクセスされたアドレスのデータ
LoadExcl
からアクセスされたアドレス
StoreExcl
、です
不明です。
これは、ソフトウェアが
LoadExcl
/
StoreExcl
EVとペア実際に成功するyの場合
LoadExc
lと
StoreExcl
saで実行されます私VA.
Load-ExclusiveおよびStore-Exの実​​装CLUSのアイブの命令が必要とすることができ、任意のスレッドで、それを
実行、トランザクションサイズ
StoreExcl
命令 と同じです transacti前のサイズの
LoadExcl
命令実行そのスレッドで使われました。取引する場合のイオンサイズ
StoreExcl
命令が違うからのent
前の
LoadExcl
命令の 同じthrea実行の d 、行動はすることができます拘束された
次のような動作は予測不能です。
-
StoreExcl
合格または不合格のいずれかで、ステータス値は
StoreExcl
あるUNKNOWN
注意
これは
StoreExcl
のいくつかのインスタンスを渡す可能性があります
LoadExcl
/
StoreExcl
不一致のペア
取引するイオンサイズ、および他の例のために失敗します
LoadExcl
/
StoreExcl
トランザクションが一致しないペア
サイズ
- サイズのデータ​​ブロックラの使用トランザクションサイズのrgerによって
LoadExcl
/
StoreExcl
ペア
アドレスaでによってアクセスされた
LoadExcl
/
StoreExcl
ペア、であるUN知っている
これは、ソフトウェアが
LoadExcl
/
StoreExcl
EVとペア実際に成功するyの場合
LoadExc
lと
StoreExcl
トランザクションサイズは同じです。
実装者
LoadExcl
そして
StoreExcl
命令は、どの実行スレッドにおいても、それを要求することができます。
StoreExcl
命令がsaにアクセスする私の数rとして登録 前の
LoadExcl
命令
その中で実行された糸。あれば
StoreExcl
命令アクセス別のnuレジスタの総数 前より
LoadExcl
SAでの指示実行のスレッド、動作はCONSTRAINED 予測不能です。として 結果、
ソフトウェアは信頼することができます
LoadExcl / StoreExcl
同じ番号にアクセスした場合にのみ成功するペア
レジスタ 詳細については、「制約のない予測不可能な問題」を参照してくださいABLEの動作
ロードエクスクルーシブ/ Sto再励起曖昧なアクセントの違いrのent番号エジスターB2-144ページを参照してください
LoadExcl
/
StoreExcl
次の場合に限り、ループは前進することが保証されています。
LoadExcl
/
StoreExcl
ループ
実行の単一スレッド内 このソフトウェアは、次の条件をすべて満たしています。
1 負荷 - 排他間 iveおよびStore-Exclusiveでは、明示的なメモリアクセスはありません。s、
プリロード、直接または間接ctシステム登録r書き込み、アドレスtr応答命令、キャッシュまたはTLB
イオン発生の指示、例外の返品、または間接を除く保守の指示
枝。
2 Store-Exclusive帰りのaf間 AIL INGの結果及び対応のリトライ
負荷独占:
物語はありませんesまたは
PRFM
Exclusives予約で任意のアドレスへの指示
Sによってアクセスされるグラニュールトレ排他的。
Exclusives予約グラニュル内の どのアドレスにもロードまたはプリロードはありません
thによってアクセスされたeストア独占異なるものを使用する家賃Vそのアドレスのエイリアス。
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-143
ID103018 非機密扱い
直接または間接のシステムレジスタはありません書き込み、アドレスtr回答の指示
キャッシュまたはTLBメンテナンス命令、例外生成インスタンス、例外
リターン、または間接分岐
すべての積荷と店舗は、続きではない以上512以下のiguous仮想メモリ
サイズはバイトです。
排他モニタは、アプリケーション関連の原因が発生しない限り、いつでもクリアできます。
清算はシステムではない感情的に繰り返す次のうちの少なくとも1つの終了時間内に前進するのを防ぐため
Excにアクセスしているスレッドlusivesモニターしかしながらのためにそれは許容されます
LoadExcl
/
StoreExcl
別のスレッドが繰り返し実行している場合は、進行を進めないようにループます。 次のものをきついループで
- Pへの出店C の限定モニターによってovered
- Pへの書き込みを意図したプリフェッチExclusivesモニターの対象
- データキャッシュクリーン、データキャッシュ無効化、またはデータキャッシュの実行きれいにしてインベーダーに指示を入れてください
PExclusivesモニターの対象
- 命令キャッシュを実行すると、すべての命令が検証されます。
- 命令キャッシュの実行無効化インストラクションnsからPExclusivesモニターの対象
実装では、実装を維持することが適切ではありませ
LoadExcl
そして
StoreExcl
操作が1つにまとめられる
実行のスレッド これにより、Exclusivesモニタの状態が次の状態に切り替わる可能性が最小限に抑えられます。
LoadExcl
命令と
StoreExcl
命令。Tこれまでのところ、最高のパフォーマンスのために、アームストロめちゃくちゃ
間の128バイトの制限をお勧めします
LoadExcl
そして
StoreExcl
歌の指示実行のスレッド。
アーキテクチャはExclusiveの予約グラニュルにマークできる 2048バイトの上限を設定します。
独占としてve。パフォーマンスのために理由は、アームはお勧めします そのオブジェクト exによってアクセスされる煩雑なアクセス
Exclusのサイズで区切られていますアイヴス予約グランル。これはパフォーマンですむしろガイドライン より
機能要件
データアボート例外を発生させた後、Exclusivesモニタの状態は
不明です。
•が アクセスするメモリ位置
LoadExcl
/
StoreExcl
ペアメモリ属性の場合のためのs
StoreExcl
命令がメモリ属性と異なる前のes
LoadExcl
同じ命令
実行のため、動作がされてCONSTRAINED 予測不能 これが起こるのは、
アクセスアドレスの変更
LoadExcl
命令と
StoreExcl
命令、 CONSトレーニング済み
予測不能な動作は次のとおりです。
-
StoreExcl
合格または不合格のいずれかで、ステータス値は
StoreExcl
あるUNKNOWN
注意
これは
StoreExcl
いくつかのinstaに合格するかもしれないの数
LoadExcl
/
StoreExcl
変更とペア
メモリ属性、およびfa他のインスタンスの場合は il
LoadExcl
/
StoreExcl
変更されたメモリとペアになる
属性
- によってアクセスされたアドレスのデータ
StoreExcl
あるUNKNOWN
注意
別の箇条書き このリストはthをカバーメモリ属性の場合のテスト
LoadExcl
/
StoreExcl
ペア
difを使用した結果として異なる激しいV他の属性同じ同じPを指すことA.
EFデータまたは統合キャッシュの影響による無効化、クリーン化、またはCL EANと無効に指示イオンローカル上またはグローバル
専用モニターt帽子は除外にありますアクセスアクセスteはCONSTRですAINED 予測不能、そしてその指示
mをクリアするかもしれません監視人または、それが出るかもしれません Exclusive Access状態にある住所ベースのメンテナンス用
説明書、これ同じ共有性の他のPEモニターにも適用されます。PE実行としてメインng
キャッシュma抑止力としての維持指導追加の共有ドメインによってマイニング維持されているress。
注意
Armは、実装者そのような保守指示を使用することを保証することを強く推奨する。
非セキュア状態のPEは、セキュア状態のPEでサービス拒否を引き起こすことはありません
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-144 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018
VのマッピングAからPAは
LoadExcl
命令と
STREX
命令
変更は、brの使い方で説明されているように、break-before-makeシーケンスを使って実行されます。Eak-Beforいつ作るか
translati更新テーブルエントリにページ上 D5-2516 場合、
StoreExcl
への別の書き込みの後に実行されます。
同じPとしてA
StoreExcl
それ以外の書き込みは古い翻訳が適切に行われたに行われました
無効化され、検証が正しく同期された
StoreExcl
そのモニターに合格しない
チェック。
注意
- TLB 無効化 どちらかをクリアします ローカルまたはグローバルモニタ
- PA 間でチェックされます
LoadExcl
そして
StoreExcl
Excluアクセス状態 アドレスを受け取るPEによって検出されるの結果としてost
PFRM PST *
命令
同じPに別のPEによって実行された。これは、非常に高い割合の繰り返しが
PFRM PST *
へのアクセス
メモリの場所は、他のPEの転送の進行を妨げる可能性があります。
注意
繰り返し競合する場合
LoadExcl
/
StoreExcl
複数のPEからの命令シーケンス
実装mそれを確実にしなさい 少なくとも1人のPEが前進します。
制約付き予測不能排他的ロード時の ABLE動作/ Store-Exclusive
Difnにアクセスするtレジスタ数
このセクションで述べたように、説明には指示が必要です。排他的な/ Sのイオン排他的な
ペアアクセスth同数の登録rs。このような実装では、これは振る舞いが制約されていることを意味します。
単一の場合、予測不可能 執行のスレッドn、または
•An
LDXP
2つの32ビット数の命令の後には
STXR
1つの64ビット量の命令
同じ住所
•An
LDXR
1 64ビットの命令 数量の後に
STXP
2つの32 ビット量の命令
同じ住所
これらのcasではes、
CONSTRAINED 予測不能な行動は次のいずれかでなければなりません。
STXP
または
STXR
命令は外部データアボートを生成します。
STXP
または
STXR
命令はインプリメンテーション定義を生成する データを使用して報告されたNED MMU障害
ESの異常終了ステータスコードR_ELx .DFSC =
0b110101
STXP
または
STXR
命令は常に失敗し、ステータス1を返します。
STXP
または
STXR
命令は常に成功し、ステータス0を返します。
•T時間
STXP
または
STXR
命令のパスが同じ命令が持っていたならそれが持っていたであろう行動を失敗
上記と同じサイズと数のレジスタを使用
LDXR
または
LDXP
命令。
B2.9.6 スピンロックによる WFEおよびSEV 命令の使用
ARMv8はWを提供しますイベントの作成、イベントの送信、イベントのローカル送信の指示
WFE
SEV
、そして
SEVL
、それは助けることができますトン
消費電力の削減に PE が繰り返しスピンロックを取得しようとしたために発生したバス競合
これらの命令はアプリケーションレベルで使用することができますが、何をするのか完全には理解されていません。 に依存
例外のシステムレベルの理解チオン。それらはWに記述されていますEventメカニズムとSend event onを待ちます。
D1ページ-2255 ただし、ARMv8では、グローバルモニタがPEの場合 Exclusive Acからの変更点状態を停止する
オープンアクセス統計e、イベントが生成されます。
注意
これは、
SEVL
PEに対する指示電子月itor状態は、変更があると、d。それを削除します
spinlocが必要含めるkコード
SEV
Cの後の命令スピンドルを聞くああ。
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
ARM DDI 0487D.a Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。B2-145
ID103018 非機密扱い
B2 AArch64アプリケーションレベルメモリモデル
B2.9同期とセマフォ
B2-146 Copyright©2013-2018 ARM Limitedまたはその関連会社。全著作権所有。ARM DDI 0487D.a
非機密扱いID103018

原文