1 / 17

第七章 中断控制技术

第七章 中断控制技术. 理解中断的基本概念 中断、中断源的含义,中断的类型 实现中断的意义,中断系统的功能 CPU 响应中断的条件 了解 8086 CPU 的中断机构. 7-1 为什么要用中断. 快速的 CPU 与慢速的外设接口时采用中断方式。 实现中断的好处 实现同步操作: 有了中断, CPU 和外设可以同时工作。 实现实时处理: 在需要时,各个现场可以随时发出中断请求,要求 CPU 作出及时处理。 实现故障处理: 在计算机运行时,突然的故障可以通过中断系统自行处理,而不必停机或报告工作人员。. 7-2 中断源.

Download Presentation

第七章 中断控制技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 中断控制技术 • 理解中断的基本概念 • 中断、中断源的含义,中断的类型 • 实现中断的意义,中断系统的功能 • CPU响应中断的条件 • 了解8086 CPU的中断机构

  2. 7-1 为什么要用中断 • 快速的CPU与慢速的外设接口时采用中断方式。 • 实现中断的好处 • 实现同步操作:有了中断,CPU和外设可以同时工作。 • 实现实时处理:在需要时,各个现场可以随时发出中断请求,要求CPU作出及时处理。 • 实现故障处理:在计算机运行时,突然的故障可以通过中断系统自行处理,而不必停机或报告工作人员。

  3. 7-2 中断源 • 引起中断的原因或能发出中断申请的来源称为中断源。 • 一般的输入/输出设备(如键盘、打印机) • 数据通道中断源(磁盘、磁带等) • 实时时钟 • 故障源(如电源掉电) • 为调试程序而设置的中断源(断点和单步执行)

  4. 7-3 8086的中断方式 • 硬件中断:由外设的请求所引起的 • 可屏蔽中断 (INTR) :CPU是否响应取决于标志位IF的状态 • IF=1,CPU处在开中断状态,可以响应; IF=0, CPU处在关中断状态,不响应。 • STI可以开中断,CLI关中断。 • 非屏蔽中断 (NMI) : CPU在当前指令执行完,就可以响应。 • 软件中断:由指令的执行所引起的 DIV(IDIV)指令、INT指令、INTO指令、 单步执行(标志位TF=1)等。 • 8086中断优先权次序: 软件中断、NMI、INTR、单步执行最低。

  5. 软件中断(内部) 硬件中断(外部) 非屏蔽中断请求 INT n 指令 2 NMI 中 断 逻 辑 INTR 中 断 控 制 器 8259A 可屏蔽中断请求 3 4 1 0 断点 中断 溢出 中断 单步 中断 除数为 0 中断 OF=1 TF=1 INTO

  6. 7-4 中断系统的功能 • 实现中断及返回: • 有中断申请时,CPU能决定是否响应这个中断请求; • CPU在当前指令执行完,响应中断: • 中断类型码 N 乘4,作为中断向量表的指针 • 保护现场:SPSP-2,标志寄存器入栈 • 关中断: 清IF、TF(屏蔽新的INTR中断和单步中断) • 保留断点: SPSP-2,当前CS入栈; SPSP-2,当前IP入栈; • 从中断向量表中取出中断服务程序的入口地址 N*4地址的第一个字送IP; N*4地址的第二个字送CS; • 从新地址取指令执行(即执行中断服务程序) • 中断处理完,恢复断点和现场,开中断返回。

  7. 7-4 中断系统的功能 • 能实现中断优先权排队 • 通常,在系统中有多个中断源,会出现两个或更多个中断源同时提出中断请求的情况,这样就必须要设计者事先根据轻重缓急,给每个中断源确定一个中断级别------优先权排队。 • 当多个中断源同时发出中断申请时,CPU能找到优先级别最高的中断源,响应它的中断请求;在优先级别最高的中断源处理完之后,再响应级别较低的中断源。 • 能实现中断嵌套 当CPU在进行中断处理时,能同时处理其他的中断源的请求。 • 请求的中断源级别比当前的级别高时,中断嵌套。 • 请求的中断源级别与当前的级别相同或低时,暂不响应,等当前的中断处理完后,再响应。

  8. 7-5 CPU响应中断的条件 • 每个中断源设置一个中断请求触发器: 通过它,中断源的的中断请求信号一直保持到CPU响应后,然后清除中断请求信号。 • 接口电路中设置中断屏蔽触发器: 当此触发器为“1”时,外设的中断请求才能被送出至CPU • 中断是开放的: CPU内部有一个中断允许触发器,当其为“1”时,CPU才能响应中断,当其为“0”时,即使INTR线上有中断请求,CPU也不响应,即称为“可屏蔽中断” • CPU在当前指令结束后响应中断(CPU在当前指令的最后一个T状态检测到INTR信号,进入中断响应周期)

  9. 7-6 中断优先权的实现 • 用软件查询法确定中断优先权 • 将8个中断源的中断请求触发器组合起来,将各个外设的中断请求信号相“或”后,作为INTR信号 • 当CPU响应中断后,把中断请求触发器的状态读入CPU • 逐位检测(查询)它们的状态,若有中断请求就转到相应的中断服务程序。 • 查询的次序就是优先权的次序(最先查询的,优先级最高) • 查询程序的两种实现方法 • 屏蔽法:用 TEST指令,JNZ 实现跳转 • 移位法:用 RCL 指令 ,JC 实现跳转

  10. 7-6 中断优先权的实现 • 屏蔽法:用 TEST指令,JNZ 实现跳转 IN AL,20H;读入中断请求触发器的状态 TEST AL,80H;检查最高位D7是否有请求 JNZ SERVE7;有,转至第7号设备的服务程序 TEST AL,40H;否,检查次高位D6是否有请求 JNZ SERVE6;有,转至第6号设备的服务程序 TEST AL,20H;否,检查下一位D5是否有请求 JNZ SERVE5;有,转至第5号设备的服务程序 ……

  11. 7-6 中断优先权的实现 • 移位法:用 RCL指令,JC实现跳转 XOR AL,AL;AL清0 IN AL,20H;读入中断请求触发器的状态 RCL AL,1;检查最高位D7是否有请求 JC SERVE7;有,转至第7号设备的服务程序 RCL AL,1;否,检查次高位D6是否有请求 JC SERVE6;有,转至第6号设备的服务程序 RCL AL,1;否,检查下一位D5是否有请求 JC SERVE5;有,转至第5号设备的服务程序 ……

  12. 8 到 3 优先权 编码组 中断请求输入 A>B比较器 去CPU 的 INTR A2 A1 A0 1 优先权 寄存器 B2 B1 B0 CPU数据总线 2 优先权失效 7-6 中断优先权的实现 • 硬件实现优先权排队的电路

  13. 7-7 中断类型和中断向量 • 8086微处理器有处理256种中断的能力。 • 每个中断分配给一个中断类型码,在0~255之间,用 N(一字节代码)表示,也称为256种类型中断。 • 中断向量与中断向量表 • 中断向量:每种中断处理程序的入口地址称为中断向量。每个中断向量占4字节,前两个字节为IP,后两个为CS。 • 中断向量表:8086将内存最低地址的1K字节单元作为中断向量表(地址00000H ~ 003FFH),存放256种中断处理程序的入口地址。 • 中断向量表的分配如下图所示:

  14. 03FFH CS Type FF 用 户 可用 IP 03FCH : 0083H CS Type 40 IP 0080H 007FH CS Type 3F 系统保 留 IP 007CH : CS Type 5 IP 0014H 0013H CS Type 4 溢出中断 IP 0010H 000FH CS 8086 专 用 5 个 Type 3 断点中断 IP 000CH 000FH CS Type 2 非屏蔽中断 IP 0008H 0007H CS Type 1 单步中断 IP 0004H 0003H CS Type 0 除数为 0 IP 0000H

  15. 7-7 中断类型和中断向量 例1:8086内存的前1K字节建立了一个中断向量表,可以容纳多少个中断向量?如果有中断向量表指针是004CH,假设由该指针起的4个内存单元中顺序存放着59H,ECH,00H,F0H,中断服务程序的入口地址是多少? 答:1、可以容纳256个中断向量。 2、 IP = 0EC59H ,CS = 0F000H 中断服务程序的入口地址为 PA = CS ×10H + IP = FEC59H

  16. 7-7 中断类型和中断向量 例2:若某中断源的中断类型是24H,对应该中断源的中断向量表入口地址是什么? 若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位? 答:1、对应该中断源的中断向量表入口地址为: 0段的0090H地址(24H*4=90H) 2、其中断服务程序入口地址为4FE24H , 则在向量表中定位情况: (0090H)=24H (0091H)=00H (0092H)=E0H (0093H)=4FH

  17. 7-7 中断类型和中断向量 注意: 8086对不同的中断源的响应和处理的过程,主要区别在于获取相应类型码的方式不相同。 在取得中断类型码后的处理过程是一样的。 • INTR中断,在第2个中断响应周期的T4状态前沿,采样数据线获得中断类型码。 • NMI的中断,内部自动产生中断类型码为2。 • 软件中断,中断类型码也是自动生成的。

More Related