[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介
引流關鍵詞: optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、內存管理、頁表…
快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈
Armv9-A architecture
Armv9-A 架構建立在 Armv8-A 架構的基礎上并向前兼容。 Armv9-A 架構構成了 Arm 基礎系統架構的基礎——該規范概述了一種標準,可確保硬件和固件在系統級的廣泛應用中具有兼容性。
Armv9-A 架構引入了一些主要的新特性:
- SVE2: extending the benefit of scalable vectors to many more use cases
- Realm Management Extension (RME): extending Confidential Compute on Arm platforms to all developers. Read more about Confidential Compute and Arm architecture security features
- BRBE: providing profiling information, such as Auto FDO
- Embedded Trace Extension (ETE) and Trace Buffer Extension (TRBE): enhanced trace capabilities for Armv9
- TME: hardware transactional memory support for the Arm architecture
Armv8-A architecture
Armv8-A 架構引入了使用 64 位和 32 位執行狀態的能力,分別稱為 AArch64 和 AArch32。 AArch64 執行狀態支持 A64 指令集。 它在 64 位寄存器中保存地址,并允許基本指令集中的指令使用 64 位寄存器進行處理。 AArch32 執行狀態是一個 32 位執行狀態,它保留了與 Armv7-A 架構的向前兼容性,增強了該配置文件,使其可以支持 AArch64 狀態中包含的某些功能。 它支持 T32 和 A32 指令集。
Armv8-A 架構允許不同級別的 AArch64 和 AArch32 支持,例如:
- AArch64 only designs
- AArch64 designs that also support AArch32 operating systems and virtual machines
- AArch64 support with AArch32 at (unprivileged) application level only
Armv7-A architecture
Armv7-A 架構引入了架構配置文件的概念,這個概念在 Armv8-A 和 Armv9-A 中得到延續。 Armv7-A架構:
- 以多種模式實現傳統的Arm架構
- 支持基于內存管理單元 (MMU) 的虛擬內存系統架構 (VMSA)
- 支持 Arm (A32) 和 Thumb (T32) 指令集
該架構還支持多種擴展:
- Security Extensions
- Multiprocessing Extensions
- Large Physical Address Extension
- Virtualization Extensions
- Generic Timer Extension
- Performance Monitors Extension
所有這些擴展都是可選的,它們提供的大部分功能都包含在 Armv8-A 架構中。
Armv9-A特性總結
Arm Application-profile (A-profile) 架構面向高性能市場,例如 PC、移動、游戲和企業。 A-profile 架構的最新版本是 Armv9-A 和 Armv8-A。 Armv9-A和Armv8-A的特性對比請看下表:
| AArch64 | Armv8.0-A Armv9.0-A | AArch64 是 Arm 架構的 64 位執行環境。包括: (1)、 大物理和虛擬地址空間 (2)、 64 位寄存器 (3)、 高性能的自旋鎖 (4)、 高效的緩存管理 (5)、 為 C++11、C11、Java 內存模型設計的 Load-Acquire、Store-Release 指令。 (6)、 Arm 架構的 64 位執行環境。 |
| AArch32 | Armv8.0-A Armv9.0-A(EL0 only) | Arm 架構的 32 位執行環境。 提供與 Armv7-A 及更早版本的兼容性。 |
| Virtualization | Armv8.0-A Armv9.0-A | 支持hypervisors 和virtualization |
| TrustZone | Armv8.0-A Armv9.0-A | TrustZone 通過內置于 CPU 中的硬件強制隔離提供了一種高效的、系統范圍的安全方法。 |
| Realm Management Extension (RME) | Armv9.0-A | Realm Management Extension (RME) 建立在 TrustZone 之上,具有以下功能: (1)、兩個額外的安全狀態 (2)、兩個額外的物理地址空間 (3)、在安全狀態之間動態移動資源的能力 這些功能支持 Arm 機密計算架構 (Arm CCA) 和動態 TrustZone。 |
| Hardware-accelerated cryptography | Armv8.0-A Armv9.0-A | ARM cryptography extension |
| Neon | Armv8.0-A Armv9.0-A | Neon 技術是一種打包的 SIMD 架構。 Neon 寄存器被視為相同數據類型元素的向量,Neon 指令同時對多個元素進行操作。 該技術支持多種數據類型,包括浮點和整數運算。 |
| Virtualization Host Extension (VHE) | Armv8.1-A Armv9.0-A | 這些增強功能通過減少在host os和guest os之間轉換時相關的軟件開銷來提高 Type 2 hypervisors的性能。 這些擴展允許host os在 EL2 上執行,而不是在 EL1 上執行,而無需進行大量修改。 |
| Privilege Access Never (PAN) | Armv8.1-A Armv9.0-A | PAN 允許內核阻止訪問非特權位置,從而提供更高的健壯性。 |
| Statistical Profiling Extension (SPE) | Armv8.2-A Armv9.0-A | 在指令或微操作的基礎上設置采樣標準,然后定期采樣。 然后,每個樣本將與該樣本關聯的上下文收集到一個分析記錄中,在任何給定時間只編譯一個記錄。 當在長時間運行大型工作負載的系統上連續采樣時,分析大型工作樣本集可以提供對軟件執行及其相關性能的深入了解。 |
| Scalable Vector Extensions (SVE) | Armv8.2-A | SVE 為具有可變矢量長度的 SIMD 提供支持。 SVE 支持向量長度不可知的編碼風格,其中代碼不需要重新編寫或重新編譯,因為它動態地適應實現的向量長度。 SVE 架構允許實現向量長度高達 2048 位,其中向量長度必須是 128 位的倍數。 SVE 還支持為固定向量長度編寫的代碼。 |
| Pointer authentication | Armv8.3-A Armv9.0-A | 計算機攻擊正變得越來越復雜。 這方面的示例是利用機制,例如在Return-Orientated Programming(ROP) 和Jump-Orientated Programming(JOP) 中使用gadgets 。 為了緩解此類漏洞,Armv8.3-A 引入了一項功能,可在將寄存器的內容用作間接分支或數據引用的地址之前對其進行身份驗證。 對于地址驗證,該功能使用 64 位地址值中的高位,通常與地址空間的簽名擴展相關聯。 這允許在值的高位中引入Pointer Authentication Code (PAC) 作為新字段。 |
| Nested Virtualization | Armv8.3-A Armv9.0-A | 人們對云計算越來越感興趣,尤其是對日益普遍的用例感興趣,即用戶從基礎設施即服務 (IaaS) 提供商處租用虛擬機。 嵌套虛擬化是一個有吸引力的提議,其中打算在此虛擬機上運行的工作負載包括使用管理程序。 |
| Memory Tagging Extension (MTE) | Armv8.5-A Armv9.0-A | Memory tagging extension(MTE)使開發人員能夠識別他們程序中的內存安全違規。 |
| Branch Target Identification (BTI) | Armv8.5-A Armv9.0-A | BTI 允許軟件識別跳轉分支的有效目標。 BTI 補充了對指針身份驗證的支持,提供了針對 JOP 技術的防御。 |
| GEneral Matrix Multiply (GEMM) | Armv8.6-A Armv9.0-A | 添加新的高級 SIMD (Neon) 和 SVE 指令以加速矩陣運算,大大減少所需的內存訪問次數。 |
| BFloat16 | Armv8.6-A Armv9.0-A | 支持 BFloat16 數據類型的高級 SIMD (Neon) 和 SVE。 BF16 最近成為一種專門為神經網絡的高性能處理量身定制的格式。 |
| High precision timers | Armv8.6-A Armv9.0-A | 通用定時器頻率增加到 1GHz 的新標準。 |
| 64-byte load and stores | Armv8.7-A Armv9.0-A | 企業系統的一個增長趨勢是引入可以使用 64 字節原子加載或存儲訪問的加速器。 這些用于向隊列添加項目,并且在某些情況下可以表示入隊操作的成功或失敗。 |
| Scalable Vector Extension v2 (SVE2) | Armv9.0-A | SVE2 是 Armv8-A SVE 的超集,具有擴展的功能。 SVE2 指令集增加了全面的定點算術支持。 |
| Transactional Memory Extension (TME) | Armv9.0-A | 事務內存擴展為 Arm 架構帶來了硬件事務內存 (HTM) 支持。 事務內存用于解決編寫高并發、多線程程序的困難,通過減少由于鎖爭用導致的序列化,粗粒度、線程級并行的數量可以隨著 CPU 的數量更好地擴展。 |
| Branch Record Buffer Extensions (BRBE) | Armv9.2-A | — |
總結
以上是生活随笔為你收集整理的[core]-ARMV7-A、ARMV8-A、ARMV9-A 架构简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: optee中的密码学算法注册模型
- 下一篇: [FF-A]-01-Introducti