interrupt bit | cause 5

RISC-V 定时器中断 Trap 路由

pending interrupt -> trap entry -> handler -> return

Step 1 / 4目标: S-mode
流程本页从 U-mode 中 supervisor timer interrupt 已 pending 且允许接收开始;mtime/mtimecmp、Sstc stimecmp、SEE/SBI 等来源不在主图中建模。sepc / sret
Pending
Trap entry
Handler
xRET
当前步骤1/4

U-mode 正在运行

异步中断条件

U-mode 正在执行,supervisor timer interrupt 已 pending,且相关 interrupt trap conditions 已满足。 STIP 表示 supervisor timer interrupt pending,STIE 是 cause 5 对应的使能位;还需要当前特权/全局使能条件允许接收。 这一步只说明 trap 条件已成立;节点 1 到节点 2 的连线表示 interrupt trap taken。

STIP 可由 SEE/SBI/M-mode 软件置位,或在 Sstc 下由 stimecmp 比较产生;本页先把来源折叠为已 pending。

关键说明

Timer interrupt 容易混淆的边界

async interrupt

timer interrupt 是异步中断;EPC 保存被中断位置,不是 ECALL 式自动跳到下一条。

mideleg[5]

在 U/S 等可委托上下文中,mideleg[5] 改变 S/M trap 目标,不改变 cause 低位 5 或 interrupt bit;它不会让 M-mode trap 降级。

timer source

主图不建模 mtime/mtimecmp、Sstc stimecmp、SEE/SBI 或具体 OS tick;Sstc 下 STIP 反映比较结果也可存在延迟。

官方语义边界

本页从 U-mode 被 supervisor timer interrupt 打断,且该中断已 pending 并允许接收后开始,是简化的非虚拟化 U/S/M trap-routing 模型。官方特权架构定义 STIP/STIE、cause 5、mideleg、trap entry/return 和可选 Sstc stimecmp;其中 mideleg 只影响可委托上下文中的目标选择,不会把 M-mode trap 路由到 S-mode。Sstc 下 STIP 对 stimecmp 比较的反映可以不是即时的,软件仍需允许偶发的 spurious timer interrupt。H 扩展相关的 MPV/SPV/VS 返回状态、具体平台 timer、mtime/mtimecmp 映射、SEE/SBI/firmware、interrupt controller 与 OS tick 策略不是本页结论的一部分。