了解ARM內核的微體系結構,包括寄存器文件的說明及其在處理器中的功能。
在本文中,我們將定義什么是微體系結構。我們還將說明什么是ARM寄存器文件以及它在處理器的微體系結構中的位置。
本文旨在為下一篇文章提供基礎信息,在本文中,我們將介紹匯編的基礎知識,并展示一些使用Raspberry Pi編寫的32位ARM內核的基本匯編指令。
什么是微架構?
微體系結構(有時寫為“微體系結構”)是允許執行指令集的數字邏輯。它是寄存器,存儲器,算術邏輯單元,多路復用器和任何其他數字邏輯塊的組合實現。所有這些共同構成了處理器。
微體系結構與指令集體系結構(ISA)相結合,構成了系統的整體計算機體系結構。不同的微體系結構可以實現相同的ISA,但是需要在功率效率或執行速度等方面進行權衡。最基本的處理器將包括一個寄存器文件,一個ALU,系統存儲器和一個控制單元,該控制單元使處理器可以根據其執行的指令來做出決定。
ARM寄存器文件
要對數據執行操作,需要有一個臨時存儲該數據的地方。這就是處理器的注冊文件的用途。寄存器文件是一堆寄存器,用于存儲臨時值并對這些值執行操作。在寄存器之外,可以檢索數據并將其存儲在計算機的內存中。雖然這是一個較慢的操作,但是與可用的相對較少的寄存器相比,可以在內存中存儲的內容更多。寄存器文件通常以SRAM的形式出現。
讓我們以32位ARM內核為例。在這種情況下,我們將重點介紹32位ARMV7指令和32位寄存器。
32位或4字節的數量對應于ARM指令集中的一個字。ARM寄存器文件包含十六個用于執行指令的寄存器。還存在狀態寄存器來存儲有關操作結果的信息,并允許處理器根據該結果做出決定。
注冊符號
寄存器用字母R和數字表示。
R0–R3用于存儲臨時值或變量,但在子例程調用中也起作用。
R4–R12是通用的。
R13或SP是堆棧指針。堆棧指針包含一個內存地址,程序可以在該內存中存儲以后需要檢索的信息。
R14是鏈接寄存器,與分支指令一起使用以返回程序中的上一個位置。
R15,稱為PC為program?ounter,存儲下一個指令的地址被執行。這給PC帶來了巨大的責任,因為它可以控制處理器上執行的指令。在PC上輸入錯誤的值,您的程序可能會突然停止運行;這通常稱為崩潰。
注冊標志
所述 current program status register (CPSR),前面提到的,包含大量的標記,可以是當集的指令執行的。
這些標志是N,Z,C和V標志:
N代表負數,并在指令結果為負數時使用。
Z,ZERO,當結果為零。
C代表carry并且在進位輸出被設定的指令結果時。
V代表oveRFlow ,發生溢出時被設置。
為了檢查這些標志,在編寫匯編代碼時,某些條件后綴(在后面的文章中討論)會附加到指令中。
處理器的一部分:數據路徑和控制單元
盡管我們不會詳細介紹設計ARM處理器的細節(也許在以后的文章中),但最好能基本了解寄存器文件適合運行我們的指令的系統的位置。下面的圖1是處理器的高度簡化框圖。
寄存器文件包含處理器的當前狀態,并且ALU和內存與該狀態交互。內存分為多個部分。其中包含正在執行的指令列表(匯編程序);另一個保存程序將使用的數據。所有這些組件以及綠色突出顯示的行構成了處理器的數據路徑。
數據路徑包含執行正在實施的ISA中所有指令所需的所有內容。但是數據路徑如何知道要執行哪個操作?
圖1.高度簡化的處理器
數據路徑上方是控制單元。控制單元解釋在每個指令中找到的操作碼(操作碼)和條件碼,以打開或關閉數據路徑內的路由。控制單元使處理器能夠根據當前從內存中讀取的指令執行不同的操作。控制單元和數據路徑共同構成了CPU或中央處理單元。
添加允許CPU與其他組件交互的內存就形成了我們所謂的處理器。
-
ARM
+關注
關注
134文章
9104瀏覽量
367848 -
微架構
+關注
關注
0文章
22瀏覽量
7048
發布評論請先 登錄
相關推薦
評論