本日から、ARMv8-Aとの比較に使用されるARMv7-Aの知識を含む、ARMv8-Aアーキテクチャの知識を正式に学びます。
学習プロセスで使用されるドキュメント:
- ARMv7、ARMv8のARMアーキテクチャリファレンスマニュアル
- ARM Cortex-A75、A76コアテクニカルリファレンスマニュアル(TRM)
- https://developer.arm.com/docs
ARMアーキテクチャの進化のプロセスを最初に見る
上の図から、次の結論を導き出すことができます。
- ARMアーキテクチャの進化は、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8-Aからです
- その中でも、チップの命名にはARM11の新しい命名規則Cortexが使用されています。たとえば、最新のQualcomm SM865はARMv8-AアーキテクチャとCortex-A77のコアを使用しています。
- ARMv4からARMv7は32ビットのみをサポートし、ARMv8-Aから64ビットをサポートします。これは、私たちがよくAArch64と呼ぶものです。同時に、ARMv8はARMv7アプリケーションとの互換性のために32ビットもサポートしています。
- 仮想化(仮想化)もARMv7の後に導入され、ARMv8-Aで完全にサポートされています
- TrustZoneテクノロジーは、ARMv7およびARMv8で広く使用されています
ARMv8-Aにはどのモジュールが含まれていますか?例としてCortex-A57があります。
関連する主なモジュールは次のとおりです。
- デバッグ用のARM CoreSightテクノロジー
- 汎用割り込みコントローラー(GIC)割り込みコントローラー
- メモリ保護ユニット(MMU)MMUは、仮想アドレスを物理アドレスに変換するために使用されます
- 各コアにはL1命令とデータキャッシュがあり、通常は4つのコアごとに1つのクラスターになります。
- L2キャッシュがあります
- 複数のコアがコヒーレントバスを介して通信できます
複数のクラスターの設計を見てみましょう
クラスター内の各コアにはL1キャッシュがあり、クラスターには複数のコア間でデータを共有するためのL2キャッシュがあることがわかります。複数のクラスターがAMB Coherent Busを介して通信および通信します。
ARMv8-AアーキテクチャとARMv7アーキテクチャの違いは何ですか?
- ARMv7アーキテクチャでは、4GBの最大アドレス空間のみにアクセスできますが、ARMv8-Aでは、より大きなアドレス空間にアクセスできます。
- ARMv7は4KBページのみをサポートします。ARMv8-Aでは、複数のページタイプ(4K、16K、64K)をサポートできます。アドレス範囲[32、48]は最大48ビットです
- したがって、ARMv8-Aアーキテクチャのアプリケーションは、より大きな仮想アドレス空間にアクセスできます
- ARMv8-Aは、例外レベルの概念を初めて導入しました。ARMv7では、PL0、PL1、PL2を使用します。ARMv8-Aでは、EL0-EL3が使用されます
- ARMv8-Aは、汎用レジスターの数を増やし、関数スタックのサイズを削減できます。ARMv8-Aでは30個の汎用レジスタが使用され、ARMv7では15個の汎用レジスタのみが使用されます
- ARMv8-AはTLBのサイズを増やし、TLB MISSの可能性を減らします
- ARMv8-Aアーキテクチャは、ARMv7アーキテクチャでのアプリケーションを完全にサポートします
- 待って待って
次のセクションは、次のモジュールから分析されます
- ARMv8-AおよびARMv7汎用レジスタでの汎用レジスタの比較
- ARMv8-新しく導入された例外レベル
- ARMv8での例外
- ARMv8下メモリ、MMU、LTB
- ARMv8でのGIC、割り込み
私のブログはすぐにTencent Cloud +コミュニティに同期されます。https://cloud.tencent.com/developer/support-plan?invite_code = 35qnbn3ijyaswに参加するように皆を招待してください