當前位置:柔美女性網 >

綠色生活 >心理 >

ARM處理器模式和狀態的區別是什麼

ARM處理器模式和狀態的區別是什麼

ARM處理器模式和狀態的區別是什麼

ARM處理器狀態

ARM微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換

第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令

第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。

在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,並且,處理器工作狀態的轉變並不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處於ARM狀態。

ARM處理器狀態

進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以採用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處於Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。

進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,並從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。

對於Coretex-A系列,還有一種工作狀態,即運行Thumb-2指令集的ThumbEE的狀態,Thumb-2指令集是32位與16位混合運行的指令集。

ARM處理器模式

ARM微處理器支持7種運行模式,分別為:

用户模式(usr):ARM處理器正常的程序執行狀態,非特權模式。

快速中斷模式(fiq):用於高速數據傳輸或通道處理。

外部中斷模式(irq):用於通用的中斷處理。

管理模式(svc):操作系統使用的保護模式。

數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用於虛擬存儲及存儲保護。

系統模式(sys):運行具有特權的操作系統任務。

定義指令中止模式(und):當未定義的指令執行時進入該模式,可用於支持硬件協處理器的軟件仿真。

對於Coretex-A系列,還有一種特有模式(Monitor):是為了安全而擴展出的用於執行安全監控代碼的模式,也是一種特權模式。

ARM處理器模式

ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用户模式下,當處理器運行在用户模式下時,某些被保護的系統資源是不能被訪問的。

對於中斷和異常:

中斷時異常的一種,但是不能説中斷是由異常引發的,兩者的響應方式一樣但是中斷可以被忽略,異常不能被忽略中斷產生肯定會產生一次異常。

除用户模式以外,其餘的所有6種模式稱之為非用户模式,或特權模式其中除去用户模式和系統模式以外的5種又稱為異常模式,常用於處理中斷或異常,以及需要訪問受保護的系統資源等情況。

ARM寄存器

ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。

關於寄存器這裏就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。

異常處理

當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之後,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以後,ARM微處理器會執行以下幾步操作:

進入異常處理的基本步驟:

將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR複製到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。

強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處於Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。

ARM微處理器對異常的響應過程用偽碼可以描述為:

R14_ = Return Link

SPSR_= CPSR

CPSR[4:0] = Exception Mode Number

CPSR[5] = 0 當運行於 ARM 工作狀態時

If == Reset or FIQ then當響應 FIQ 異常時,禁止新的 FIQ 異常

CPSR[6] = 1

PSR[7] = 1

PC = Exception Vector Address

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

將連接寄存器LR的值減去相應的偏移量後送到PC中。

將SPSR複製回CPSR中。

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

標籤: 模式 處理器 ARM
  • 文章版權屬於文章作者所有,轉載請註明 https://rmnxw.com/zh-hk/lvse/xinli/0k3r12.html