ARM體系結構簡介


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM