兼職做調(diào)查哪個網(wǎng)站好溫州seo公司
目錄
- 1.ARMCore的時間線
- 2.ARM術(shù)語小結(jié)
- 2.1 A64和arrch64
- 2.2ARM架構(gòu)現(xiàn)在的5個系列
- 2.3 微架構(gòu)
- 2.4 PE
- 2.5 Banked
- 2.6 ARM文檔術(shù)語
- 2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED
- 2.8 EL1t和EL1h
- 3 ARMv7的軟件架構(gòu)
- 4 安全狀態(tài)切換模型
- 4.1 Secure state和Non-secure state介紹
- 5 Interprocessing-執(zhí)行狀態(tài)切換模型
- 5.1 執(zhí)行狀態(tài)切換的要求
- 5.2、大系統(tǒng)軟件中執(zhí)行狀態(tài)模型
- 6.特權(quán)模型/安全模型/異常模型
- 小結(jié) aarch64和aarch32對比總結(jié)
1.ARMCore的時間線
tips:加E后綴的是車規(guī)級別的芯片,是給車輛使用的。
2.ARM術(shù)語小結(jié)
2.1 A64和arrch64
- A64:是指令集。
- arrch64:是64位的架構(gòu)。
2.2ARM架構(gòu)現(xiàn)在的5個系列
- 1)A系列:應(yīng)用于移動終端;2)R系列:應(yīng)用于高實時性要求;3)M系列:應(yīng)用于嵌入式;4)X系列:超大核;5)N系列:應(yīng)用于服務(wù)器。 其中X和N系列都是A系列下的。
2.3 微架構(gòu)
微架構(gòu):微架構(gòu)是在架構(gòu)的基礎(chǔ)上實現(xiàn)的具體IP產(chǎn)品,比如ARM v8.0 架構(gòu)的 A72,ARM v9.0的A715都是微架構(gòu)。
2.4 PE
- PE:Processing Element :ARM體系結(jié)構(gòu)定義了抽象機器的行為,稱為處理元素(縮寫是PE),不僅僅指的ARM Core 其他GPU,NPU的處理單元也可以這么叫。一般將arm核和PE畫等號。但是多核比如A65里面,一個核包含兩個線程,一個線程就是一個PE,此時就不可以畫等號了。
2.5 Banked
- Banked:一個地址多份拷貝,一個SOC有4個核, ldr x0,[x1] 這個x1寄存器,哪個核去調(diào)用,這個x1就是這個核的x1寄存器。
2.6 ARM文檔術(shù)語
1.TRM(Technical Reference Manual):Arm Cortex processor has a Technical Reference Manual,ARM 核的文檔,具體實現(xiàn)定義的,比如查看某個寄存器的具體實現(xiàn);
2.Arm ARMs(ARM Architecture Reference Manual):架構(gòu)類文檔,最常用;
3.CIM(Configuration or Integragtion Manual):Arm Cortex processor also has a Configuration or Integragtion Manual,一般給ASIC看的,會有板卡飛線等信息。
2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED
- IMPLEMENTATION DEFINFD:實現(xiàn)定義的,有兩個意思1)ARM IP 產(chǎn)品是實現(xiàn)定義的,比如架構(gòu)文檔中某寄存器是實現(xiàn)定義的,這時候要具體查看它的Core文檔,2)是有些實現(xiàn)定義的,ARM沒有規(guī)定如何實現(xiàn),需要芯片廠商自己決定如何實現(xiàn),這個也叫實現(xiàn)定義的。
- DEPRECATED:棄用的,在架構(gòu)更新的時候,可能前面版本的某些實現(xiàn)被棄用了,一般不需要詳細研究。
- RES0/RERS1 Reservwd,should be Zero /Reserved ,should be one (后續(xù)繼續(xù)補充)
2.8 EL1t和EL1h
- EL1t和EL1h的后綴t和h分別表示什么?1)t 表示SP_EL0;h表示SP_ELn。
Exception Level(EL) | Stack pointer(SP) options | 含義 |
---|---|---|
EL0 | SP_EL0t | EL0下的 SP_EL0 |
EL1 | SP_EL1t ,SP_EL1h | 在EL1中使用SP_EL0,SP_EL1 |
EL2 | SP_EL2t ,SP_EL2h | 在EL2中使用SP_EL0,SP_EL2 |
EL3 | SP_EL3t ,SP_EL3h | 在EL3中使用SP_EL0,SP_EL2 |
SP 棧指針一共有4個寄存器SP_EL0,SP_EL1,SP_EL2,SP_EL3。
在EL0只能使用SP_EL0寄存器;在EL1不僅能能使用SP_EL1寄存器,還能使用SP_EL0寄存器;在 EL2不僅能能使用SP_EL2寄存器,還能使用SP_EL0寄存器;在EL3不僅能能使用SP_EL3寄存器,還能使用SP_EL0寄存器;
t:就是SP_EL0 ;h:就是SP_ELn
3 ARMv7的軟件架構(gòu)
1、ARM有多少種模式?
7種,8種,9種都正確。在ARMv7中大部分都是9種模式;部分核是8種模式,不支持Hyp模式;部分是7種,不支持Hyp模式和Secure Monitor 模式
架構(gòu) | 微架構(gòu) | User | Privilege | Secure Monitor | Hypervisor |
---|---|---|---|---|---|
ARMv4 | ARM 7 | √ | √ | ||
ARMv5 | ARM 7 | √ | √ | ||
ARMv7 | Cortex-A8 | √ | √ | √ | |
ARMv7 | Cortex-A9 | √ | √ | √ | |
ARMv7 | Cortex-A5 | √ | √ | √ | |
ARMv7 | Cortex-A7 | √ | √ | √ | √ |
ARMv7 | Cortex-A15 | √ | √ | √ | √ |
ARMv8 | Cortex-A53 | √ | √ | √ | √ |
ARMv8 | Cortex-A53 | √ | √ | √ | √ |
ARMv8 | Cortex-A57 | √ | √ | √ | √ |
ARMv8 | Cortex-A72 | √ | √ | √ | √ |
ARMv8 | Cortex-A35 | √ | √ | √ | √ |
ARMv8 | Cortex-A73 | √ | √ | √ | √ |
ARMv8 | Cortex-A55 | √ | √ | √ | √ |
ARMv8 | Cortex-A75 | √ | √ | √ | √ |
ARMv8 | Cortex-A76 | √ | √ | √ | √ |
4 安全狀態(tài)切換模型
4.1 Secure state和Non-secure state介紹
在不考慮RME擴展的前提下
1.ARM架構(gòu)定義了兩種安全狀態(tài) Secure state和Non-secure state;
2.ARM架構(gòu)定義了兩套物理地址空間:Secure和Non-secure;
3.如果PE是Non-secure state,那么它只能訪問非安全物理地址空間:
4.如果PE是Secure state,那么它既能訪問安全物理地址空間,也能訪問非安全物理地址空間;
5.EL3永遠是Secure state;
6.EL2/EL1/ELO是安全狀態(tài)還是非安全狀態(tài),要根據(jù)SCREL3.NS比特:
7.SCR EL3.NS比特只能在EL3被修改
8.EL2是安全狀態(tài)必須滿足以下條件:(1)FEAT SEL2 is implemented(2)The Effective value of SCR EL3.EEL2 is 0b1(3)The Effective value of SCR EL3.NS is 0b0.
5 Interprocessing-執(zhí)行狀態(tài)切換模型
這個是由于v8中最初是32位架構(gòu),后面推出64位架構(gòu),V9第一款也是支持32和64,但是后面出的就是全支持64位架構(gòu),所以需要學(xué)習(xí)下這個執(zhí)行狀態(tài)切換,但是在未來都會使用64位架構(gòu),就不會存在這個問題了。
5.1 執(zhí)行狀態(tài)切換的要求
1.執(zhí)行狀態(tài)只能在異常從lower Exception level進入higher Exception level時,或從higher Exception level異常返回到lower Exception level時發(fā)生修改
2.如果異常進入或異常返回沒有發(fā)生Exception Level變化,那么此時執(zhí)行狀態(tài)是不能被修改的
3.當產(chǎn)生一個異常從lower Exception level進入higher Exception level時,此時執(zhí)行狀態(tài)可能不變,或從aarch32變成arch64,不能從aarch64變成aarch32
4、當一個異常返回從higher Exception level到lower Exception level時,此時執(zhí)行狀態(tài)可能不變,或從aarch64變成aarch32,不能從aarch32變成aarch64
5.reset也能導(dǎo)致執(zhí)行狀態(tài)的變化
5.2、大系統(tǒng)軟件中執(zhí)行狀態(tài)模型
在64位架構(gòu)上可以運行64位或者32位,但是在32位架構(gòu)之上只能運行32位
6.特權(quán)模型/安全模型/異常模型
在 ARMv8 中,執(zhí)行發(fā)生在四個異常級別之一。在 AArch64 中,異常級別決定了特權(quán)級別,類似于ARMv7中定義的特權(quán)級別。異常級別決定特權(quán)級別,因此在ELn執(zhí)行對應(yīng)于特權(quán)PLn。類似地,具有比另一個更大的n值的異常級別處于更高的異常級別。一個數(shù)字比另一個小的異常級別被描述為處于較低的異常級別。
異常級別提供了適用于 ARMv8 架構(gòu)的所有操作狀態(tài)的軟件執(zhí)行權(quán)限的邏輯分離。它類似于并支持計算機科學(xué)中常見的分層保護域的概念。
- ELO Normal user applications.
- EL1 Operating system kernel typically described as privileged
- EL2 Hypervisor.
- EL3 Low-level frmware, including the Secure Monitor.
小結(jié) aarch64和aarch32對比總結(jié)
AArch64,64位執(zhí)行狀態(tài):
1.提供31個64位通用寄存器,其中X30用作過程鏈接寄存器。
2.提供64位程序計數(shù)器(PC)、堆棧指針(SPs)和異常鏈接寄存器(ELRS)。
3.為SIMD向量和標量浮點支持提供32個128位寄存器。
4.提供單個指令集A64定義了ARMV8異常模型,有四個異常級別,EL0-EL3,提供了一個執(zhí)行特權(quán)層次結(jié)構(gòu)
5.提供對64位虛擬尋址的支持
6.定義許多包含PE狀態(tài)的進程狀態(tài)(PSTATE)元素。A64指令集包括直接操作各種PSTATE元素的指令
7.使用表示可以訪問寄存器的最低異常級別的后綴來命名每個系統(tǒng)寄存器。
AArch32,32位執(zhí)行狀態(tài):
1.提供13個32位通用寄存器,以及一個32位PC、SP和link寄存器(LR)。LR同時用作ELR和過程鏈接寄存器。其中一些寄存器具有多個存儲實例,用干不同的PE模式,
2.為從Hyp模式返回的異常提供一個ELR。
3.為高級SIMD向量和標量浮點支持提供32個64位寄存器。
4.提供兩個指今集,A32和T32
5.支持基于PE模式的ARMv7-A異常模型,并將其映射到基于異常級別的ARMV8異常模型。
6.提供對32位虛擬尋址的支持。
7.定義許多包含PE狀態(tài)的進程狀態(tài)(PSTATE)元素。A32和T32指令集包括直接操作各種PSTATE元素的指令,以及使用應(yīng)用程序(APSR)或當前程序狀態(tài)寄存器(CPSR)訪問PSTATE的指令