ARM體系版本前言
很多人都知道,ARM有許多版本,口中最長說的就是ARM7\ARM9\ARM11,誠然,這個的確是ARM處理器的版本,但絕對不是ARM的版本,其實ARM到迄今為止經歷了6代版本,隨着時代的變化,ARM也隨之變化,版本的不同其實也造就ARM的各種變種!
ARM處理器系列的各種處理器,其采用的技術各不相同,性能差異很大,應用的場合也不相同,但只要它是同一個ARM體系版本,那么基於它們的應用軟件是兼容的!
不難看出ARM的版本關系到了ARM的兼容性,如果你在開發過程中不了解版本的話,以為一切ARM的程序均在ARM處理器上可用的話,那么就大錯特錯了!
ARM體系版本介紹
下面將為大家詳細的介紹ARM體系結構的各類版本,給大家一個非常直觀的了解,知道ARM不同版本之間有什么樣的區別。
ARM的版本為:版本1、版本2、版本3、版本4、版本5、版本6
版本1
- 乘法指令以外的基本數據處理指令
- 字節、字和多字的讀取寫入指令
- 包括子程序調用指令BL在內的跳轉指令
- 供操作系統使用的軟件中斷指令SWI
這個版本的地址空間是26位的,目前已經不在使用了!
版本2
與版本1相比,版本2添加了下列指令:
- 乘法指令和乘加法指令(這2個指令在下篇博客中會解釋一下)
- 支持協處理器的指令
- 支持FIQ模式,提供額外的兩個備份寄存器
- SWP指令及SWPB指令(各類指令都不要着急去了解,后面的幾篇博客都將詳細進行介紹)
該版本的地址空間是26位,目前也不使用了!
版本3
自這個版本開始,ARM出現了各種變種,是ARM質一般的飛躍了!
- 地址空間擴展到了32位(除了版本3G以為)
- CPSR(當前程序狀態寄存器)出現,傳說中的R15消失
- 增加了SPSR(備份程序狀態寄存器),可以保存被中斷程序的狀態了!
- 添加了兩種處理器模式(方便操作系統使用各類異常)
- 增加了指令MRS與MSR(用來訪問新增的兩個寄存器)
- 修改了原來從異常返回的指令
版本4
在版本3的基礎上,版本4可謂是真正地得到了推廣,值得一提的是Thumb指令集就是在這個版本上成立的!
- 半字讀寫指令出現
- 出現讀取帶符號的字節和半字數據指令
- 有了T變種,即Thumb指令集
- 增加處理器的特權模式
值得一提的是ARM公司終於不再要求支持26位的地址空間兼容(如此反我程序員的指令終於可以消失了,ARM公司,你造嗎?不是2的冪次方,我們程序員對它都是無愛的!)
版本5
- 提高了ARM/Thumb混合使用的效率(這一點太贊了,16位、32位的使用減少了很多的指令浪費)
- 整合了非T變種的指令代碼生成技術,讓代碼生成得到了統一
- 增加了CLZ前導零計數指令
- 增加了BRK軟件斷點指令
- 增強型DSP指令集,包括全部算法操作和16位乘法操作
- 支持新的JAVA,提供字節代碼執行的硬件和優化軟件加速功能
版本6
這個版本其實是2002年發布的ARM11處理器中使用的,主要是添加了SIMD功能擴展,優化視頻/音頻處理技術!版本6的到來也使android的系統更加火爆!
- Thumb:35%代碼壓縮
- DSP擴充:高性能定點DSP功能
- JazelleTM:Java性能優化,可提高8倍
- Media擴充:音/視頻性能優化,可提高4倍
我們可以從整個ARM體系版本的發展看出ARM技術的進步,同時也需要我們對ARM有更加深入的了解,跟着ARM走,做逍遙的嵌入式開發工程師!
求關注,求鮮花~~~~