CSR 位字段

RISC-V time CSR 寄存器详解

地址 0xC01特权级 U模式访问 只读 / XLEN 位(底层计数器为 64 位)用户级计数器与性能监控 CSR

time 是 Zicntr 定义的用户级只读 CSR,读取 从过去任意起点开始经过的墙钟实时时间 的低 XLEN 位。Zicntr 依赖 Zicsr;该底层计数器为 64 位,RV32 使用 timeh 读取位 63:32。

字段映射

按 bit 字段理解 time

1 个关键字段
XLEN-1:0

VALUE

只读

time 的低 XLEN 位只读视图;底层计数器为 64 位。在 RV32 上,timeh 读取位 63:32。

这个字段控制什么

  • - time 的低 XLEN 位只读视图;底层计数器为 64 位。在 RV32 上,timeh 读取位 63:32。

常见取值

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

官方依据与检索要点

time 是 0xC01 的 Zicntr 用户级只读 CSR,读取 64 位底层计数器的低 XLEN 位。

Zicntr 依赖 Zicsr;在 RV32 上,配套高半 CSR 读取位 63:32。
time 每个实时时钟 tick 加一;执行环境应提供 tick 周期和时钟精度的确定方法。V=1 时,VS/VU 模式读取 time 返回 htimedelta 与实际 time 值之和。
U/虚拟化环境的读取权限受 mcounteren、scounteren 和 hcounteren 的 TM 位控制。

读这个 CSR 时先看什么

  • - time 是 Zicntr 的只读 64 位计数器的低 XLEN 位视图;RV32 使用 timeh 读取位 63:32。
  • - time 每个实时时钟 tick 加一;执行环境应提供 tick 周期和时钟精度的确定方法。V=1 时,VS/VU 模式读取 time 返回 htimedelta 与实际 time 值之和。
  • - 在实现 S 模式的特权架构中,U 模式读取需 mcounteren 和 scounteren 的 TM 位均置位;若未实现 S 模式,则由 mcounteren 控制 U 模式访问。V=1 时还受 mcounteren 和 hcounteren 控制;VU 模式还需 scounteren。

写入前的风险检查

  • - time 是只读 CSR;写入只读 CSR 会触发非法指令异常。

放回真实流程里理解

1

读取 time 的低 XLEN 位。

2

RV32 上与 timeh 配合读取 64 位值。

3

结合执行环境的计数定义、速率和访问控制解释结果。