ZERO
只读 0Smcntrpmf 定义的保留 0 位。
这个字段控制什么
- - Smcntrpmf 定义的保留 0 位。
常见取值
minstretcfg.ZERO
该位对应 Sscofpmf OF 位置,但 Smcntrpmf 规定 cycle/instret 配置中的该位为只读 0;软件不应写 1 或依赖 1 的含义。
minstretcfg(地址 0x322)是 Smcntrpmf 定义的 Machine 计数器配置 CSR,用于按特权模式过滤 minstret 的计数。
Smcntrpmf 定义的保留 0 位。
该位对应 Sscofpmf OF 位置,但 Smcntrpmf 规定 cycle/instret 配置中的该位为只读 0;软件不应写 1 或依赖 1 的含义。
置 1 时抑制 M 模式下的事件计数。
M 模式 中的instret 计数不由该位禁止;仍受其他计数器配置和实现支持情况约束。
M 模式 中的instret 计数被禁止。
置 1 时抑制 S/HS 模式下的事件计数;若相关特权模式未实现,该位为只读 0。
S/HS 模式 中的instret 计数不由该位禁止;仍受其他计数器配置和实现支持情况约束。
S/HS 模式 中的instret 计数被禁止;若相关特权模式未实现,该位为只读零。
置 1 时抑制 U 模式下的事件计数;若 U 模式未实现,该位为只读 0。
U 模式 中的instret 计数不由该位禁止;仍受其他计数器配置和实现支持情况约束。
U 模式 中的instret 计数被禁止;若相关特权模式未实现,该位为只读零。
置 1 时抑制 VS 模式下的事件计数;若 Hypervisor/VS 模式未实现,该位为只读 0。
VS 模式 中的instret 计数不由该位禁止;仍受其他计数器配置和实现支持情况约束。
VS 模式 中的instret 计数被禁止;若相关特权模式未实现,该位为只读零。
置 1 时抑制 VU 模式下的事件计数;若 VU 模式未实现,该位为只读 0。
VU 模式 中的instret 计数不由该位禁止;仍受其他计数器配置和实现支持情况约束。
VU 模式 中的instret 计数被禁止;若相关特权模式未实现,该位为只读零。
保留写保留值字段;写其他字段时保留这些位原值,读取时不要依赖其值。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
minstretcfg 是 64 位 Machine 计数器配置 CSR。Smcntrpmf 用它控制指令退役计数器在不同特权模式下是否继续计数;在 RV32 上通过 minstretcfgh 访问高 32 位。
确认 hart 实现 Smcntrpmf,并读取 minstretcfg 的当前过滤状态。
按 profiling 目标设置 MINH/SINH/UINH/VSINH/VUINH,只过滤不希望计入的特权模式。
结合 minstret 的读数和低特权级访问控制 CSR 验证计数行为。
不能。官方 CSR 表把 minstretcfg 列为 Machine 模式 CSR;低特权级软件只有在相关标准扩展提供明确的委托或权限机制时才可访问对应状态;权限不足或未实现时直接 CSR 访问会触发非法指令异常。
mcountinhibit 按计数器整体抑制递增;minstretcfg 按特权模式过滤指令退役计数器的计数。两者都不等同于低特权级访问授权。