31:0
CTR_STATUS
读写/硬件更新包含 WRPTR 和 FROZEN 等 CTR status 字段;未定义位为 WPRI。具体字段位置按 Smctr 图表解释。
这个字段控制什么
- - 包含 WRPTR 和 FROZEN 等 CTR status 字段;未定义位为 WPRI。具体字段位置按 Smctr 图表解释。
sctrstatus(0x14F)是 32 位 Supervisor CTR status CSR,保存 CTR 写指针和冻结等状态,并在 CTR active 时由硬件更新。
包含 WRPTR 和 FROZEN 等 CTR status 字段;未定义位为 WPRI。具体字段位置按 Smctr 图表解释。
sctrstatus 是 CTR buffer 的运行状态入口。它会被硬件更新,因此写入时比普通配置 CSR 更容易破坏正在记录的状态。
在读取 CTR entries 前读取 sctrstatus,确定 WRPTR/FROZEN 等 buffer 状态。
修改 sctrstatus 前先让 CTR inactive,避免覆盖硬件正在更新的状态。
保存恢复 CTR 时先恢复 sctrstatus,再恢复具体 CTR entry state。
因为 CTR active 时硬件可能同时更新 WRPTR/FROZEN 等状态,多指令 RMW 可能覆盖硬件更新。