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模式 虚拟化操作系统
相关推荐
飞凌嵌入式12 天前
FET113i-S核心板已支持RISC-V,打造国产化降本的更优解 -飞凌嵌入式
嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
EVERSPIN12 天前
RISC-V单片机可快充手持电钻方案分享
单片机·嵌入式硬件·risc-v
谷公子的藏经阁17 天前
RISC-V笔记——显式同步
risc-v·fence·rcpc·显示同步·synchronization
码匠许师傅19 天前
【开源鸿蒙】OpenHarmony 5.0轻量系统最小开发环境搭建
python·pip·risc-v·openharmony·gcc·1024程序员节·hi3861
谷公子的藏经阁24 天前
RISC-V笔记——内存模型公理
risc-v·atomicity·progress·load value·axiom
谷公子的藏经阁24 天前
RISC-V笔记——重叠地址排序
risc-v·order·重叠地址排序·rvwmo·overlapping
谷公子的藏经阁24 天前
RISC-V笔记——内存模型总结
cpu·risc-v·内存模型·memory model·ztso
谷公子的藏经阁1 个月前
RISC-V笔记——RVWMO基本体
risc-v·release·rcpc·rcsc·acquire
谷公子的藏经阁1 个月前
RISC-V笔记——基础
cpu·risc-v·isa
谷公子的藏经阁1 个月前
RISC-V笔记——语法依赖
risc-v·语法依赖·控制依赖·数据依赖·地址依赖