异常和中断很难明确的界定,鄙人的理解是,异常通常指CPU内部产生的错误从而中断原程序运行的行为,中断通常既包括内部异常导致的中断原程序行为,也包括IO设备触发的中断脉冲信号经过中断仲裁输出给CPU从而中断原程序。
一、概述
内部异常:自陷:预先安排的事件,自愿中断,处理完后回到下一条指令执行
外部中断:由外部引起的事件
二、中断过程
中断过程:中断响应+中断处理
2.1 中断响应
主机检测到外部中断请求,仲裁线性程序的执行到调出中断服务程序的过程。执行一条隐指令,可能需完成依次总线操作,从总线上区中断类型号(过程:关中断=》保护断电和程序装填=》识别中断源)
2.1.1 响应条件
- CPU处于开中断状态
- 在一条指令执行结束
- 至少要有一个未被屏蔽的中断请求
2.1.2 识别中断源
- 软件办法(轮询)
根据中断请求状态,按优先级顺序来识别 - 硬件方法(向量中断)
将所有请求状态送到一个排队电路中,根据中断优先级识别最高优先级的中断请求(链式查询、独立请求)
2.2 中断处理
- 中断准备
- 中断处理
- 中断恢复
三、多重中断
如果多个中断源同时到来,就根据中断响应优先级响应。此时一个中断处理完后回到主程序,后再处理另外的中断;若处理过程中来到一个优先级更高的中断源,则嵌套执行该高中断源
动态分配:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82457.html