更多精彩,请点击上方
蓝字关注我
前言:
RISC-V(发音为“risk-five”)是一种新的指令集架构(ISA),最初的设计目的是支持计算机架构的研究和教育,但随着近些年的发展,它已经成为工业实现中的一个标准化、免费且开放的架构。
RISC-V 指令集的一大优势是其可扩展性,用户可根据具体应用需求,选择合适的扩展指令集。本文介绍RISC-V的特权级别以及调试模式。
一、RISC-V特权级别
RISC-V硬件线程(hart)在任意时刻都运行在某个特权级别上,该级别通过控制状态寄存器(CSR)中的模式字段编码。当前定义了三种特权级别:
| 级别 | 编码 | 名称 | 缩写 | 描述 |
|---|---|---|---|---|
| 0 | 00 | 用户/应用模式 | U | 用于运行常规应用程序,权限最低。 |
| 1 | 01 | 监督模式 | S | 用于运行操作系统,提供进程隔离和内存管理。 |
| 3 | 11 | 机器模式 | M | 权限最高,是唯一强制要求实现的级别,用于底层硬件管理和安全执行环境。 |
关键特性:
权限隔离:低特权级别无法执行高特权操作(如访问特定CSR或指令),否则会触发异常(trap),并陷入更高特权级别的处理程序。
灵活性:
机器模式(M-mode)必须实现,用户模式(U-mode)和监督模式(S-mode)可选。
支持从1到3个特权模式的组合(见表2),以平衡隔离性和实现成本。
陷阱处理:
垂直陷阱(Vertical Trap):陷阱导致特权级别提升(如从U-mode陷入S-mode)。
水平陷阱(Horizontal Trap):陷阱在同一特权级别处理(可通过垂直陷阱模拟)。
陷阱路由灵活,可由高特权级别处理低特权级别的异常。
二、调试模式(Debug Mode)
调试模式(D-mode)是一种特殊的权限模式,用于支持片外调试和制造测试:
权限:比机器模式(M-mode)具有更高的访问权限,可访问所有系统资源。
CSR保留:保留部分CSR地址(如
dcsr、dpc等),仅D-mode可访问。物理地址空间:可能保留部分物理地址区域供调试使用。
独立性:由独立的调试规范(RISC-V Debug Specification)定义具体操作,与常规特权架构分离。
总结
特权级别:提供U、S、M三级权限隔离,M-mode为必选,支持系统灵活配置。
调试模式:作为附加权限模式,拥有超越M-mode的访问能力,专用于调试和测试。
以上信息均基于文档内容,若未提及其他细节(如具体CSR地址或指令编码),则不予补充。
目前RISC-V官方Ratified spec主要包括:

