【科普】ARM架构
參考鏈接:
ARM、單片機、stm32、51單片機、和開發板的概念、區別
內核cortex和ARM的關系
arm 架構_詳談ARM架構與ARM內核發展史
ARM架構簡述
ARM目前總共發布了8種架構:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8。
基于不同架構設計出來的內核處理器在硬件方面可能不同,但是架構的指令集都基于RISC指令集而設計的。
ARM各架構的區別
ARM版本Ⅰ:V1版架構
該版架構只在原型機ARM1出現過,只有26位的尋址空間,沒有用于商業產品。其基本性能有:
- 基本的數據處理指令(無乘法);
- 基于字節、半字和字的Load/Store指令;
- 轉移指令,包括子程序調用及鏈接指令;
- 供操作系統使用的軟件中斷指令SWI;
- 尋址空間:64MB(226)。
ARM版本Ⅱ:V2版架構
該版架構對V1版進行了擴展,例如ARM2和ARM3(V2a)架構。包含了對32位乘法指令和協處理器指令的支持。
版本2a是版本2的變種,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM處理器。同樣為26位尋址空間,現在已經廢棄不再使用。V2版架構與版本V1相比,增加了以下功能:
- 乘法和乘加指令;
- 支持協處理器操作指令;
- 快速中斷模式;
- SWP/SWPB的最基本存儲器與寄存器交換指令;
- 尋址空間:64MB。
ARM版本Ⅲ: V3版架構
ARM作為獨立的公司,在1990年設計的第一個微處理器采用的是版本3的ARM6。它作為IP核、獨立的處理器、具有片上高速緩存、MMU和寫緩沖的集成CPU。
變種版本有3G和3M。版本3G是不與版本2a向前兼容的版本3,版本3M引入了有符號和無符號數乘法和乘加指令,這些指令產生全部64位結果。V3版架構( 目前已廢棄 )對ARM體系結構作了較大的改動:
- 尋址空間增至32位(4GB);
- 當前程序狀態信息從原來的R15寄存器移到當前程序狀態寄存器CPSR中(Current Program Status Register);
- 增加了程序狀態保存寄存器SPSR(SavedProgram Status Register);
- 增加了兩種異常模式,使操作系統代碼可方便地使用數據訪問中止異常、指令預取中止異常和未定義指令異常。;
- 增加了MRS/MSR指令,以訪問新增的CPSR/SPSR寄存器;
- 增加了從異常處理返回的指令功能。
ARM版本Ⅳ: V4版架構
V4版架構在V3版上作了進一步擴充,V4版架構是目前應用最廣的ARM體系結構,ARM7、ARM8、ARM9和StrongARM都采用該架構。
V4不再強制要求與26位地址空間兼容,而且還明確了哪些指令會引起未定義指令異常。指令集中增加了以下功能:
- 符號化和非符號化半字及符號化字節的存/取指令;
- 增加了T變種,處理器可工作在Thumb狀態,增加了16位Thumb指令集;
- 完善了軟件中斷SWI指令的功能;
- 處理器系統模式引進特權方式時使用用戶寄存器操作;
- 把一些未使用的指令空間捕獲為未定義指令
ARM版本Ⅴ: V5版架構
V5版架構是在V4版基礎上增加了一些新的指令,ARM10和Xscale都采用該版架構。這些新增命令有:
- 帶有鏈接和交換的轉移BLX指令;
- 計數前導零CLZ指令;
- BRK中斷指令;
- 增加了數字信號處理指令(V5TE版); 為協處理器增加更多可選擇的指令
- 改進了ARM/Thumb狀態之間的切換效率;
- E—增強型DSP指令集,包括全部算法操作和16位乘法操作;
- J----支持新的JAVA,提供字節代碼執行的硬件和優化軟件加速功能。
ARM版本Ⅵ: V6版架構
V6版架構是2001年發布的,首先在2002年春季發布的ARM11處理器中使用。在降低耗電量地同時,還強化了圖形處理性能。通過追加有效進行多媒體處理的SIMD (Single Instruction, Multiple Data,單指令多數據 )功能,將語音及圖像的處理功能提高到了原型機的4倍。此架構在V5版基礎上增加了以下功能:
- THUMBTM:35%代碼壓縮;
- DSP擴充:高性能定點DSP功能;
- JazelleTM:Java性能優化,可提高8倍;
- Media擴充:音/視頻性能優化,可提高4倍
ARM內核型號與產品
Cortex-A:即A-Profile,面向尖端的基于虛擬內存的操作系統和用戶應用
Cortex-R:即R-Profile,針對實時系統
Cortex-M:即M-Profile,針對微控制器單片機方面的場合
MMU(內存處理單元)會在程序調用時陷入內核態并保存現場資源和進行額外處理。運行諸如Linux、WinCE等多用戶多進程操作系統,都需要MMU,才能為每個用戶進程分配獨立的地址空間。而運行類似于ucOS、ucLinux的精簡實時RTOS則不需要MMU。
ARM命令規則
- x:序列
- y:2:帶MMU, 4帶MPU,6沒有
- z:0:標準cache,2:減小的cache, 6可變的cache
- T:處理器支持Thumb指令集
- D:支持JTAG調試器
- M:支持長乘法指令
- I:有嵌入式跟蹤宏單元
- E:支持增強指令(基于TDMI)
- J:支持JAVA硬件加速(Jazelle)
- F:支持向量浮點單元
- S:可綜合版本
總結
- 上一篇: Python实用代码工具3|图片转视频
- 下一篇: 最新软件测试面试题,常见面试题及答案汇总