CSR 位字段

RISC-V cycle CSR 寄存器详解

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

cycle 是 Zicntr 定义的用户级只读 CSR,读取 处理器核心从过去任意起点开始执行的时钟周期数 的低 XLEN 位。Zicntr 依赖 Zicsr;该底层计数器为 64 位,RV32 使用 cycleh 读取位 63:32。

字段映射

按 bit 字段理解 cycle

1 个关键字段
XLEN-1:0

VALUE

只读

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

这个字段控制什么

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

常见取值

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

官方依据与检索要点

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

Zicntr 依赖 Zicsr;在 RV32 上,配套高半 CSR 读取位 63:32。
cycle 的速率取决于实现和运行环境,执行环境应提供确定当前速率的方法。
U/虚拟化环境的读取权限受 mcounteren、scounteren 和 hcounteren 的 CY 位控制。

读这个 CSR 时先看什么

  • - cycle 是 Zicntr 的只读 64 位计数器的低 XLEN 位视图;RV32 使用 cycleh 读取位 63:32。
  • - cycle 的速率取决于实现和运行环境,执行环境应提供确定当前速率的方法。
  • - 在实现 S 模式的特权架构中,U 模式读取需 mcounteren 和 scounteren 的 CY 位均置位;若未实现 S 模式,则由 mcounteren 控制 U 模式访问。V=1 时还受 mcounteren 和 hcounteren 控制;VU 模式还需 scounteren。

写入前的风险检查

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

放回真实流程里理解

1

读取 cycle 的低 XLEN 位。

2

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

3

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