CY
WARL控制较低特权级读取 cycle。
这个字段控制什么
- - 控制较低特权级读取 cycle。
常见取值
较低特权级访问相应 CSR 会触发非法指令异常。
允许下一个已实现的较低特权级访问相应 CSR;若存在 hcounteren 等更低层控制,还需满足那些控制。
机器计数器使能寄存器;控制硬件性能监控计数器对下一个较低特权级的可访问性。
控制较低特权级读取 cycle。
较低特权级访问相应 CSR 会触发非法指令异常。
允许下一个已实现的较低特权级访问相应 CSR;若存在 hcounteren 等更低层控制,还需满足那些控制。
控制较低特权级读取 time;清零时也阻止低于 M 的特权级访问 stimecmp 或 vstimecmp。
较低特权级访问相应 CSR 会触发非法指令异常。
允许下一个已实现的较低特权级访问相应 CSR;若存在 hcounteren 等更低层控制,还需满足那些控制。
控制较低特权级读取 instret。
较低特权级访问相应 CSR 会触发非法指令异常。
允许下一个已实现的较低特权级访问相应 CSR;若存在 hcounteren 等更低层控制,还需满足那些控制。
控制较低特权级读取 hpmcounter3 到 hpmcounter31。
较低特权级访问相应 CSR 会触发非法指令异常。
允许下一个已实现的较低特权级访问相应 CSR;若存在 hcounteren 等更低层控制,还需满足那些控制。
mcounteren 是 32 位寄存器;在 RV64 CSR 视图中,上 32 位没有计数器使能位并读为零。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
mcounteren 决定较低特权级是否能读取 cycle、time、instret 和 hpmcounter3-31。它不影响计数器是否继续递增。
决定下一个较低特权级可以读取哪些计数器。
只设置相应 WARL 使能位,并读回确认实现接受的值。
在适用场景下,还需结合 hcounteren/scounteren 或 state-enable 控制作为更低层门控。
不能只看 CSR 名称判断。官方 CSR 地址编码和表格给出最低访问特权级;mcounteren 当前记录为 M模式,权限不足或未实现时访问会触发非法指令异常。
不要把整个 CSR 当普通整数覆盖。应只修改目标字段,保留未修改位,并按规范处理 WARL、WLRL、WPRI 或保留字段。