ARM體系結構

2021-05-25 22:08:30 字數 3900 閱讀 3657

arm是 advanced risc machines ( 高階精簡指令系統處理器) 的縮寫,是arm公司提供的一種微處理器智財權( ip) 核

arm既可以認為是乙個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字

arm微處理器的特點

1、體積小、低功耗、低成本、高效能

2、支援thumb (16位) / arm (32位) 雙指令集,能很好的相容8位/16位器件

3、大量使用暫存器,指令執行速度更快

4、大多數資料操作都在暫存器中完成

5、定址方式靈活簡單、執行效率高

6、指令長度固定

arm7系列:

屬低端arm處理器核,最適合用於對價位和功能消耗要求較高的消費類應用

主要應用領域為:工業控制、網路和數據機裝置、移動**等多種多**和嵌入式應用

dsp:  digital signal processor

命名解釋:

arm7dmi:t表示支援16位壓縮指令集 (thumb),d表示支援片上除錯 (debug),m表示內嵌硬體乘法器 (multiplier),i 表示嵌入式ice(**器),支援片上斷點和調試點 ( in - circuit emulater )

arm7系列處理器特點:

1、具有嵌入式ice邏輯,除錯開發方便

2、功耗極低,適合可攜式產品開發

3、3級流水線結構

4、支援thumb

5、支援多種作業系統

6、指令與arm9、arm10系列相容,便於公升級

3級流水線 (pipeline) 的執行過程

取指: 從儲存器裝載指令

解碼:對剛裝載的指令進行識別

執行:處理指令並把結果寫回相應的暫存器

arm9系列處理器特點:

在高效能和低功耗特性方面提供最佳的效能

主要應用於無線裝置、儀器儀表、安全系統、機頂盒、高階印表機、數位相機和數字攝像機

arm9有5級流水線:fetch、decode、execute、memory、write

arm 與 thumb

1、thumb指令是arm指令的自給

2、可以相互呼叫,只要遵循一定的呼叫規則

3、thumb指令與arm指令時間效率和空間效率關係:儲存空間是arm**的60% ~ 70%,指令數比arm**多約30% ~ 40%,儲存器為32位時arm**比thumb**快約 40%,儲存器為16位時thumb比arm**快約40 ~ 50%,使用thumb**,儲存器的功耗會降低約30%

狀態切換:

arm 與 thumb之間的狀態的切換不影響處理器模式或暫存器的內容

arm指令集和thumb都有相應的切換命令

切換方法:

進入thumb狀態:運算元暫存器rm的狀態位 bit [0] 為1,執行 bx   rm

進入arm狀態:運算元暫存器rm的狀態位 bit [0] 為0,執行 bx   rm

在開始執行開罵時,應該處於arm狀態

arm微處理器的儲存器格式:

1、支援最大定址空間為4gb

2、arm體系結構將儲存器看作是從零位址開始的位元組的線性組合

3、arm體系結構可以用兩種方法儲存字資料:大端和小端格式

大端(big-endian): 低位元組存放在高位址中

小端(little-endian): 高位元組存放在高位址中

arm處理器工作模式

1、usr模式:正常使用者模式、程式正常執行模式

2、fiq模式(fast interrupt request ):處理快速中斷,支援高速資料傳送或通道處理

3、iru模式:處理普通中斷

4、svc模式:( supervisor) :作業系統保護模式,處理軟體中斷

5、abt 中止:(abort mode) :處理儲存器故障,實現虛擬儲存器和儲存器保護

6、und未定義:(undefined):處理未定義的指令陷阱,支援硬體協處理器的軟體**

7、sys系統模式(基本上=usr)

arm暫存器組成:

31個通用暫存器:r0 ~ r15 (pc)、 r13_svc,r14_svc,r13_abt,r14_abt,r13_und,r14_und,r13_irq,r14_irq,r8_frq ~ r14_frq,

6個狀態暫存器:cpsr、spsr_svc、spsr_abt、spsr_und、spsr_irq、spsr_frq

arm狀態下的暫存器組織

r0 ~ r7 是普通工作暫存器

r8 ~ r12用於對場景資訊的保留

r13常用作堆疊指標

r14作為子程式連線暫存器

r15是程式計數器

cpsr (當前程式狀態暫存器)

spsr (備份的程式狀態暫存器)

程式狀態暫存器圖如下:

n、z、c、v為標誌位

