《微机原理A》 第十七讲:中断系统 主讲老师:王克义
《微机原理A》 第十七讲:中断系统 主讲老师:王克义
本讲主要内容 中断及中断处理的基本概念 80X86实模式中断系统
本讲主要内容 • 中断及中断处理的基本概念 • 80x86实模式中断系统
公 171基本概念 中断的定义 在程序运行时,系统外部、内部或现行程序本身 若出现紧急事件,处理器必须立即强行中止现行 程序的运行,改变机器的工作状态并启动相应的 程序来处理这些事件,然后再恢复原来的程序运 行,这一过程称为中断
17.1 基本概念 1. 中断的定义 • 在程序运行时,系统外部、内部或现行程序本身 若出现紧急事件,处理器必须立即强行中止现行 程序的运行,改变机器的工作状态并启动相应的 程序来处理这些事件,然后再恢复原来的程序运 行,这一过程称为中断
公 2.中断响应和处理过程 ·CPU在执行每条指令的适当时刻,检测中断请求 信号 若发现中断请求信号有效,对于可屏蔽中断还必 须CPU开放中断,则在下一机器周期进入中断响 应周期。 进入中断响应周期后,中断响应和处理过程如下: (1)关中断 CPU在响应中断时,发出中断响应信号NTA,同时内 部自动地关中断,以禁止接受其他的中断请求。 (2)保存断点 把断点处的指令指针P值和CS值压入堆栈,以使中断 处理完后能正确地返回主程序断点
• CPU在执行每条指令的适当时刻,检测中断请求 信号。 • 若发现中断请求信号有效,对于可屏蔽中断还必 须CPU开放中断,则在下一机器周期进入中断响 应周期。 • 进入中断响应周期后,中断响应和处理过程如下: (1) 关中断 CPU在响应中断时,发出中断响应信号INTA,同时内 部自动地关中断,以禁止接受其他的中断请求。 (2) 保存断点 把断点处的指令指针IP值和CS值压入堆栈,以使中断 处理完后能正确地返回主程序断点。 2. 中断响应和处理过程
公 (3)识别中断源 ■CPU要对中断请求进行处理,必须找到相应的中断服务 程序的入口地址,这就是中断的识别 (4)保护现场 ■为了不使中断服务程序的运行影响主程序的状态,必 须把断点处有关寄存器(指在中断服务程序中要使用的 寄存器)的内容以及标志寄存器的状态压入堆栈保护 (5)执行中断服务程序 ■在执行中断服务程序中,可在适当时刻重新开放中 断,以便允许响应较高优先级的中断 (6)恢复现场并返回 ■即把中断服务程序执行前压入堆栈的现场信息弹回原 寄存器,然后执行中断返回指令,从而返回主程序继 续运彳
(3)识别中断源 CPU要对中断请求进行处理,必须找到相应的中断服务 程序的入口地址,这就是中断的识别。 (4) 保护现场 为了不使中断服务程序的运行影响主程序的状态,必 须把断点处有关寄存器(指在中断服务程序中要使用的 寄存器)的内容以及标志寄存器的状态压入堆栈保护。 (5)执行中断服务程序 在执行中断服务程序中,可在适当时刻重新开放中 断,以便允许响应较高优先级的中断。 (6) 恢复现场并返回 即把中断服务程序执行前压入堆栈的现场信息弹回原 寄存器,然后执行中断返回指令,从而返回主程序继 续运行
公 在上述中断响应及处理的6项操作中,前3项是中 断响应过程,一般由中断系统硬件负责完成 后3项是中断处理过程,通常是由用户或系统程序 设计者编制的中断处理程序(软件)负责完成。 针对一个具体的系统或机型,中断服务程序设计 者应该清楚该系统在中断响应时,中断响应硬件 完成了哪些操作(如程序状态字PSW是否已被压入 堆栈),还需中断处理软件(中断服务程序)完 成哪些操作
• 在上述中断响应及处理的6项操作中,前3项是中 断响应过程,一般由中断系统硬件负责完成; • 后3项是中断处理过程,通常是由用户或系统程序 设计者编制的中断处理程序(软件)负责完成。 • 针对一个具体的系统或机型,中断服务程序设计 者应该清楚该系统在中断响应时,中断响应硬件 完成了哪些操作(如程序状态字PSW是否已被压入 堆栈),还需中断处理软件(中断服务程序)完 成哪些操作
公 3.中断优先级和中断嵌套 (1)中断优先级 在实际系统中,多个中断请求可能同时出现,但 中断系统只能按一定的次序来响应和处理,这时 CPU必须确定服务的次序,即根据中断源的重要 性和实时性,照顾到操作系统处理的方便,对中 断源的响应次序进行确定。 这个响应次序称为中断优先级( priority)
3. 中断优先级和中断嵌套 (1) 中断优先级 • 在实际系统中,多个中断请求可能同时出现,但 中断系统只能按一定的次序来响应和处理,这时 CPU必须确定服务的次序,即根据中断源的重要 性和实时性,照顾到操作系统处理的方便,对中 断源的响应次序进行确定。 • 这个响应次序称为中断优先级(priority)
公 ·通常,可用软件查询法确定中断优先级,也可用 硬件组成中断优先级编码电路来实现 现代PC机中多采用可编程中断控制器(如8259A) 来处理中断优先级问题 1)软件查寻法确定中断优先级 釆用软件查询法解决中断优先级只需要少量硬件 电路。如图17.1所示,系统中有多种外部设备, 将这些设备的中断请求信号相“或”,从而产生 个总的中断请求信号|NTR发给CPU
• 通常,可用软件查询法确定中断优先级,也可用 硬件组成中断优先级编码电路来实现。 • 现代PC机中多采用可编程中断控制器(如8259A) 来处理中断优先级问题。 1) 软件查寻法确定中断优先级 • 采用软件查询法解决中断优先级只需要少量硬件 电路。如图17.1所示,系统中有多种外部设备, 将这些设备的中断请求信号相“或”,从而产生一 个总的中断请求信号INTR发给CPU
公 图17.1软件查询接口电路 NTR 电磁磁cR带留盘印 纸保键打 源盘带显示 输输 故障 输入 入出
图17.1 软件查询接口电路 磁 盘 磁 带 CRT 显示 键盘输 入 打 印 输 出 电 源 故 障 纸 带 输 入 保 留 INTR
公 当CPU响应中断请求进入中断处理程序后,必须 在中断处理程序的开始部分安排一段带优先级的 查询程序,查询的先后顺序就体现了不同设备的 中断优先级,即先查的设备具有较高的优先级, 后查的设备具有较低的优先级。 般来说总是先查讯速度较快或是实时性较高的 设备 软件查询的流程如图172所示
z 当CPU响应中断请求进入中断处理程序后,必须 在中断处理程序的开始部分安排一段带优先级的 查询程序,查询的先后顺序就体现了不同设备的 中断优先级,即先查的设备具有较高的优先级, 后查的设备具有较低的优先级。 z 一般来说总是先查讯速度较快或是实时性较高的 设备。 z 软件查询的流程如图17.2所示