學習 Arm 架構 - A 系列

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

 

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

架構基礎

Arm 架構簡介

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

AArch64 例外模型

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

AArch64 指令集架構 (ISA)

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

AArch64 虛擬化

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

AArch64 通用計時器

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

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

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

瞭解 Armv8.x 和 Armv9.x 擴充

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

記憶體管理和記憶體模型

AArch64 記憶體管理

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

AArch64 記憶體屬性及特性

本指南介紹 Armv8-A 及 Armv9-A 中的記憶體屬性及特性。

記憶體系統、排序與障礙

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

使用記憶體模型工具

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

Arm 交易記憶體擴充 (Arm TME) 概述

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

向量與矩陣處理

Neon 程式設計師指南

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

SVE 與 SVE2 程式設計範例

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

SME 程式設計師指南

本指南介紹的可擴充矩陣延伸指令集 (SME) 是 Arm 的架構解決方案,用於加速矩陣運算。本指南說明 SME 及 SME2。

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 轉移到向量延伸指令集 (SVE)

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

SVE 與 SVE2

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

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

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

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

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

GIC 及 SMMU

通用中斷控制器 v3 及 v4、概述

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

通用中斷控制器 v3 及 v4、LPI

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

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

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

SMMU 軟體指南

本指南說明 Arm 系統記憶體管理單元第 3 版 (SMMUv3) 的基本操作,以及 SMMUv3 的使用場景。

安全性

適用於 AArch64 的 TrustZone

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

為複雜軟體提供保護

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

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

本指南介紹的是記憶體標籤擴充 (MTE),協助開發人員瞭解如何利用記憶體標籤擴充 (MTE) 提升軟體的強健度及安全性。

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 系統中的追蹤功能,包括追蹤的運作方式與使用方式。

使用 Statistical Profiling Extension (SPE) 的 SoC 遙測及效能分析

本部落格針對軟體開發人員、效能分析師及晶片工程師,介紹使用 SPE 進行效能分析及根本原因分析的概念。

MPAM

記憶體系統資源分區與監測 (MPAM) 簡介

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

記憶體系統資源分區與監測 (MPAM) 軟體指南

本指南說明記憶體系統資源分區與監測 (MPAM) 之中的韌體及軟體。

記憶體系統資源分區與監測 (MPAM) 硬體指南

本指南說明 MPAM 系統的系統層級設計考量因素,並簡介 Arm MPAM IP 之中的管理介面。

RAS

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

本指南簡介可靠性、可用性與可維護性 (RAS):這是打造健全可靠電腦系統的三大關鍵屬性。

軟體開發

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

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

開機:裸機

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

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

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

書籍

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