arm el2与el3_ARM下的EL/PL概念

书接上一篇文章,这次主要是厘清在ARM体系结构下,EL/PL究竟是个什么东西。这次还是以v8为例,其一是这是目前唯一一个同时包含了32位和64位的体系规范,其二,这也是最新的规范。

首先是PL。PL的概念是从ARM体系规范之前的版本一路升级上来的,并且仍然存在于V8体系的AARCH32,即32位状态下。PL首先是一个权限级别的限制,里边实现了各种各样的mode。这个mode的概念也是32位所特有的,在一个同时实现了安全扩展和虚拟扩展的v7-a的ARM中,各个PE可以使用的mode有usr,只在PL0中使用,可以是安全或者非安全的,一般情况下,用户软件处于非安全态的usr下,而secure的应用程序则处于安全的usr下

sys, und, fiq, irq, svc, abt,只在PL1中,可以是安全或者非安全的,一般情况下,非安全的os或者虚拟扩展下的guest os位于非安全的mode下,而secure os位于安全的mode下

hyp, 只能在非安全态的PL2中,一般情况下,虚拟扩展的hypervisor实现在这个模式

mon,只能在安全态的PL1中,一般情况下,这个mode用于在安全态和非安全态之间切换

这9中mode不仅存在于spec的描述中,同时在结构的设计上,也有其对应的位置。32位状态下的current program status register, CPSR中,有一个位域M编码当前的处理器的状态。此外,一些应用程序可见的通用寄存器,例如LR和SP在一些模式下是banked的,这意味着在不同模式下,存在着不同的LR和SP实体,

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值