標籤:
ARM 處理器架構
轉自:http://www.arm.com/zh/products/processors/instruction-set-architectures/index.php
ARM 架構是構建每個 ARM 處理器的基礎。ARM 架構隨著時間的推移不斷髮展,其中包含的架構功能可滿足不斷增長的新功能、高效能需求以及新興市場的需要。有關最新公布版本的資訊,請參閱
ARMv8 架構。
ARM 架構支援跨躍多個效能點的實現,並已在許多細分市場中成為主導的架構。ARM 架構支援非常廣泛的效能點,因而可以利用最新的微架構技術獲得極小的 ARM 處理器實現和極有效進階設計實現。實現規模、效能和低功耗是 ARM 架構的關鍵特性。
ARM 已經開發了架構擴充,從而為 Java 加速 (Jazelle®)、安全性 (TrustZone®)、SIMD 和進階 SIMD (NEON™) 技術提供支援。ARMv8-A 架構增加了密碼擴充作為可選功能。
ARM 架構與精簡指令集計算 (RISC) 架構類似,因為它包含以下典型 RISC 架構特徵:
- 統一寄存器檔案載入/儲存架構,其中的資料處理操作只針對寄存器內容,並不直接針對記憶體內容。
- 簡單定址模式,所有載入/儲存地址只通過寄存器內容和指令欄位確定。
對基本 RISC 架構的增強使 ARM 處理器可以實現較高效能、較小代碼大小、較低功耗和較小矽面積的良好平衡。
ARM(通常稱為 A32)是一種固定長度(32 位)的指令集。它是 ARMv4T、ARMv5TEJ 和 ARMv6 架構中使用的基礎 32 位 ISA。在這些架構中,該指令集用於需要高效能的應用領域,或用於處理硬體異常,如中斷和處理器啟動。
對於效能關鍵應用和舊代碼,Cortex 架構的 Cortex™-A 和 Cortex-R 設定檔也支援 ARM ISA。其多數功能都包括在與 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。
|
ARM 處理器架構【轉】