華為雲技術分享 ARM體系結構基礎 3

2022-09-07 14:15:09 字數 1295 閱讀 8055

上一期中我們介紹了armv8-a架構裡作業系統常用的暫存器的基本使用情況,這一期中我們將介紹armv8-a架構中的執行狀態。

armv8-a有兩種執行模式,一種是aarch64執行模式,另一種是aarch32執行模式。執行狀態定義處理單元(processing element, pe)的執行環境,包括以下內容:

支援的暫存器寬度

支援的指令集

異常模型

虛擬儲存系統(virtual memory system architecture, vmsa)架構

程式設計師模型

aarch64為64位執行狀態。對應上述內容,此執行狀態:

提供31個64位通用暫存器,其中x30用作過程鏈結暫存器(procedurelink register)。

提供64位程式計數器(pc)、堆疊指標(sp)和異常鏈結暫存器(elrs)。

提供32個128位暫存器以支援simd向量和標量浮點運算。

提供單一指令集a64。

定義armv8異常模型,該模型最多有四個異常級別el0-el3,它們提供執行許可權層次結構。

支援64位虛擬定址。

定義一系列與pstate相關的暫存器。a64指令集包括能直接操作各種pstate暫存器的指令。

使用字尾命名每個系統暫存器,該字尾指示可以訪問暫存器的最低異常級別。

aarch32為32位執行狀態。對應上述內容,此執行狀態:

提供13個32位通用暫存器和乙個32位pc、乙個32位sp暫存器和乙個32位鏈結暫存器(link register,lr)。鏈結暫存器用作異常鏈結暫存器和過程鏈結暫存器。其中一些暫存器有多個備份暫存器,用於不同的處理器工作模式。我們在上一期提到過,同乙個功能的暫存器在不同的處理器執行模式下可能對應不同的物理暫存器,這些暫存器被稱為備份暫存器。

為從hyp(hypervisor)模式返回的異常提供乙個異常鏈結暫存器。

提供32個64位暫存器,用於對高階simd向量和標量浮點計算的支援。

提供兩個指令集,a32和t32。

支援基於處理器工作模式的armv7-a異常模型,並將其對映到基於異常級別的armv8異常模型。

使用32位虛擬位址。

使用單個當前程式狀態暫存器(cpsr)儲存處理器狀態。

在aarch64和aarch32執行狀態之間進行轉換稱為內部處理(interprocessing)。

本期我們介紹了armv8-a的執行狀態。下一期我們將介紹armv8-a的異常級別和安全狀態。

參考文獻

[1] arm® architecture reference manualarmv8, for armv8-a architecture profile

ARM體系結構

arm是 advanced risc machines 高階精簡指令系統處理器 的縮寫,是arm公司提供的一種微處理器智財權 ip 核 arm既可以認為是乙個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字 arm微處理器的特點 1 體積小 低功耗 低成本 高效能 2 支援t...

ARM體系結構

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

ARM體系結構

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