日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

16-Understanding the Armv8.x extensions

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 16-Understanding the Armv8.x extensions 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

        • 1 Overview
        • 2 What does Armv8.x-A mean?
        • 3 Why do we need the .x extensions?
        • 4 Processor implementation of Armv8.x-A
        • 5 Feature implementation between Armv8.x versions
        • 6 Armv8.x extensions and features
          • Armv8.1-A
          • Armv8.2-A
          • Armv8.3-A
          • Armv8.4-A
          • Armv8.5-A and Armv9.0-A
          • Armv8.6-A and Armv9.1-A
          • Armv8.7-A and Armv9.2-A
          • Armv8.8-A and Armv9.3-A
        • 7 Which .x extension does my processor implement?
        • 8 Armv8.x-A and the SBSA

1 Overview

對 Arm 架構的添加以版本增量的形式提供,稱為擴展。 擴展允許根據合作伙伴的需求定期發布新功能,而無需對主要架構進行重大更改. ARM每年都會發布一個新的擴展。 與此一致,我們的 Cortex CPU(我們的架構實現)根據它們的發布時間使用最新的擴展。
本文解釋了 Arm 架構的擴展,并提供了有關如何閱讀和使用它們的指導。

2 What does Armv8.x-A mean?

Arm架構有不同的版本。 這些不同的版本通常顯示為 ArmvX,其中 X 是版本號。 例如,Armv8-A 表示 Arm A-profile 架構的v8 版。 Armv8-A 等版本是該架構的主要版本。

但是,也有一些次要版本添加到主要版本中。 這些次要版本稱為 .x 擴展。 例如,Armv8.1-A 表示 A-profile 架構的v8版本,.1 擴展。

3 Why do we need the .x extensions?

Arm 架構的主要版本的開發可能需要很多年。 例如,Armv7-A 于 2007 年發布,Armv8-A 緊隨其后的 6 年后,即 2013 年。由于架構需要在主要版本之間演進以添加新功能,因此添加了次要版本,即 .x 擴展名。

自 Armv8-A 發布以來,在主要版本之間添加架構的過程已經正式化。 現在每年都會發布 .x 擴展名。 從基本規范 Armv8.0-A 開始,2015 年添加了 Armv8.1-A 擴展,2016 年添加了 Armv8.2-A 擴展,依此類推。 每個 .x 擴展都建立在最后一個的基礎上,因此 Armv8.2-A 包含 Armv8.1-A 的所有功能,并添加了新功能。

每個 .x 擴展名都相對較小。 基本規范和原始版本的 Arm 架構參考手冊 (Arm ARM) 大約有 6,000 頁長。 相比之下,Armv8.3-A 規范只有 48 頁長。

4 Processor implementation of Armv8.x-A

每個 .x 擴展都包含一組功能,一些是強制性的,一些是可選的。 如果處理器實現了該擴展號碼的所有強制性功能,以及來自所有先前擴展的功能,則它實現了 .x 擴展。

例如,要描述為實現 Armv8.2-A,處理器必須實現以下所有強制性功能:

  • Armv8.0-A - the base specification and original release.
  • Armv8.1-A - the previous extension.
  • Armv8.2-A - the new extension.

注意:某項功能最初可能是可選的,但后來成為強制性的。 例如,Dot Product 指令在從 Armv8.0-A 到 Armv8.3-A 的所有擴展中都是可選的,但在 Armv8.4-A 中成為強制性的。

5 Feature implementation between Armv8.x versions

Armv8.x-A 處理器可以實現下一個 .x 擴展中的任何功能。 但是,在此之后,它無法實現來自任何 .x 擴展名的功能。

例如,描述為實現 Armv8.1-A 的處理器:

  • 必須實現 Armv8.0-A 和 Armv8.1-A 的所有強制性功能。
  • 允許實現來自 Armv8.2-A 的一些功能。
  • 不允許實現來自 Armv8.3-A、Armv8.4-A 等的功能。

6 Armv8.x extensions and features

