CSR 位字段

RISC-V jvt CSR 寄存器详解

地址 0x017特权级 User 模式访问 读写 / XLEN用户级 Zcmt CSR

jvt(0x017)是 Zcmt 的用户级 XLEN 位跳转表基址与模式配置 CSR。

字段映射

按 bit 字段理解 jvt

2 个关键字段
XLEN-1:6

BASE

WARL

跳转表基址的 XLEN-1:6 位;低六位在形成 jvt.base 时补零,因此地址始终按 64 字节对齐。

这个字段控制什么

  • - 跳转表基址的 XLEN-1:6 位;低六位在形成 jvt.base 时补零,因此地址始终按 64 字节对齐。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
5:0

MODE

WARL

跳转表模式。000000 是必须实现的跳转表模式;其他编码保留供未来标准使用,WARL 读回用于发现实现的模式。

这个字段控制什么

  • - 跳转表模式。000000 是必须实现的跳转表模式;其他编码保留供未来标准使用,WARL 读回用于发现实现的模式。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册

读这个 CSR 时先看什么

  • - jvt 是 0x017 的 URW CSR;它仅在实现 Zcmt 时必须存在,并可具有只读值。
  • - 若实现 Smstateen,JVT 状态使能位控制对 jvt 的访问。

写入前的风险检查

  • - BASE 和 MODE 均为 WARL;仅可写入实现支持的值,并应读取回写入结果。

放回真实流程里理解

1

将 BASE 编程为 64 字节对齐的跳转表地址,并读取回 WARL 结果。

2

使用 MODE=000000 的必需跳转表模式。

3

更新表内存后执行 fence.i,确保修改对随后的隐式指令取指可见。