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模式 虚拟化操作系统
相关推荐
ChipCamp14 天前
ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
fpga开发·verilog·risc-v
ChipCamp17 天前
Chisel芯片开发入门系列 -- 18. CPU芯片开发和解释8(流水线架构的代码级理解)
开发语言·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel
思尔芯S2C19 天前
Cost-Effective and Scalable: A Smarter Choice for RISC-V Development
fpga开发·risc-v·soc设计·prototyping
ChipCamp21 天前
Chisel芯片开发入门系列 -- 14. CPU芯片开发和解释4(Load/Store指令再探)
arm开发·青少年编程·fpga开发·scala·dsp开发·risc-v·chisel
芝士爱沙拉24 天前
智能落地扇方案:青稞RISC-V电机 MCU一览
单片机·嵌入式硬件·risc-v·电机驱动
OpenAnolis小助手1 个月前
RISC-V基金会Datacenter SIG月会圆满举办,探讨RAS、PMU性能分析实践和经验
开源·龙蜥社区·risc-v·datacenter sig·龙蜥社区risc-v sig
月光技术杂谈1 个月前
《RISC-V 导论:设计与实践》开源课件(附下载链接)
开源·risc-v·课件
月光技术杂谈1 个月前
上海RISC-V峰会-香山开源RISC-V CPU随想随记
verilog·risc-v·chisel·vhdl·香山·开源cpu·xiangshan
随风ada1 个月前
Windows、macOS、liunx下使用qemu搭建riscv64/linux
linux·windows·ubuntu·macos·golang·qemu·risc-v
openKylin1 个月前
填补空白!openKylin率先完成RISC-V商业打印驱动全适配
risc-v