了解ARM內(nèi)核的微體系結構,包括寄存器文件的說明及其在處理器中的功能。
在本文中,我們將定義什么是微體系結構。我們還將說明什么是ARM寄存器文件以及它在處理器的微體系結構中的位置。
本文旨在為下一篇文章提供基礎信息,在本文中,我們將介紹匯編的基礎知識,并展示一些使用Raspberry Pi編寫的32位ARM內(nèi)核的基本匯編指令。
什么是微架構?
微體系結構(有時寫為“微體系結構”)是允許執(zhí)行指令集的數(shù)字邏輯。它是寄存器,存儲器,算術邏輯單元,多路復用器和任何其他數(shù)字邏輯塊的組合實現(xiàn)。所有這些共同構成了處理器。
微體系結構與指令集體系結構(ISA)相結合,構成了系統(tǒng)的整體計算機體系結構。不同的微體系結構可以實現(xiàn)相同的ISA,但是需要在功率效率或執(zhí)行速度等方面進行權衡。最基本的處理器將包括一個寄存器文件,一個ALU,系統(tǒng)存儲器和一個控制單元,該控制單元使處理器可以根據(jù)其執(zhí)行的指令來做出決定。
ARM寄存器文件
要對數(shù)據(jù)執(zhí)行操作,需要有一個臨時存儲該數(shù)據(jù)的地方。這就是處理器的注冊文件的用途。寄存器文件是一堆寄存器,用于存儲臨時值并對這些值執(zhí)行操作。在寄存器之外,可以檢索數(shù)據(jù)并將其存儲在計算機的內(nèi)存中。雖然這是一個較慢的操作,但是與可用的相對較少的寄存器相比,可以在內(nèi)存中存儲的內(nèi)容更多。寄存器文件通常以SRAM的形式出現(xiàn)。
讓我們以32位ARM內(nèi)核為例。在這種情況下,我們將重點介紹32位ARMV7指令和32位寄存器。
32位或4字節(jié)的數(shù)量對應于ARM指令集中的一個字。ARM寄存器文件包含十六個用于執(zhí)行指令的寄存器。還存在狀態(tài)寄存器來存儲有關操作結果的信息,并允許處理器根據(jù)該結果做出決定。
注冊符號
寄存器用字母R和數(shù)字表示。
R0–R3用于存儲臨時值或變量,但在子例程調(diào)用中也起作用。
R4–R12是通用的。
R13或SP是堆棧指針。堆棧指針包含一個內(nèi)存地址,程序可以在該內(nèi)存中存儲以后需要檢索的信息。
R14是鏈接寄存器,與分支指令一起使用以返回程序中的上一個位置。
R15,稱為PC為program?ounter,存儲下一個指令的地址被執(zhí)行。這給PC帶來了巨大的責任,因為它可以控制處理器上執(zhí)行的指令。在PC上輸入錯誤的值,您的程序可能會突然停止運行;這通常稱為崩潰。
注冊標志
所述 current program status register (CPSR),前面提到的,包含大量的標記,可以是當集的指令執(zhí)行的。
這些標志是N,Z,C和V標志:
N代表負數(shù),并在指令結果為負數(shù)時使用。
Z,ZERO,當結果為零。
C代表carry并且在進位輸出被設定的指令結果時。
V代表oveRFlow ,發(fā)生溢出時被設置。
為了檢查這些標志,在編寫匯編代碼時,某些條件后綴(在后面的文章中討論)會附加到指令中。
處理器的一部分:數(shù)據(jù)路徑和控制單元
盡管我們不會詳細介紹設計ARM處理器的細節(jié)(也許在以后的文章中),但最好能基本了解寄存器文件適合運行我們的指令的系統(tǒng)的位置。下面的圖1是處理器的高度簡化框圖。
寄存器文件包含處理器的當前狀態(tài),并且ALU和內(nèi)存與該狀態(tài)交互。內(nèi)存分為多個部分。其中包含正在執(zhí)行的指令列表(匯編程序);另一個保存程序?qū)⑹褂玫臄?shù)據(jù)。所有這些組件以及綠色突出顯示的行構成了處理器的數(shù)據(jù)路徑。
數(shù)據(jù)路徑包含執(zhí)行正在實施的ISA中所有指令所需的所有內(nèi)容。但是數(shù)據(jù)路徑如何知道要執(zhí)行哪個操作?
圖1.高度簡化的處理器
數(shù)據(jù)路徑上方是控制單元。控制單元解釋在每個指令中找到的操作碼(操作碼)和條件碼,以打開或關閉數(shù)據(jù)路徑內(nèi)的路由。控制單元使處理器能夠根據(jù)當前從內(nèi)存中讀取的指令執(zhí)行不同的操作。控制單元和數(shù)據(jù)路徑共同構成了CPU或中央處理單元。
添加允許CPU與其他組件交互的內(nèi)存就形成了我們所謂的處理器。
-
ARM
+關注
關注
134文章
9167瀏覽量
369210 -
微架構
+關注
關注
0文章
22瀏覽量
7071
發(fā)布評論請先 登錄
相關推薦
EE-69:了解和使用SHARC處理器上的鏈接器描述文件
![EE-69:<b class='flag-5'>了解</b>和使用SHARC<b class='flag-5'>處理器</b>上的鏈接<b class='flag-5'>器</b>描述<b class='flag-5'>文件</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
雙向逆變器之ARM內(nèi)核處理器
![雙向逆變器之<b class='flag-5'>ARM</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>處理器</b>](https://file1.elecfans.com/web3/M00/04/AF/wKgZO2d3OfGAY2qVAAAXcXIOLw4076.jpg)
賽昉科技發(fā)布全新RISC-V處理器內(nèi)核Dubhe-83
ARM處理器的尋址方式
ARM處理器和CPU有什么區(qū)別
ARM處理器的工作模式和特點
ARM處理器的指令集包括哪些
ARM處理器的寄存器組織及功能
ARM處理器和CISC處理器的區(qū)別
ARM處理器的結構和特點
ARM處理器概述和發(fā)展歷程
什么是ARM處理器?與x86的比較及其優(yōu)缺點
![什么是<b class='flag-5'>ARM</b><b class='flag-5'>處理器</b>?與x86的比較及其優(yōu)缺點](https://file1.elecfans.com/web2/M00/EB/A1/wKgZomZe5fWAXs4EAABHp9zbA6E074.png)
dsp是嵌入式微處理器的一種設備嗎 ARM嵌入式微處理器有何特點?
業(yè)界首款基于Arm Cortex-M85處理器的MCU
![業(yè)界首款基于<b class='flag-5'>Arm</b> Cortex-M85<b class='flag-5'>處理器</b>的MCU](https://file1.elecfans.com/web2/M00/C3/99/wKgaomXmuO6ATAinAAAgk7MA8Kg950.png)
鴻蒙輕內(nèi)核源碼分析:MMU 協(xié)處理器
![鴻蒙輕<b class='flag-5'>內(nèi)核</b>源碼分析:MMU 協(xié)<b class='flag-5'>處理器</b>](https://file1.elecfans.com/web2/M00/C0/48/wKgZomXURhaAGcYoAAMU1aaKtPg526.png)
評論