RISC-V特权级别

特权级别

RISC-V 共有6个特权级别:

机器模式(M模式)

M模式 全称为Machine mode(机器模式) 运行在这个模式下的程序为最高权限,它属于RISC-V 里的最高权限模式,它具有访问所有资源的权限,它的代码是百分百可信的,通常运行在这个模式下的为固件操作系统内核

监管者模式(S模式)

S模式 全称**"Supervisor mode"(监管者模式)**

监管者模式 通常是用来运行操作系统内核 ,它的权限要比M模式低 ,它无法直接操作特殊寄存器某些资源 ,但内核通常会运行在S和M两个模式之间 ,在最初系统启动阶段内核是运行在M模式 下的,在这个模式下内核需要初始化所有的硬件资源 和进行内存管理 等等,当初始化完成之后会切换到S模式 下,通常内核里有一段代码是运行在M模式下和S模式下,M模式下的代码为S模式下的代码提供访问硬件资源 的能力。而S模式下的内核主要是为应用程序提供系统调用 以及上下文切换

虽然说S模式 下可以访问部分硬件 ,但是硬件资源受限 这样会导致内核受到限制 比如MIE (Machine Interrupt Enable)寄存器,这个寄存器负责设置一些安全性较高的中断 ,所以内核里分两部分并运行在不同的模式下。

为什么内核不能全部运行在M模式下?

因为指令集 的不同,在不同的模式 下所对应的指令集不同 ,在RISC-V 里不同的模式下指令集是不同的,不能互相调用,M模式 下的指令集较少编写难度较大 ,所以内核分两部分,运行在M模式下的代码为内核提供访问硬件资源的能力,而S模式下的代码则更加灵活负责上下文调度进程切换系统服务调用驱动管理

除此之外也是为了防止用户态直接切换到M模式 下,这样直接切换到最高级别可能存在一定安全隐患被黑客利用。

用户模式(U模式)

U模式 全称为**"User Model"(用户模式)** 为级别最低 的模式,它不能访问硬件资源 ,只能访问某些通用寄存器通用指令 ,一般用于执行应用程序

HS模式

HS模式 全称**"Hypervisor mode"(虚拟监管者模式)** ,在这个模式下具有和S模式 一样的权限 ,可以访问所有资源 ,在这个模式下VMM 可以不通过宿主机操作系统内核 直接访问硬件资源 ,为虚拟操作系统提供服务

当然S模式 下也可以实现虚拟机 的功能,但需要特定的驱动宿主机操作系统支持

VS模式

VS模式 全称**"Virtual Symmetric Multiprocessing mode"(虚拟对称多处理模式)** ,在这个模式下为VMM 提供多个虚拟处理器 的功能,VMM可以利用这个让每个虚拟处理器 具有S模式的权限。

VU模式

VU模式 全称**"Virtual User mode"(虚拟用户模式)** ,在这个模式下为不同虚拟操作系统虚拟用户态应用程序 提供虚拟内存 支持、特权操作 支持、操作系统隔离虚拟化支持等功能,从而满足不同的应用需求。

Tips

虚拟化VMM 会处于不同的虚拟特权模式 下,简单点来说就是VMM在执行虚拟化操作系统 时会将宿主机的CPU切换 置不同的虚拟特权 模式下,比如执行虚拟操作系统 的部分CPU特权会切换置HS ,而虚拟处理器 功能则为VS 模式,执行虚拟应用程序 时为VU模式。

特权模式的应用场景

一般这些特权模式应用场景如下:

特权 使用场景
1. M模式 嵌入式系统
1. M模式 2. U模式 具有安全特性的嵌入式系统
1. M模式 2. S模式 3. U模式 通用操作系统
1. M模式 2. U模式 3. HS模式 4. VS模式 5. VU模式 虚拟化操作系统
相关推荐
东辰芯力6 天前
探索未来物联网开发——HiSpark平台与海思IDE安装指南
人工智能·单片机·嵌入式硬件·算法·risc-v
杭州_燕十三10 天前
从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
risc-v·sg2002
luoganttcc10 天前
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
fpga开发·开源·risc-v
安全二次方security²18 天前
基于RISC-V的开源通用GPU指令集架构--乘影OpenGPGPU
risc-v·opencl·gpgpu·乘影·向量扩展指令集·gpgpu微架构·开源通用gpu
effort看看喽24 天前
基于RISC-V 的代理内核实验(使用ub虚拟机安装基本环境)
linux·运维·risc-v
songisgood25 天前
CH32v20x单片机risc-v内核uint64_t类型移位后变量为0解决办法
单片机·嵌入式硬件·risc-v·移位·ch32
东辰芯力25 天前
电机控制理论基础及其应用
人工智能·单片机·嵌入式硬件·risc-v
杭州_燕十三1 个月前
从零开始学习 sg200x 多核开发之 sample 打包
risc-v·sg2002
飞凌嵌入式1 个月前
飞凌嵌入式T113-i开发板RISC-V核的实时应用方案
人工智能·嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
sinovoip1 个月前
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
人工智能·科技·物联网·开源·risc-v