码迷,mamicode.com
首页 > 其他好文 > 详细

ARMv8架构学习---Privilege, Security, Modes and Exception Levels

时间:2014-09-04 13:13:39      阅读:1543      评论:0      收藏:0      [点我收藏+]

标签:des   os   io   使用   ar   sp   on   amp   c   

1、执行64位宽的寄存器,又兼容ARMv7架构的软件,即既支持32bit,又支持64bit,AArch64 & AArch32

2、分离了privilege和mode,ARMv7是一体的

      在ARMv8中,安全状态下,有PL3、PL1、PL0,没有PL2,可以访问安全内存空间

                        非安全状态下,有PL2、PL1、PL0,没有PL3,不可访问安全内存空间

      每一个PL级别, 决定一套指令和寄存器集。

 3、Exception Levels(EL)

      EL也有4级,EL0、EL1、EL2(仅在非安全状态下存在)、EL3(仅在安全状态下存在)

      在AArch64下,EL决定PL,当前执行在ELx,PL也就为PLx。

      EL的切换:发生一个异常or从一个异常返回

                     发生一个异常:EL >= 当前EL

                     从一个异常返回:EL <= 当前EL

       EL的决定性:决定当前执行状态,如哪种寄存器,PL,寄存器位宽等

       EL的级别:数字越大,级别越高,相当于权限越大。

                     一般应用程序使用EL0,OS内核使用EL1,Hypervisor使用EL2,Security Monitoe使用EL3

 4、寄存器位宽

      EL级别变大,寄存器位宽变大或者不变;EL级别变小,寄存器位宽变小或者不变。

      EL0的寄存器位宽,由EL1中的HCR/SCR寄存器中某bit决定,只能通过从异常返回来设置

      EL1的寄存器位宽,由EL2中的HCR寄存器或者EL3中的SCR寄存器中某bit决定,根据安全非安全状态决定是EL3还是EL2。

      EL2、EL3的寄存器位宽, 由复位时的配置管脚设置

 5、指令集

      A32: 兼容ARMv7架构中的32bit ARM指令集

      T32: 兼容ARMv7架构中的16bit & 32bit Thumb指令集    

      T32EE:兼容ARMv7架构中的16bit & 32bit ThumbEE指令集

      A63:ARMv8新定义的64bit指令集     

6、AArch32

      如果最高级别的EL如EL2orEL3使用AArch32,则整个系统必须使用AArch32;

      AArch32下,ARMv8下的执行就跟ARMv7一样,只是虚拟化扩展和大物理地址扩(LPAE)展有点改变

 7、异常返回状态

     AArch64下,异常返回状态由ELR(Exception Link Register)和SPSR(Saved Processor State Register)寄存器决定。

     ELR中保存异常返回地址,SPSR保存处理器状态。

8、堆栈指针选择

     EL0下,堆栈指针为SP_EL0,其他为SP_ELx。

 9、安全模型

      在ARMv7下,安全扩展引入了Monitor模式,该模式来实现安全和非安全状态的切换。

      ARMv8下,当EL3使用AArch32,为了兼容ARMv7,在安全模式下不区分EL,只有一个EL3

                                   Non-secure state             Secure State

                     EL0         Application

                     EL1         OS

                     EL2         Hypervisor

                     EL3                                               Secure Monitor ->Secure OS ->Secure Application

       ARMv8下,当EL3使用AArch64,EL和安全是分离的

                                    Non-secure state             Secure State

                     EL0         Application                       Secure Application

                     EL1         OS                                  Secure OS

                     EL2         Hypervisor

                     EL3                                               Secure Monitor    

10、执行模式

       ARMv7中的模式包括user、FIQ、IRQ、Supervisor、Monitor、Abort、Hyp、Undefined、System,混合了各种概念。

       ARMv8在AArch64中的模式EL0t、EL1t & EL1h、EL2t & EL2h、EL3t & EL3h,后缀t表示SP_EL0堆栈指针,h表示SP_ELx堆栈指针

 

ARMv8架构学习---Privilege, Security, Modes and Exception Levels

标签:des   os   io   使用   ar   sp   on   amp   c   

原文地址:http://www.cnblogs.com/cuckoocommon/p/3955784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!