n標誌位:當用兩個補碼表示的帶符號數進行運算時,n=1代表運算的結果為負數,n=0表示的結果是正數或0

z標誌位:z=1表示運算的結果為0,z=0表示運算的結果為非0

v標誌位:加 / 減法運算指令,v=1表示符號位的溢位,對於其它非加 / 減運算指令,v的值通常不變

c標誌位:加法運算結果進製時,c=1,減法運算借位時,c=0,移位操作的非加 / 減法運算指令,c為移出的最後一位,其它的非加 / 減運算指令,c的值通常不變

i、f、t 和 m [4:0] 稱為控制位,發生異常時這些位可以被改變

中斷禁止位 i、f:i=1,禁止irq中斷,f=1,禁止fiq中斷

t標誌位反映處理器的執行狀態,t=1,執行 thumb狀態, t=0,執行 arm狀態

arm體系結構所支援的異常型別:

1、復位:復位電平有效時,產生復位異常,程式跳轉到復位處理程式處執行

2、未定義指令:遇到不能處理的指令,定義未定義指令異常

3、軟體中斷:執行swi指令產生,用於使用者模式下的程式呼叫特權操作指令(使用者模式 -> 特權模式)

4、指令預取中止:處理器預取指令的位址不存在,或該位址不允許當前指令訪問,產生指令預取中止異常

5、資料中止:處理器資料訪問指令的位址不存在,或該位址不允許當前指令訪問,產生資料中止異常

6、irq:外部中斷請求有效,且cpsr中的 i 位為0時,產生 irq 異常

7、fiq:快速中斷請求引腳有效,且cpsr中的 f位為0時,產生 fiq異常

arm體系中的中斷如下圖:

0x00000014作為預留使用

異常執行的一段**通常為

sub  lr,lr,#4    ; fiq、irq的中斷處理

stmfd sp!,

......

ldmfd sp!,^

對異常的相應:

1、將下一條指令的位址存入相應連線暫存器 lr,以便程式在處理異常返回時能從正確的位置重新開始執行,若是從arm狀態進入,lr暫存器中儲存的是下一條指令的位址(當前 pc+4或 pc+8),與異常的型別有關

2、將cpsr複製到相應的 spsr中

3、根據異常型別,強制設定cpsr的執行模式位

4、強制pc從相關的異常向量位址取下一條指令執行,從而跳轉到相應的異常處理程式處

還可以設定中斷禁止位,以禁止中斷發生,如果異常發生時,處理器處於thumb狀態,則從異常向量加載入pc時,處理器自動切換到arm狀態

異常處理完畢後,arm微處理器會執行以下幾步從異常返回:

1、將連線暫存器 lr的值減去相應的偏移量後送到pc中

2、將spsr複製回cpsr中

3、若在進入異常處理時設定了中斷禁止位,要在此清除

可以認為應用程式總是從復位異常處理程式開始執行的,因為復位異常處理程式不需要返回

應用程式中的異常處理:

當系統執行時,異常可能隨時發生,進行異常處理,採用的方式是異常向量表中的特定位置放置一條跳轉指令,跳轉到異常處理程式,當arm處理器發生異常時,程式計數器pc會強制設定為對應的異常向量,從而跳轉到處理程式,當異常處理完成後,返回到主程式繼續執行

ARM體系結構

一 arm公司簡介 arm公司成立於1990年11月,主要設計arm系列risc處理器核心 arm公司主要做授權,不生產任何一款具體的晶元。二 arm公司產業鏈 arm 將技術授權給合作廠商 廠商 生產各具特色的具體晶元,廠商就包括飛利浦 英特爾 三星等 三 arm微處理器的應用領域 工業控制 無線...

ARM體系結構

arm 核心採用精簡指令集結構 risc,reduced instruction set computer 體系結構。其目標是設計出一套能在高時鐘頻率下單週期執行 簡單而有效的指令集,risc 的設計重點在於降低硬體執行指令的複雜度,這是因為軟體比硬體容易提供更大的靈活性和更高的智慧型。與其相對的傳...

ARM體系結構 一

一 arm暫存器的作用 1 r0 r3 用作傳入函式引數 傳出函式返回值。2 r4 r11 被用來 存放函式的區域性變數。3 r12 是內部呼叫暫時暫存器 ip,目前沒搞懂。4 r13 sp作為 棧暫存器。5 r14 lr儲存函式呼叫或者中斷程式返回時要執行的 指令位址。6 r15 pc程式 取值位...