學習 Arm 架構 - A 系列

探索更多 Arm CPU 與系統架構的指南。

 

進一步瞭解 Arm A 系列 CPU 架構。

架構基礎

Arm 架構簡介

本指南提供非技術性的 Arm 架構簡介。

AArch64 例外模型

本指南介紹 AArch64 中的例外和特殊權限模型。內容涵蓋異常級別 - EL0、EL1、EL2、EL3 - 同步和異步異常,包括中斷 - Serror、IRQ、FIQ - 和虛擬異常。

AArch64 指令集架構 (ISA)

本學習 Arm 架構指南介紹 AArch64 內使用的 A64 指令集。

AArch64 記憶體管理

本學習 Arm 架構指南介紹用於控制虛擬到實體位址轉換的 Arm MMU。

AArch64 記憶體模型

本指南介紹 AArch64 中的 Arm 記憶體模型。內容說明記憶體類型、記憶體屬性及記憶體排序的基礎知識。

Armv7-A Cortex-A 程式設計師指南

本書為使用符合 Armv7-A 架構的 Arm Cortex-A 系列處理器的程式設計師提供 Arm 技術簡介。

瞭解 Armv8.x 和 Armv9.x 擴充

本指南介紹 Arm 架構的擴充,提供閱讀與使用這些擴充的相關指南。它顯示 Armv9-A 與 Armv8-A 之間的差異。

進階功能

AArch64 虛擬化

本指南說明 Armv8-A 與 Armv9-A AArch64 中的虛擬化支援,包括基本虛擬化理論、階段 2 轉換、虛擬異常及陷阱。它涵蓋 Arm 巢狀虛擬化、Arm VHE、Secure EL2 和 Arm VMID。

記憶體系統資源分區與監測 (MPAM) 概述

本指南介紹記憶體系統資源分區與監測 (MPAM),這是一項 Arm 架構的選擇性附加功能,用以支援記憶體系統分區。

通用中斷控制器 (pt 1)

本指南提供通用中斷控制器 (GIC) 概述,說明符合 Arm GICv3 中斷控制器的運作方式,並且提供在裸機環境中使用的相關配置資訊。

Arm 通用中斷控制器 v3 和 v4 - 虛擬化

本指南說明對於 GICv3 和 GICv4 架構中虛擬化的支援。內容涵蓋可用於虛擬機管理器的控制項目,以產生及管理虛擬中斷。

特定位置周邊中斷 Arm 通用中斷控制器 v3 和 v4

本指南介紹特定位置周邊中斷 (LPI),這是在 GICv3/v4 中導入的一種中斷。

AArch64 通用計時器

本指南介紹 Arm 通用計時器;A 系列 PE 的計時器框架。

Arm 傳輸記憶體擴充 (Arm TME) 概述

本指南說明 Armv9-A 中導入的傳輸記憶體支援。

記憶體系統、排序與障礙

本指南介紹由 Armv8-A 和 Armv9-A 架構定義的記憶體排序模型。

使用記憶體模型工具

進一步瞭解 Arm 記憶體模型工具,探索工作範例,以及學習如何自動產生決定性試驗。

可靠性、可用性與可維護性 (RAS) 概述

本指南介紹可靠性、可用性與可維護性 (RAS),這是穩健、可靠電腦系統的三個關鍵屬性。

Android 作業系統的記憶體標籤擴充使用指南

本指南介紹記憶體標籤擴充 (MTE)。它向開發人員示範如何使用記憶體標籤擴充來提高軟體的穩健性和安全性。

系統記憶體管理單元 (SMMU) 軟體指南

本指南介紹 Arm 系統記憶體管理單元第三版 (SMMUv3) 基本操作及使用場景。

向量與矩陣處理

Neon 簡介

本指南介紹 Arm Neon 技術,用於實作 Armv8-A、Armv9-A 和 Armv8-R 的 Advanced SIMD (單指令多資料) 架構擴充。

使用 Neon 內建函式最佳化 C 程式碼

本指南示範如何在 C 或 C++ 程式碼中使用 Arm Neon 內建函式,以利用 Armv8-A 和 Armv9-A 架構中的 Advanced SIMD (單指令多資料) 技術。

使用自動向量化編譯 Neon

本指南示範如何使用 Arm 編譯器 6 和 CLANG 中的自動向量化功能,以自動產生包含 Armv8-A 和 Armv9-A Advanced SIMD (單指令多資料) 指令的程式碼。

Neon 程式設計師指南

