大数跨境
0
0

RISC-V控制和状态寄存器(CSR)

RISC-V控制和状态寄存器(CSR) 处理器+AI知识星球
2025-12-05
2
导读:RISC-V 指令集的一大优势是其可扩展性,用户可根据具体应用需求,选择合适的扩展指令集。本文介绍RISC-V的控制和状态寄存器(CSR)。

更多精彩,请点击上方图片蓝字关注我

前言:


RISC-V(发音为“risk-five”)是一种新的指令集架构(ISA),最初的设计目的是支持计算机架构的研究和教育,但随着近些年的发展,它已经成为工业实现中的一个标准化、免费且开放的架构。

RISC-V 指令集的一大优势是其可扩展性,用户可根据具体应用需求,选择合适的扩展指令集。本文介绍RISC-V的控制和状态寄存器(CSR

一、CSR地址映射规范

CSR使用12位地址空间(csr[11:0]),最多支持4,096个寄存器。其编码规则如下:

  • csr[11:10]:表示读写权限

    • 000110:读/写寄存器

    • 11:只读寄存器

  • csr[9:8]:编码最低可访问特权级别

    • 00:用户级(U-mode)

    • 01:监督级(S-mode)

    • 10:Hypervisor/VS级

    • 11:机器级(M-mode)

执行访问不存在的 CSR 的指令是非法的。 在没有适当特权级别的情况下访问 CSR 会引发非法指令异常, 或者引发虚拟指令异常。 写入只读寄存器会引发非法指令异常。 一个可读写的寄存器也可能包含一些只读位, 在这种情况下, 对只读位的写入将被忽略。  

此外,机器模式的标准读写 CSR 0x7A0-0x7BF 保留给调试系统使用。 在这些 CSR 中, 0x7A0-0x7AF 对机器模式可访问, 而 0x7B0-0x7BF 仅对调试模式可见。 实现应在机器模式访问后一组寄存器时引发非法指令异常。  

二、CSR列表

下列表中列出了当前已分配 CSR 地址的 CSR, 需要注意的是, 并非所有寄存器在所有实现中都是必需的。  

下面列出了一些常用CSR

非特权级CSR地址(部分)

地址 权限 名称 描述
0x001 URW fflags 浮点异常标志
0x002 URW frm 浮点舍入模式
0x003 URW fcsr 浮点控制和状态寄存器
0xC00 URO cycle 周期计数器
0xC01 URO time 计时器
0xC02 URO instret 已执行指令计数器

监督级CSR地址(部分)

地址 权限 名称 描述
0x100 SRW sstatus 监督器状态寄存器
0x104 SRW sie 监督器中断使能
0x105 SRW stvec 监督器陷阱向量基地址
0x140 SRW sscratch 监督器临时寄存器
0x141 SRW sepc 监督器异常程序计数器

机器级CSR地址(部分)

地址 权限 名称 描述
0x300 MRW mstatus 机器状态寄存器
0x301 MRW misa 机器ISA寄存器
0x305 MRW mtvec 机器陷阱向量基地址
0x341 MRW mepc 机器异常程序计数器
0x342 MRW mcause 机器陷阱原因

三、CSR字段规范类型

文档定义了三种主要的CSR字段规范:

1. WPRI(保留位写保持值,读忽略)

  • 保留位在写入时保持原值,读取时返回0

  • 用于未来扩展,保证软件兼容性

2. WLRL(只写合法值,读合法值)

  • 只能写入预定义的合法值

  • 读取时始终返回合法值

3. WARL(写任意值,读合法值)

  • 可以写入任意值,但读取时返回硬件接受的最近合法值

  • 用于处理不同配置下的值约束

四、其它重要特性

1. 隐式CSR读取

  • 某些指令会隐式读取CSR值(如陷阱处理时)

  • 不影响显式CSR访问语义

2. CSR宽度调制

  • CSR宽度可能受XLEN(当前ISA宽度)影响

  • RV32与RV64的CSR布局可能不同

3. 跨特权级访问

  • 高特权级别可以访问低特权级别的CSR

  • 低特权级别访问高特权CSR会触发异常

4. 虚拟化支持

  • 为实现高效虚拟化,部分CSR采用影子寄存器机制

  • 只读CSR在低特权级可能在高特权级变为读/写


相关阅读:

特权级别和调试模式

目前RISC-V官方Ratified spec主要包括:

作者已经全部整理并放在报读网盘
资料获取:
关注微信公众号《处理器+AI知识星球》,后台回复“riscvall”即可获得所有资料的百度网盘链接

【声明】内容源于网络
0
0
处理器+AI知识星球
计算机体系结构、RISC-V、CPU、GPU、NPU、XPU等相关知识
内容 125
粉丝 0
处理器+AI知识星球 计算机体系结构、RISC-V、CPU、GPU、NPU、XPU等相关知识
总阅读78
粉丝0
内容125