设已向cpu申请中断,但cpu不予以响应,请问答其中的原因
发布网友
发布时间:2022-04-21 14:03
我来回答
共2个回答
懂视网
时间:2022-04-21 18:24
提出中断请求后,cpu不予响应的状态称为中断屏蔽。中断屏蔽是指在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分的中断仍能得到响应。
中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理的事件,使得cpu暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。中断由异步的外部事件引起。外部事件及中断响应与正在执行的指令不存在关系。中断屏蔽的实现方法主要有两种:第一种中断屏蔽方法是每级中断源设置一个中断屏蔽位。第二种中断屏蔽方法是改变处理机优先级。
热心网友
时间:2022-04-21 15:32
1.中断源如何向CPU表达中断请求
一般是设置中断请求触发器,在需要CPU服务时,将中断请求触发器置位,其1端或0端输出的跳变作为中断请求信号。显然中断源可以随时提出中断请求。
2.中断请求何种情况下才可能得到CPU响应
一个中断请求在同时具备下列两个条件时,才有可能得到CPU响应:
①该中断源未被屏蔽;
②该中断请求在当前所有中断请求中级别最高。
3.CPU何时响应中断
CPU在同时满足下列两个条件时,响应中断:
①IF=1(对非屏蔽中断,没有此项要求);
②现行指令执行完。
CPU在每一个指令周期的最后一个总线周期的最后一个时钟周期的开始采样中断请求输入线,若有中断请求,则下一步不进入取指令周期,而进入中断响应周期,如图5.1所示。对于8086系列CPU,中断响应周期为两个。
之所以把一条指令执行完作为响应中断的条件,是因为中断响应周期以及中断服务程序要占用CPU资源。如果在执行一条指令的中间响应中断,则指令的当前状态既不能保存也无法加以恢复。与此相对比,DMA操作是在DMA控制器的作用下进行的,不占用CPU资源,所以在一条指令执行中间、当前总线周期结束即可进入DMA周期。