为什么CPU需要不同的特权等级?

如下图是一个经典的x86的特权等级示意图,x86有0~3共4级特权等级,但一般只有0级和3级常用。操作系统/内核工作于特权等级0,用户则工作于最低的特权等级3。

1. 特权等级是谁实现的?

当我们描述特权等级的时候,一定要区分的一个概念是:特权等级是CPU实现的,还是操作系统实现的?答案是CPU实现的。操作系统的不同模式是在CPU实现的基础上进行对应的。
在这里插入图片描述

2. 特权等级怎么实现的?

这里举一个RISC-V处理器的例子如下,RISC-V处理器定义了三种不同的特权等级,M,S,U三种,其中M是最高的等级,可以访问所有的资源。每一种特权等级都对应各自的一套控制寄存器(CSR),可以获取当前状态下处理器的工作状态。
在这里插入图片描述
在这里插入图片描述

3. 特权等级有什么用?

特权等级的最大作用就是保护。保护的对象可以是各种内存、IO等资源,其出发点就是对用户不放心!觉得用户写的代码会出各种bug,会破坏系统运行,因此控制用户的权限。而类似操作系统这样的代码,由于经过千锤百炼,比较完善,CPU可以放心地将最高权限交给他。

  • 物理内存保护:还是以RISC-V为例,在M模式下可以指定U模式可以访问的内存地址,配置其为R/W/X或Lock。
    在这里插入图片描述
  • 虚拟内存:RISC-V需要支持Supervisor Level。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值