CSR 位字段

RISC-V mtopei CSR 寄存器详解

地址 0x35C特权级 Machine 模式访问 机器模式读写 / MXLENMachine AIA、定时器与间接中断 CSR

AIA 机器级顶层外部中断 CSR,仅在实现 IMSIC 时存在。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 mtopei

4 个关键字段
MXLEN-1:27

Reserved

只读 0

AIA 规定 *topei 返回值中其他位为 0。

这个字段控制什么

  • - AIA 规定 *topei 返回值中其他位为 0。

常见取值

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

26:16

Interrupt identity

机器模式读写

读取时报告 IMSIC 机器级中断文件中当前最高优先级 pending-and-enabled 外部中断的 minor identity;写入 mtopei 时以当前可读值中的该 identity 清除对应 pending 位。

这个字段控制什么

  • - 读取时报告 IMSIC 机器级中断文件中当前最高优先级 pending-and-enabled 外部中断的 minor identity;写入 mtopei 时以当前可读值中的该 identity 清除对应 pending 位。

常见取值

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

15:11

Reserved

只读 0

AIA 规定 *topei 返回值中其他位为 0。

这个字段控制什么

  • - AIA 规定 *topei 返回值中其他位为 0。

常见取值

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

10:0

Interrupt priority

机器模式读写

读取时返回与 interrupt identity 相同的外部中断优先级编码;读取为 0 表示当前没有可由 mtopei 报告的中断。

这个字段控制什么

  • - 读取时返回与 interrupt identity 相同的外部中断优先级编码;读取为 0 表示当前没有可由 mtopei 报告的中断。

常见取值

mtopei report value
0无可报告外部中断

读取 mtopei 返回 0 表示没有 pending-and-enabled 外部中断,或 eithreshold 非 0 且没有低于阈值的 pending-and-enabled 外部中断;写入 0 值状态没有效果。

官方依据与检索要点

AIA 机器级顶层外部中断 CSR,仅在实现 IMSIC 时存在。

官方 AIA 表列出 mtopei 的地址 0x35C、访问类 机器模式读写、宽度 MXLEN。
mtopei 只在实现 IMSIC 时存在。
页面避免使用旧模板中的泛化 trap/debug 文案。

读这个 CSR 时先看什么

  • - 按官方 AIA CSR 表核对 mtopei 的地址、访问类和宽度。
  • - mtopei 仅在实现 IMSIC 时存在;未实现时访问不能假定成功。

写入前的风险检查

  • - 写入 mtopei 时写入值会被忽略;当前可读值中的 interrupt identity 决定清除哪个 pending 位。
  • - 通常应使用同一条 CSR 指令同时读写 mtopei,以知道被 claim 的中断。

放回真实流程里理解

1

确认 hart 实现 AIA,并且实现 IMSIC 机器级中断文件。

2

读取 mtopei 后按 AIA 对 top external interrupt 的定义解释。

3

通过读写同一条 CSR 指令 claim 当前报告的外部中断;当 mtopei 为 0 时写入无效果。

常见问题

mtopei 是标准 AIA CSR 吗?

是,本页按官方 AIA CSR 表列出的地址、访问类和宽度解释。

mtopei 的未列出位可以自由写吗?

不可以。AIA 规定写入值被忽略,claim 由当前可读值中的 interrupt identity 决定;其他返回位为 0。