ARM系列 -- 虚拟化(二)

上一篇介绍了虚拟化和hypervisor的基本概念。为了配合虚拟化,ARM做了许多工作,首先是定义了四个异常等级(Exception Level,简称EL)。

前面介绍异常和特权的文章中有介绍,此处再啰嗦几句。每个异常级别都有编号,分别是EL0-3,权限级别越高,对应的编号越高。用户程序运行在EL0,操作系统运行在EL1,虚拟机监控程序(hypervisor)运行在EL2,固件程序(firmware)运行在EL3。

这里插一句,在intel的体系中,类似的概念是ring0-3。

在ARM的架构下,系统寄存器在不同的异常等级下是独立的寄存器,在指令集中有自己的编码,并在硬件中单独实现。这些系统寄存器可以根据后缀区分出可以访问的等级。例如,TTBR0_EL1是保存转换表基址的寄存器。如果EL0访问此寄存器,将会触发一个异常。

在高异常等级下可以访问低异常等级的寄存器,虽然大多数情况下不会这么做。但在某些场景下,还是需要的。比如在上下文切换或电源管理操作期间,更多特权级别有时会访问与较低异常级别关联的寄存器,以实现虚拟化功能或读写寄存器集,作为保存和还原操作的一部分。

除了异常等级,还有两个概念:执行状态(exec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值