ARM Architecture Reference Manual for ARMv8-A 中文解讀

關於本參考手冊

英文版

本手冊主要描述了 ARMv8 體系結構。ARMv8 體系結構主要描述了 ARMv8-A 處理單元 (PE,Processing element) 的運行機制,包括以下方面內容:

  • AArch64 和 AArch32 兩個運行態。
  • 三種指令集:
    • 在 AArch32 運行態下, 支持兼容舊架構的 A32 和 T32 指令集.
    • 在 AArch64 運行態下, 執行 A64 指令集.
  • 當前 Exception 等級, 安全狀態和運行態的不同對 PE 行爲的影響。
  • Exception 模型 (Exception model)。
  • 支持 AArch64 和 AArch32 運行態切換的內部交互模型 (interprocessing model)。
  • 定義 Memory Ordering 和 Memory Management 的內存模型 (memory model)。本手冊中,僅描述定義了虛擬內存系統架構 (VMSA) 的 ARMv8-A 架構的內存模型。
  • 編程模型 (programmers’ model),主要描述用於控制 PE 和內存系統,以及提供相關狀態信息的系統寄存器 (System registers) 接口。
  • 高性能的 SIMD 和浮點指令:
    • 支持單精度和雙精度浮點數操作。
    • 雙精度、單精度和半精度浮點數轉換。
    • 三種指令集都支持整形、單精度浮點數向量操作。
    • 在 A64 運行態下,支持雙精度浮點數向量操作。
  • 安全模型 (security model),提供了 secure 和 Non-secure 兩種安全狀態,用於支持安全應用場景。
  • 虛擬化模型 (virtualization model),支持 Non-secure 操作的虛擬化。
  • 調式架構,提供了可軟件控制的調試特性。

本手冊中的指令是用文本形式的彙編語法來描述的,但是本手冊並不是 ARM 彙編語言教程,手冊中只簡單的介紹了彙編語言最基礎的部分,更多彙編語言的細節,需要參考實際所使用的彙編器的相關文檔。

本手冊的內容分爲以下幾個部分:

Part A
此部分內容主要對 ARMv8-A 體系結構進行簡單介紹,概括性的描述了 AArch64 和 AArch32 運行態,簡要描述其所支持的數據類型等。

Part B
此部分內容從應用層面 (application level view) 描述 AArch64 運行態 (也可以說在 EL0 層次上進行描述),它主要介紹了應用層下的編程模型和內存模型。

Part C
此部分內容詳細介紹了 AArch64 運行態下的 A64 指令集。對於每一個所描述的指令,都詳細的描述了其在 EL0 下執行 (即非特權模式執行) 時的效果,以及使用該指令的限制條件,同時也描述了指令在其他更高級別的 Exception level 下執行時,與 EL0 下執行的差異。這部分內容,對於編譯器、彙編器和其他用於生成 ARM 機器碼的軟件的設計者和使用者都非常關鍵。

Part D
此部分內容從系統層面 (system level view) 描述 AArch64 運行態。它主要描述了系統層下的編程模型和內存模型,同時還詳細介紹了 EL0 中無法訪問的系統寄存器 (System registers),self-hosted 調試等。

Part E
此部分內容從應用層面 (application level view) 描述 AArch32 運行態 (也可以說在 EL0 層次上進行描述),它主要介紹了應用層下的編程模型和內存模型。

NOTE:
在 AArch32 運行態下,在 EL0 上執行的指令是在 User mode 下執行的。

Part F
此部分內容詳細介紹了 AArch32 運行態下向後兼容舊 ARM 架構的 T32 和 A32 指令集。對於每一個所描述的指令,都詳細的描述了其在 User mode 下執行 (即非特權模式執行,或者說在 EL0 下執行) 時的效果,以及使用該指令的限制條件,同時也描述了指令在其他更高級別的 Exception level 下執行時,與 EL0 下執行的差異。這部分內容,對於編譯器、彙編器和其他用於生成 ARM 機器碼的軟件的設計者和使用者都非常關鍵。

NOTE:
User mode 只能是在軟件執行處於非特權等級的模式

Part G
此部分內容從系統層面 (system level view) 描述基本與舊 ARM 架構兼容的 AArch32 運行態。它主要描述了系統層下的編程模型和內存模型,同時還詳細介紹了 EL0 中無法訪問的系統寄存器 (System registers),用於訪問系統寄存器的虛擬協處理器接口 (conceptual coprocessor interface) 等。

Part H
此部分內容主要描述了外部調試架構,介紹了調試宿主所需的配置、斷點和看門狗,以及調試交互通道 (DCC, Debug Communications Channel) 等內容。

Part I
此部分內容描述了體系結構中不屬於 PE 的一些特性。這些特性通過映射到內存的相關接口來訪問。此外,部分特在具體實現中不是必須實現的。

Appendixes
此部分內容爲附錄,提供一些額外的信息。附錄中的有些內容並不是 ARM 體系結構所必須的。另外,附錄的首頁提供了附錄內容的版本狀態信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章