ARM的體系結構與編程系列博客——ARM體系版本


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走,做逍遙的嵌入式開發工程師!

求關注,求鮮花~~~~


免責聲明!

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



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