本系列指南介紹 Neon,示範如何使用內建函式最佳化 C 程式碼,以及如何使用編譯器自動產生包含 Armv8-A Advanced SIMD (單指令多資料) 指令的程式碼。

從 Neon 轉移到可擴展向量延伸指令集 (SVE)

本指南著眼於可擴展向量延伸指令集 (SVE) 與 Neon。內容說明 Armv8-A 和 Armv9-A 指令集的可擴展向量延伸指令集 (SVE) 與 Advanced SIMD (單指令多資料) 架構擴充 (Neon) 之間的差異。另說明兩者在編寫程式碼方面的最佳實務。

SVE 與 SVE2

本指南介紹可擴展向量延伸指令集第 2 版 (SVE2),它是 Armv9-A 架構的一部分。指南說明擴充概念、主要功能、應用領域與如何為 SVE2 開發程式。

可擴展向量延伸指令集 (SVE) 最佳化指南

本指南示範如何在 C 和 C++ 程式碼中使用可擴展向量延伸指令集 (SVE),以及如何執行一些基本最佳化工作。

SVE 與 SVE2 程式設計範例

本指南藉由詳盡的程式碼範例深入描述可擴展向量延伸指令集 (SVE) 與可擴展向量延伸指令集 V2 (SVE2)。本指南向軟體開發人員示範如何在軟體中解釋 SVE 或 SVE2。

比較可擴展向量延伸指令集 (SVE) 與 Neon 編碼

本指南總結可擴展向量延伸指令集 (SVE) 編碼與 Neon 編碼之間的重要差異。對於已將應用程式移植到 Armv8-A Neon 硬體上的使用者,本指南也特別說明將應用程式移植到可擴展向量延伸指令集 (SVE) 時需要考慮的主要差異。

安全性

適用於 AArch64 的 TrustZone

本指南介紹將強制隔離硬體的方法內建在 CPU 中的 Arm TrustZone 架構,這是一種高效率、全系統的安全性方法。

為複雜軟體提供保護

本指南介紹 Armv8-A 和 Armv9-A 中有助於緩解軟體攻擊 (例如 ROP 和 JOP 攻擊) 的功能。本指南涵蓋指標驗證、分支目標身分鑑定和記憶體標籤。

Arm 機密運算架構簡介

本指南解釋機密運算的原則,並說明 Arm 機密運算架構 (Arm CCA) 如何在 Arm 運算平台中實現機密運算作業。

機密領域管理擴充

本指南介紹在 Armv9-A 中導入的 Arm 機密領域管理擴充 (RME),它是 Arm 機密運算架構的硬體組件。

Arm 機密運算架構軟體堆疊

本指南說明 Arm 機密運算架構導入或變更的關鍵軟體功能,以提供機密運算環境。

除錯與追蹤

AArch64 自託管除錯

本指南介紹納入應用程式類處理器的 Arm 架構的 Armv8-A 和 Armv9-A 除錯架構。

AArch64 外部除錯

本指南概述 Armv8-A 和 Armv9-A 外部除錯功能,以及說明該架構支援的外部除錯功能。

介紹 CoreSight:除錯與追蹤基礎設施

本指南介紹 Arm CoreSight 架構所提供的除錯與追蹤基礎設施支援。

在 Armv8-A 上進行除錯之前

本指南說明在對 Armv8-A 處理器進行除錯前需要知道的概念,包括不同除錯類型、目標類型和目標狀態。

在 Armv8-A 上使用偵錯工具

本指南著重於介紹 Armv8-A 架構的裸機偵錯工具常見特點。另介紹使用偵錯工具時需要瞭解的內容,以及使用它們可能帶來的後果。

瞭解 Armv9-A 追蹤

本指南概要介紹 Armv9-A 系統中的追蹤功能,包括追蹤的運作方式與使用方式。

軟體開發

建立您的第一個嵌入式影像

本指南說明如何建立嵌入式影像,包括編譯程式、指定記憶體映像及使用模型執行影像。

開機:裸機

我們正在製作新的指南。待我們準備好後,您便能閱讀我們的應用說明:Armv8-A 處理器的裸機開機程式碼。

使用 DOT 指令加速執行數位訊號處理 (DSP) 功能

本部落格說明 Armv8.4-A 點積指令的三個使用場景,並示範如何使用這些指令來增進 VP9 實作 libvpx 的效能。

書籍

Arm 另提供與 Arm 架構及 CPU 主題相關的書籍。您可以利用以下連結進行註冊,以下載這些書籍。