中断工作是一个软硬件协调工作的过程,整个工作过程可分为四个子过程来理解:
1、中断请求
中断请求泛指中断源为了请求CPU暂停正在执行的某个程序,而转去执行中断源请求执行的某个程序,所发出的中断请求信号。也可以特指加到CPU的INTR和NMI引脚的请求信号。
读者需要注意的是:内部中断源的请求总是在CPU内部建立相应请求标志,用户可以不去理睬它。外部的非可屏蔽中断请求可以通过NMI引脚加入CPU,也比较简单。需要特别处理的主要是可屏蔽中断源的请求,这是因为外部可屏蔽中断源常常有许多个,它们只能通过CPU的INTR一个引脚输入,这就出现了以下问题:
(1)如何保证不同外部中断源采用不同的中断请求信号(电平不同或边缘不同)均能与INTR端的电平要求匹配。
(2)当多个中断源同时提出中断请求时,如何保证让优先级最高的请求,优先获得服务。
(3)如何保证当某一中断请求被响应后能及时地除掉INTR端的相应请求信号(不管中断源的请求信号是否解除)。
(4)如何解决在中断中又响应中断。
为了解决以上四个问题,必须将中断源的中断请求信号经过一个中断控制器处理,由中断控制器再去控制INTR引脚。本章第三节将要介绍的8259就是完成这一功能的专用中断控制器芯片。
2、中断承认
3、中断响应
4、断点恢复与返回
这是在中断服务程序结束前完成的 *** 作。首先用程序指令从栈中d出前面保护起来的寄存器内容, 执行RET指令时,硬件将自动断点保护阶段保护的内容d至CS、IP和FLAG。
1(CPU在指令执行每条指令最后一个T状态时,采样INTR信号)
若INTR=1,中断允许标志IF又为1。
(则CPU在结束当前指令周期后,相应中断请求,转去执行中断处理程序。)
2中断向量表:
位置:8088系统内存中最低端1K字节
内容:按中断类型号从小到大的顺序存储对应的中断向量,总共存储256个
(中断向量:中断服务程序入口地址的偏移量与段基值,一个中断向量占4字节)
3中断响应周期由两个连续的响应周期组成,在每个响应周期的T2至T4状态开始,从INTA'向外设接口发负脉冲。
在第一个响应周期,使AD7~AD0浮空。
在第二个响应周期,外设接口收到INTA'后,立即往数据总线AD7~AD0上送出一个中断类型码,CPU读入后,根据中断向量表找到该设备的处理程序的入口地址,转入中断处理。
对非屏蔽中断NMI而言,其请求信号为一上升沿触发信号,并要求维持两个时钟周期的高电平。与INTR大致类似,不同点:
1)NMI中断请求,CPU不需看IF是否为1,均要求响应(非屏蔽,不能由软件加以屏蔽)
2)CPU响应NMI时,不需从外设读中断向量,而是按规定对应中断向量表中的中断类型2,即直接从0000:0008H开始的4各单元中读取NMI中断服务程序的入口地址
中断由异步的外部事件引起。外部事件及中断响应与正在执行的指令不存在关系。80386有两根引脚INTR和NMI接受外部中断请求信号,INTR接受可屏蔽中断请求。在80386中,标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。 处理器必须接受和处理来自NMI的中断请求。在80386系统中,处理器在响应NMI的中断向量号固定为2。为了避免不可屏蔽中断的嵌套,当接受到一个NMI中断请求时,处理器自动屏蔽所有的NMI的中断请求,直到执行中断指令IRET后才重新开放NMI中断请求,所以,NMI处理程序应以IRET指令结束
1(CPU在指令执行每条指令最后一个T状态时,采样INTR信号)
若INTR=1,中断允许标志IF又为1。
(则CPU在结束当前指令周期后,相应中断请求,转去执行中断处理程序。)
2中断向量表:
位置:8088系统内存中最低端1K字节
内容:按中断类型号从小到大的顺序存储对应的中断向量,总共存储256个
(中断向量:中断服务程序入口地址的偏移量与段基值,一个中断向量占4字节)
3中断响应周期由两个连续的响应周期组成,在每个响应周期的T2至T4状态开始,从INTA'向外设接口发负脉冲。
在第一个响应周期,使AD7~AD0浮空。
在第二个响应周期,外设接口收到INTA'后,立即往数据总线AD7~AD0上送出一个中断类型码,CPU读入后,根据中断向量表找到该设备的处理程序的入口地址,转入中断处理。
对非屏蔽中断NMI而言,其请求信号为一上升沿触发信号,并要求维持两个时钟周期的高电平。与INTR大致类似,不同点:
1)NMI中断请求,CPU不需看IF是否为1,均要求响应(非屏蔽,不能由软件加以屏蔽)
2)CPU响应NMI时,不需从外设读中断向量,而是按规定对应中断向量表中的中断类型2,即直接从0000:0008H开始的4各单元中读取NMI中断服务程序的入口地址
以上就是关于中断响应的处理过程全部的内容,包括:中断响应的处理过程、微机原理、可屏蔽中断与非屏蔽中断的区别各有什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)