在這里,我們總結了在每個 Armv8.x-A 擴展中添加的新功能。 我們不提供完整列表,但包含最重要的功能。 注意某些功能僅限于 AArch64 狀態.

注意:AArch32 是 32 位執行狀態,在 Armv8-A 之前的所有版本的 Arm 架構中都支持。 AArch64 是 64 位執行狀態,僅在 Armv8-A 架構中受支持。

Armv8.1-A
  • Atomic memory access instructions (AArch64)
  • Limited Order regions (AArch64)
  • Increased Virtual Machine Identifier (VMID) size, and Virtualization Host Extensions (AArch64) –VHE
  • Privileged Access Never (PAN) (AArch32 and AArch64)
Armv8.2-A
  • Support for 52-bit addresses (AArch64) –LPA
  • The ability for PEs to share Translation Lookaside Buffer (TLB) entries (AArch32 and AArch64)
  • FP16 data processing instructions (AArch32 and AArch64)
  • Statistical profiling (AArch64)
  • Reliability Availability Serviceabilty (RAS) support becomes mandatory (AArch32 and AArch64)
Armv8.3-A
  • Pointer authentication (AArch64) –PAC
  • Nested virtualization (AArch64) – 虛擬化嵌套
  • Advanced Single Instruction Multiple Data (SIMD) complex number support (AArch32 and AArch64)
  • Improved JavaScript data type conversion support (AArch32 and AArch64)
  • A change to the memory consistency model (AArch64)
  • ID mechanism support for larger system-visible caches (AArch32 and AArch64)
Armv8.4-A
  • Secure virtualization (AArch64) –S-EL2
  • Nested virtualization enhancements (AArch64)
  • Small translation table support (AArch64)
  • Relaxed alignment restrictions (AArch32 and AArch64)
  • Memory Partitioning and Monitoring (MPAM) (AArch32 and AArch64)
  • Additional crypto support (AArch32 and AArch64)
  • Generic counter scaling (AArch32 and AArch64)
  • Instructions to accelerate SHA512 and SHA3 (AArch64 only)
Armv8.5-A and Armv9.0-A
  • Memory Tagging (AArch64) –MTE
  • Branch Target Identification (AArch64)
  • Random Number Generator instructions (AArch64)
  • Cache Clean to Point of Deep Persistence (AArch64)
Armv8.6-A and Armv9.1-A
  • General Matrix Multiply (GEMM) instructions (AArch64)
  • Fine grained traps for virtualization (AArch64)
  • High precision Generic Timer
  • Data Gathering Hint (AArch64)
Armv8.7-A and Armv9.2-A
  • Enhanced support for PCIe hot plug (AArch64)
  • Atomic 64-byte load and stores to accelerators (AArch64)
  • Wait For Instruction (WFI) and Wait For Event (WFE) with timeout (AArch64)
  • Branch-Record recording (Armv9.2 only)
Armv8.8-A and Armv9.3-A
  • Non-maskable interrupts (AArch64)
  • Instructions to optimize memcpy() and memset() style operations (AArch64)
  • Enhancements to PAC (AArch64)
  • Hinted conditional branches

7 Which .x extension does my processor implement?

Arm 架構包括一組功能寄存器(ID寄存器),用于報告處理器支持的功能。 對于由 .x 擴展名添加的每個新功能,即使是可選功能,這些功能寄存器中的字段會報告它是否受支持。

例如,ID_AA64MMFR2_EL1.AT 告訴您是否支持 Armv8.4-A 中的relaxed alignment要求。

下面總結了一些Core對應的架構擴展

8 Armv8.x-A and the SBSA

服務器基礎系統架構 (SBSA : Server Base System Architecture) 提供了服務器的硬件要求。 SBSA 確保操作系統、管理程序和固件正確運行。 對于標準化程度很重要的服務器,SBSA 包括必須實施架構擴展的規則。

下表總結了與 Armv8.x-A 擴展相關的 SBSA 要求:

總結

以上是生活随笔為你收集整理的16-Understanding the Armv8.x extensions的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。