天天看點

ARM的體系結構與程式設計系列部落格——ARM體系版本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走,做逍遙的嵌入式開發工程師!

求關注,求鮮花~~~~