1. 體系結構
體系結構向軟件開發人員提供了指令集和工作流程,也叫編程模型。體系結構是功能性的說明,是硬件與軟件的橋梁,描述了軟件依靠硬件能提供什么樣的功能。體系結構包括幾個部分。
指令集
- 每條指令的功能
- 指令在存儲器中如何存放(指令的編碼)
寄存器
- 寄存器數量
- 寄存器大小
- 寄存器功能
- 初始狀態
異常模型
- 不同的特權級別
- 異常的類型
- 異常觸發和返回發生了什么
存儲模型
- 存儲器如何按序訪問
- Cache如何工作,軟件什么時候需要進行維護
調試、跟蹤和分析
- 斷點如何設置和觸發
- 跟蹤工具捕獲的信息和格式
2. ARM體系結構的發展
ARMv8-A是64位的體系結構,但是仍然支持32位,向后兼容(例如支持v7,v6,和v5)。
3. 微體系結構
體系結構是不描述處理器是如何構建和工作的。微體系結構描述了處理器的設計和構建。微體系結構包括幾個部分。
- 流水線長度和布局
- Cache數量和大小
- 特殊指令的周期數
- 實現了哪些可選的特性
例如,Cortex-A53和Cortex-A72有相同的體系結構ARMv8-A,但是它們卻有非常不同的微體系結構。軟件運行在Cortex-A53和Cortex-A72上是無需修改的。
4. ARM當前體系結構的配置
ARM體系結構目前有三種配置。
- A-Profile (Application), 高性能,為復雜操作系統而設計,如Linux和Windows。
- R-Profile (Real-Time),面向有實時性需求的系統,常用於網絡設備和嵌入式控制系統。
- M-profile (Microcontroller),低功耗,體積小,常用於嵌入式設備。
(ARM Cortex是ARM處理器IP的商標名。)
5. ARM其他組件
除了處理器外,ARM還有很多其他組件,一起組成現代SoC。下圖是一個例子。
Generic Interrupt Controller
GIC是和ARMv7-A/R和ARMv8-A/R一起使用的標准的中斷控制器。
System Memory Management Unit
SMMU/IOMMU向非處理器的master提供轉換服務。
Generic Timer
Generic Timer向系統中所有處理器提供公共的參考系統計數。實際上就是計數器的功能,像操作系統中調度器的tick。Generic Timer是ARM體系結構的一部分,但是System Counter卻是一個系統的組件。
Server Base System Architecture (SBSA)和Trusted Base System Architecture (TBSA)
向SoC開發人員提供系統設計的指導。
Advanced Microcontroller Bus Architecture (AMBA)
AMBA family總線協議控制ARM系統中的組件是怎樣連接的,以及這些連接上的協議。
6. ARM的文檔
我需要查閱哪些ARM的文檔?以Cortex-A75為例,Cortex-A75實現了ARMv8.2-A,GICv4 CPU接口和AMBA總線接口。其相關文檔如下。
參考
https://developer.arm.com/architectures/learn-the-architecture/introducing-the-arm-architecture