ARM 公司是微處理器行業(yè)的一家知名企業(yè),它是知識產權供應商,設計基于ARM體系的處理器;公司并不生產芯片,也不出售芯片,它轉讓設計方案給半導體廠商,由半導體廠商生產soc,并銷售,同時提供一些其他設計服務,比如物理IP,圖形內核和開發(fā)工具的設計。ARM微處理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它廠商基于ARM體系結構的處理器,除了具有ARM體系結構的共同特點以外,每一個系列的ARM微處理器都有各自的特點和應用領域。
ARM的體系結構或處理器結構主要體現(xiàn)在:ARM微處理器的寄存器結構、異常處理、存儲器結構、指令系統(tǒng)、接口等方面。
1、寄存器結構:
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄器包括:
● 31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器。
● 6個狀態(tài)寄存器,用以標識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。
(1)處理器運行模式:
ARM微處理器支持7種運行模式,分別為:
● usr(用戶模式):ARM處理器正常程序執(zhí)行模式。
● fiq(快速中斷模式):用于高速數(shù)據(jù)傳輸或通道處理
● irq(外部中斷模式):用于通用的中斷處理
● svc(管理模式):操作系統(tǒng)使用的保護模式
● abt (數(shù)據(jù)訪問終止模式): 當數(shù)據(jù)或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。
● sys(系統(tǒng)模式): 運行具有特權的操作系統(tǒng)任務。
● und(未定義指令中止模式):當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。
ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。
大多數(shù)的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統(tǒng)資源是不能被訪問的。
除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統(tǒng)資源等情況。
ARM的RISC體系結構的發(fā)展中已經提供了低功耗、小體積、高性能的方案。而為了解決代碼長度的問題,ARM體系結構又增加了T變種,開發(fā)了一種新的指令體系,這就是Thumb指令集,它是ARM技術的一大特色。
Thumb是ARM體系結構的擴展。它有從標準32位ARM指令集抽出來的36條指令格式,可以重新編成16位的操作碼。這能帶來很高的代碼密度。
支持Thumb的ARM體系結構的處理器狀態(tài)可以方便的切換、運行到Thumb狀態(tài),在該狀態(tài)下指令集是16位的Thumb指令集。
ARM指令集對比Thumb指令集:
· 完成相同的操作,Thumb指令通常需要更多的指令,因此在對系統(tǒng)運行時間要求苛刻的應用場合ARM指令集更為適合;
· Thumb指令集沒有包含進行異常處理時需要的一些指令,因此在異常中斷時,還是需要使用ARM指令,這種限制決定了Thumb指令需要和ARM指令配合使用。
ARM處理器的工作狀態(tài)由程序狀態(tài)寄存器CPSR的D5位的值控制,ARM指令集和Thumb指令集都設有處理器工作狀態(tài)切換指令,以供程序在執(zhí)行過程中對處理器進行狀態(tài)切換。啟動時,處理器默認狀態(tài)為ARM狀態(tài)。
Thumb指令與ARM指令的時間效率和空間效率對比:
· Thumb代碼所需的存儲空間為ARM代碼的60%~70%;
· Thumb代碼使用的指令數(shù)比ARM代碼多30%~40%;
· 使用32位的存儲器,ARM代碼比Thumb代碼快約40%;
· 若使用16位存儲器,則Thumb代碼比ARM代碼快40%~50%;
· 與ARM代碼相比較,使用Thumb代碼,存儲器的功耗會降低約30%。
若對系統(tǒng)的性能有較高要求,則應使用32位存儲系統(tǒng)和ARM指令集;若對系統(tǒng)的成本及功耗有較高要求,則應使用16位存儲系統(tǒng)和Thumb指令集。當然,若兩者結合使用,充分發(fā)揮各自的優(yōu)點,則會取得更好的效果。





