SXLEN-1:0
VALUE
WARL异常特定值。stval 是 WARL,必须能保存所有有效虚拟地址以及 0;若实现返回非法指令位,还必须能保存小于 2^N 的所有值,其中 N 为 SXLEN 和 ILEN 的较小值。
这个字段控制什么
- - 异常特定值。stval 是 WARL,必须能保存所有有效虚拟地址以及 0;若实现返回非法指令位,还必须能保存小于 2^N 的所有值,其中 N 为 SXLEN 和 ILEN 的较小值。
常见取值
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
监管者陷阱值寄存器,保存 S 模式陷阱的异常特定信息,或在不提供信息时为 0。
异常特定值。stval 是 WARL,必须能保存所有有效虚拟地址以及 0;若实现返回非法指令位,还必须能保存小于 2^N 的所有值,其中 N 为 SXLEN 和 ILEN 的较小值。
这个字段更适合结合上下文字段解释,不用按固定枚举背诵。
stval 是异常附加信息寄存器,不是每个陷阱都有有意义的值。它是 WARL;为 0 可能表示没有提供信息,也可能是对应异常的有效值。
进入 S 模式陷阱后先读取 scause 判断异常类型。
若异常类型定义了 stval 信息,再读取 stval 作为虚拟地址或非法指令位等附加信息。
若 stval 为 0,不要仅凭该值排除异常;0 可能表示合法值,也可能表示实现未提供信息。
不能只看 CSR 名称判断。官方 CSR 地址编码和表格给出最低访问特权级;stval 当前记录为 S模式,权限不足或未实现时访问会触发非法指令异常。
不一定。规范允许某些异常写 0,且 0 也可能是有效值。必须结合 scause 的异常类型解释 stval。