摘要: 本文主要介紹了ARM64(Armv8)體系結(jié)構(gòu)的基本概念。
關(guān)鍵字:ARM64、Armv8、體系結(jié)構(gòu)、ARM架構(gòu)、指令集、數(shù)據(jù)寬度
1. ARM體系結(jié)構(gòu)是什么?
ARM體系結(jié)構(gòu),又稱ARM架構(gòu),是一種硬件規(guī)范。主要用來約定指令集、芯片內(nèi)部體系結(jié)構(gòu)(如內(nèi)存管理、高速緩存管理)等。
ARM指令集在結(jié)構(gòu)體系中并沒有約定每一條指令在硬件描述語言(VHDL或Verilog HDL)中如何實(shí)現(xiàn),而只約定了每條指令的格式、行為規(guī)范、參數(shù)等。
ARM體系結(jié)構(gòu)從v1版本發(fā)展到v9版本,每個(gè)版本的體系結(jié)構(gòu),指令集都有相應(yīng)的變化。
2. Armv8-A體系結(jié)構(gòu)的基本概念
2.1處理機(jī)(Processing Element ,PE):處理事務(wù)的過程抽象為處理機(jī)。
2.2執(zhí)行狀態(tài)(Execution State):處理器運(yùn)行時(shí)的環(huán)境,包括寄存器的位寬、支持的指令集、異常模型、內(nèi)存管理以及編程模型等。
Armv8體系結(jié)構(gòu)定義了AArch64和AArch32兩個(gè)執(zhí)行狀態(tài)。
2.2.1 ?AArch64為64位執(zhí)行狀態(tài)
- 提供31個(gè)64位的通用寄存器
- 提供64位的程序計(jì)數(shù)指針寄存器(PC)、棧指針寄存器(SP)、異常鏈接寄存器(ELR).
- 提供A64指令集
- 提供64位的內(nèi)存模型
- 定義Armv8異常模型,支持EL0-EL3共4個(gè)異常等級(jí)。
- 定義一組處理器狀態(tài)(PSTATE)用來保存處理機(jī)(PE)的狀態(tài)。
2.2.2 ?AArch32為32位執(zhí)行狀態(tài)
- 提供13個(gè)32位的通用寄存器
- 提供32位的程序計(jì)數(shù)指針寄存器(PC)、棧指針寄存器(SP)、鏈接寄存器(LR).
- 提供A32指令集和T32(Thumb)指令集。
- 提供32位的虛擬內(nèi)存訪問機(jī)制。
- 定義Armv8異常模型,支持EL0-EL3共4個(gè)異常等級(jí)。
- 定義一組處理器狀態(tài)(PSTATE)用來保存處理機(jī)(PE)的狀態(tài)。
2.3 Armv8指令集
- Arm 體系結(jié)構(gòu)根據(jù)不同的執(zhí)行狀態(tài)會(huì)有三種指令集。
- A64指令集,運(yùn)行在AArch64狀態(tài)下,提供64位指令集支持。
- A32指令集,運(yùn)行在AArch32狀態(tài)下,提供32位指令集支持。
- T32指令集,運(yùn)行在AArch32狀態(tài)下,提供Thumb 16位和32位指令集支持。
2.4 系統(tǒng)寄存器命令
在AArch64狀態(tài)下,一些系統(tǒng)寄存器會(huì)根據(jù)不同的異常等級(jí)提供不同的變種寄存器。例如:SP_EL0表示在EL0下的SP寄存器,SP_EL1表示在EL1下的SP寄存器。
3. AArch64異常等級(jí)
ARMv8-A架構(gòu)定義了一組異常級(jí)別(Exception Level,EL),從EL0到EL3,其中: 如果ELn為異常級(jí)別,n的值越大表示軟件執(zhí)行權(quán)限越高。
如上圖所示,
- EL0提供用于普通用戶的應(yīng)用。
- EL1提供操作系統(tǒng)相關(guān)的支持。
- EL2提供對非安全操作的虛擬化支持。
- EL3提供了兩個(gè)安全狀態(tài)之間切換的支持,安全狀態(tài)和非安全狀態(tài)。
- 一個(gè)程序可能不包括所有的異常級(jí)別,但必須包括EL0和EL1,至于EL2、EL3可選。
4. ARMv8支持的數(shù)據(jù)寬度
ARMv8支持如下幾種數(shù)據(jù)寬度:
- 字節(jié):8位
- 半字:16位
- 字 :32位
- 雙字:64位
- 四字:128位
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
20 年來,先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們在中國區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標(biāo)。
歡迎關(guān)注“億道電子”公眾號(hào)
了解更多研發(fā)工具軟件知識(shí)