本帖最后由 zsy-s 于 2025-1-14 22:27 编辑
异常
类型分为中断,异常,系统调用。
中断在任何时候都可以发生,与cpu运行的指令无关,是异步的。
异常分为 指令访问异常和数据访问异常。可以更改cpu的运行模式,属于同步异常。
系统调用,属于逻辑上主动触发的异常。
返回地址
中断:当前没执行的指令或者下一条指令
异常:触发异常的指令
系统调用:下一条指令
中断
中断分类有 处理器间中断 定时器中断 外设中断 调试中断。
中断处理过程
由cpu保存上下文,跳转到中断处理函数,恢复中断上下文,返回中断现场的下一条指令执行。
中断委派
中断优先级
m模式优先级高于s模式,多个s模式的优先级由PLIC管理。
PLIC
主要用来管理外部中断。支持7级中断优先级
中断寄存器
使能寄存器:用于关闭或者开启中断源
待定寄存器
中断优先级阈值寄存器:用于屏幕中断
请求/完成寄存器:用于判断中断源 和 中断完成标记