为什么CPU需要不同的特权等级? 您所在的位置:网站首页 处理器分为几个等级的 为什么CPU需要不同的特权等级?

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

2024-07-09 22:33| 来源: 网络整理| 查看: 265

如下图是一个经典的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。 在这里插入图片描述


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有