引起中断的各种因素
1.人为设置的中断
2.程序性事故:溢出,除法非法,操作码不能识别
3.硬件故障
4.I/O设备
5.外部事件,键盘ESC退出
中断系统需要解决的问题
(1)各中断源怎么向CPU提出中断请求
(2)多个中断源同时提出了中断请求,怎么办
(3)CPU在什么条件,什么时间,以什么方式响应中断
(4)如何保护现场(就是中断结束后,要返回到原来的中断的地方,需要保存原来中断的地方继续向下执行)
(5)如何寻找入口地址(要执行中断程序,需要有一个入口地址)
(6)如何恢复现场,如何返回br> (7)如果在处理中断的过程又出现中断怎么办br> 我们采用软件+硬件的方式来实现的
中断请求标记和中断判优逻辑
1.中断请求标记 INTR
一个请求源,一个INTR中断请求标记触发器
多个INTR,就组成了中断请求标记寄存器
2.中断判优逻辑
哪一种中断源的优先级最高,就先响应哪一个中断请求
(1)硬件操作 (排队器)
a。将排队器分散在各个中断源的接口电路中 链式排队器
b。集中在CPU的内部
用硬件的方式:
终端服务器入口地址的查找
1.硬件向量法
中断响应
1.响应中断的条件
也就是说,如果这个时候CPU正在响应中断,如果这个时候又有中断请求了,CPU可以响应吗,明显是不能的,所以这个时候就要出现响应中断请求的条件
允许中断触发器 EINT=1时,表明可以响应中断
2.响应中断的时间
是不是在任何时间都可以响应中断呢明显是不可以的,比如在指令的执行期间
一般是在指令执行完毕之后,才可以响应中断请求
指令周期结束之后,由CPU发出查询信
保存现场和恢复现场
多重中断
如果在执行中断的过程中,出现了更重要的,需要及时处理的新事件,怎么办br> 那么,中断是要被打断的:
实现多重中断的条件
要允许CPU在执行某个中断服务程序时,响应新的中断请求
(1)提前设置开中断指令(需要允许中断EINT打开)
是不是任何一个新的中断服务请求都能打断当前的中断程序br> (2)优先级别高的中断源才能中断优先级别低的中断源
3.屏蔽技术
(1)屏蔽触发器的作用
就是使得某一个中断源无法向CPU发出中断服务请求,也不能参加中断优先排队器的排队
(3)屏蔽技术可以改变中断处理的优先等级
响应优先级 不可改变
处理优先级 可以改变 通过重新设置屏蔽字
也就是说,我们可以让优先级高的不能进入优先排队器中进行响应
4.多重中断的断点保护
(1)断点进栈 中断隐指令完成
(2)断点存入“0”地址 中断隐指令完成
但是,如果每个断点都保存在“0”地址的话,那么之前的保存的断点就会被冲掉,那么怎么存入断点呢br>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!