天天看點

ARM基礎(2)

1、ARM微處理器的寄存器組織

ARM微處理器共有37個32位寄存器,其中31個為通用寄存器,6個為狀态寄存器,這些寄存器不能同時被通路,具體哪些寄存器是可程式設計通路的,取決于微處理器的工作狀态及具體的運作模式。

2、流水線技術

流水線技術是通過将每條指令都分解為多步,每步都由不同的功能部件來完成,進而實作在同一時間内并行處理多條指令,提高處理器核的效率和吞吐率。程度中的指令仍是一條條順序執行,每一條的每一步也順序執行,但在目前指令的步驟尚未執行完時,提前啟動後續指令的另一些操作步驟,進而加快程式的執行速度。

每條指令的大概步驟可以分為三步:取指令、譯碼、執行,每個步驟都由不同的執行部件完成。

執行一個指令或者直接修改PC而發生跳轉時,ARM核會清空流水線。

ARM系列處理器流水線比較:

ARM基礎(2)

2、程式計數器PC

寄存器R15用作程式計數器(PC),在ARM狀态下,由于ARM指令是字對齊的,是以位[1:0]為0,位[31:2]用于儲存PC,在Thumb狀态下,指令是半字對齊的,是以位[0]為0,位[31:1]用于儲存PC。字對齊是4個位元組,半字對齊是2個位元組,将PC展開為2進制後根據8421BCD碼可以知道ARM狀态下最後兩位為2和1,Thumb狀态下最後一位為1,是以根據指令的對齊方式來存儲,累加機關分别為4和2,即最後兩位和最後一位永遠為0。

由于ARM采用流水線處理器機制,是以當正确讀取PC的值時,該值為目前指令加上8個位元組。多級流水線是采用多個功能部件,在一個指令狀态下并行完成多個任務。是以在指令狀态不變的情況下增加流水線的功能部件可以提高程式的執行速度。

ARM基礎(2)

異常發生時PC的恢複:

ARM基礎(2)

3、狀态寄存器

ARM微處理器有6個狀态寄存器,其中包括1個目前狀态寄存器CPSR和5個備份程式狀态寄存器SPSR,SPSR用來進行異常處理。

當正常的程式執行流程發生暫時的停止時,成為異常,在處理一個異常之前,目前處理器的狀态必須保留,這樣當異常處理完成後,目前程式可以繼續執行。

4、ARM記憶體管理單元

MMU是存儲器管理單元的縮寫,它是用來管理虛拟記憶體系統的器件。MMU通常是CPU的一部分,本身有少量存儲空間存放從虛拟位址到實體位址的比對表。

MMU的兩個主要功能:

1、将虛拟位址轉換成實體位址

2、對存儲器的通路控制