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