ARM 體系結構支持跨躍多個性能點的實現,并已在許多細分市場中成為主導的體系結構。ARM 體系結構支持非常廣泛的性能點,因而可以利用最新的微體系結構技術獲得極小的 ARM 處理器實現和極有效的高級設計實現。實現規模、性能和低功耗是 ARM 體系結構的關鍵特性。
已經開發了體系結構擴展,從而為 Java 加速 (Jazelle)、安全性 (TrustZone)、SIMD和高級 SIMD (NEON)技術提供支持。ARMv8-A 體系結構增加了密碼擴展作為可選功能。
ARM 體系結構通常描述為精簡指令集計算機 (RISC) 體系結構,因為它包含以下典型 RISC 體系結構特征:
- 統一寄存器文件加載/存儲體系結構,其中的數據處理操作只針對寄存器內容,并不直接針對內存內容。
- 簡單尋址模式,所有加載/存儲地址只通過寄存器內容和指令字段確定。
對基本 RISC 體系結構的增強使 ARM 處理器可以實現較高性能、較小代碼大小、較低功耗和較小硅面積的良好平衡。
ARMv8 體系結構
ARMv8-A將 64 位體系結構支持引入 ARM 體系結構中,其中包括:
- 64 位通用寄存器、SP(堆棧指針)和PC(程序計數器)
- 64位數據處理和擴展的虛擬尋址
-
兩種主要執行狀態:
- AArch64- 64 位執行狀態,包括該狀態的異常模型、內存模型、程序員模型和指令集支持
- AArch32-32 位執行狀態,包括該狀態的異常模型、內存模型、程序員模型和指令集支持
這些執行狀態支持三個主要指令集:
- A32(或 ARM):32 位固定長度指令集,通過不同體系結構變體增強部分 32 位體系結構執行環境現在稱為 AArch32
- T32(Thumb),以 16 位固定長度指令集的形式引入,隨后在引入 Thumb-2 技術時增強為 16 位和 32 位混合長度指令集。部分 32 位體系結構執行環境現在稱為 AArch32
- A64:提供與 ARM 和 Thumb 指令集類似功能的 32 位固定長度指令集。隨 ARMv8-A 一起引入,它是一種 AArch64 指令集。
ARM ISA 不斷改進,以滿足前沿應用程序開發人員日益增長的要求,同時保留了必要的向后兼容性,以保護軟件開發投資。在 ARMv8-A 中,對 A32 和 T32 進行了一些增補,以保持與 A64 指令集一致。
A32(ARM)
ARM(通常稱為 A32)是一種固定長度(32 位)的指令集。它是 ARMv4T、ARMv5TEJ 和 ARMv6體系結構中使用的基礎 32位 ISA。在這些體系結構中,該指令集用于需要高性能的應用領域,或用于處理硬件異常,如中斷和處理器啟動。
對于性能關鍵應用和舊代碼,Cortex 體系結構的Cortex-A和Cortex-R配置文件也支持 ARMISA。其多數功能都包括在與 Thumb-2 技術一起引入的 Thumb 指令集中。Thumb (T32) 從改進的代碼密度中獲益。
ARM 指令的長度為 32 位,需要 4 字節邊界對齊。
可以對大多數 ARM 指令進行“條件化”,使其僅在以前的指令設置了特定條件代碼時執行。這意味著,如果應用程序狀態寄存器中的 N、Z、C 和V標志滿足指令中指定的條件,則指令僅對程序員的模型操作、內存和協處理器發揮其正常作用。如果這些標記不滿足此條件,則指令會用作NOP,即執行過程正常進入下一指令(包括將對異常進行任意相關檢查),但不發揮任何其他作用。此條件化指令允許對 if 和 while 語句的一小部分進行編碼,而無需使用跳轉指令。
條件代碼包括:
條件代碼 | 含義 |
N |
否定條件代碼,如果結果為否定的,則設置為1 |
Z |
零條件代碼,如果指令的結果為 0,則設置為 1 |
C |
進位條件代碼,如果指令生成進位條件,則設置為 1 |
V |
溢出條件代碼,如果指令生成溢出條件,則設置為 1。 |
T32(Thumb)
成本敏感型嵌入式控制應用領域(例如手機、磁盤驅動器、調制解調器和尋呼機)一直在尋求通過某些方式在兼顧內存占用空間的前提下以最低成本實現 32位性能和地址空間。
Thumb (T32) 指令集提供已壓縮至 16 位寬操作碼的、最常用的 32 位 ARM 指令的子集。在執行時,這些 16 位指令實時、透明地解壓縮為完整 32 位 ARM 指令,且無性能損失。
Thumb 可向設計人員提供:
-
卓越的代碼密度,可實現最小的系統內存大小和最低的成本。
- 在 8 位或 16 位總線上的 8 位或 16 位內存中實現 32 位性能,從而降低系統成本。
- 建立的 ARM 功能
- 行業領先的 MIPS/Watt,以盡可能延長電池壽命和增加 RISC 性能
- 小的芯片面積,以進行集成和盡可能降低芯片成本
- 全球多合作伙伴源,可提供安全保證。
設計人員可以同時使用 16 位 Thumb 和 32 位 ARM 指令集,這樣,他們就可以靈活地根據應用需求在子例程級別上增強性能或調整代碼大小。
Thumb ISA 受 ARM 生態系統的廣泛支持,包括完善的 Windows 軟件開發環境以及開發和評估卡。
改進了代碼密度,具有性能效率和功效
Thumb-2 技術使 Thumb 成為固定(32 位和 16 位)長度指令集,是所有 ARMv7 兼容的 ARM Cortex 實現所通用的指令集。Thumb-2 提升了眾多嵌入式應用程序的性能、能效和代碼密度。
該技術與現有 ARM 和 Thumb 解決方案向后兼容,同時顯著擴展了 Thumb 指令集的可用功能,從而使更多應用程序從 Thumb 的同類最佳代碼密度中獲益。為獲得性能優化的代碼,Thumb-2 技術使用少于31% 的內存以降低系統成本,同時,提供比現有高密度代碼高出 38% 的性能,因此可用于延長電池壽命,或豐富產品功能集。
-
WINDOWS
+關注
關注
3文章
3524瀏覽量
88419 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35213 -
米爾科技
+關注
關注
5文章
227瀏覽量
20917
發布評論請先 登錄
相關推薦
評論