2. Execute states
2019-02-03 本文已影响0人
Loyen
ARMv8-A相关历史文章:
ARMv8-A体系架构定义了两种执行状态:AArch64和AArch32。AArch64是ARMv8-A独有的,采用64-bit通用寄存器,而AArch32后向兼容ARMv7-A,使用32-bit通用寄存器。GNU和Linux文档有时把AArch64也称作ARM64.
AArch32执行状态与ARMv7-A的实现兼容,其中包括虚拟化扩展、安全扩展、LPAE(Large Physical Address Extensions)。ARMv8-A体系结构允许执行不同的软件层,比如应用软件,操作系统内核,或使用AArch32/AArch64的Hypervisor层。ARMv8-A体系结构定义了AArch32和AArch64中的执行如何交互。
-
AArch64下的Exception Levels组织如下图:
-
AArch32下的Exception Levels组织如下图:
在AArch32状态下,Trusted OS在Secure EL3中执行,而在AArch64状态下,主要在Secure EL1中执行。