中断及中断控制器课件.ppt

上传人(卖家):晟晟文业 文档编号:4745525 上传时间:2023-01-06 格式:PPT 页数:22 大小:158.50KB
下载 相关 举报
中断及中断控制器课件.ppt_第1页
第1页 / 共22页
中断及中断控制器课件.ppt_第2页
第2页 / 共22页
中断及中断控制器课件.ppt_第3页
第3页 / 共22页
中断及中断控制器课件.ppt_第4页
第4页 / 共22页
中断及中断控制器课件.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、6.2 中断及中断控制器中断及中断控制器82596.2.1 中断的基本概念中断的基本概念(1)什么是中断)什么是中断 在日常生活中在日常生活中,中断现象俯拾皆是,中断现象俯拾皆是在计算机系统中在计算机系统中,一个,一个CPU要处理若干事务:数据采集,运算,显示,处理突发事件,通要处理若干事务:数据采集,运算,显示,处理突发事件,通信,打印信,打印.。这就要求采用中断技术,才能作到。这就要求采用中断技术,才能作到面面俱到面面俱到而又不误而又不误突发事件突发事件的处理时机。的处理时机。计算机用于测控领域,必然涉及中断。在计算机中,中断的含义很狭窄:计算机用于测控领域,必然涉及中断。在计算机中,中断

2、的含义很狭窄:从程序执行的角度看:从程序执行的角度看:CPU正在执行的当前程序被外设打断,转而执行为外设服务的所谓正在执行的当前程序被外设打断,转而执行为外设服务的所谓“中断服务程序中断服务程序”(ISR:Interrupt Service Routine)。)。当当前前程程序序外 设外 设 n的中断的中断服务程服务程序序 CPU INTR中断请求触发器中断请求触发器 外设外设n 当前程序当前程序 :CALL SUBR :子程序子程序*外设随机诱发外设随机诱发中断,转入中中断,转入中断服务程序断服务程序*硬、软件配合硬、软件配合寻找入口地址寻找入口地址*由由CALL指令引起转入子程序指令引起转

3、入子程序*预知何时转入子程序预知何时转入子程序*入口地址直接从入口地址直接从CALL中取得中取得SUBR 从数据传送的角度看从数据传送的角度看,是,是主机主机与与外设外设交换信息的一种方式。交换信息的一种方式。(2)中断源中断源与与中断向量表中断向量表中断源中断源:能够引发能够引发CPU中断的信息源中断的信息源,称为称为中断源。中断源。80X86微机系统中最多允许有微机系统中最多允许有256种中种中断源,其中中断源断源,其中中断源类型编号类型编号为为0255。*中断系统中断系统:为了实现中断而配置的硬件和软件构成的系统:为了实现中断而配置的硬件和软件构成的系统1)内中断(软中断)内中断(软中断

4、)指指CPU执行某些特殊操作或由执行某些特殊操作或由INT指令引起的中断,通常分为以下三类:指令引起的中断,通常分为以下三类:执行执行INT n 指令引起的中断,指令引起的中断,n=00FFH CPU中断中断 在执行指令的过程中出现某些需要处理的异常而产生的中断。在执行指令的过程中出现某些需要处理的异常而产生的中断。使用调试程序中的单步或断点设置操作引起的中断使用调试程序中的单步或断点设置操作引起的中断.INT n 指令指令 (n=0255)如如 INT 21H执行该指令后,转入系统的执行该指令后,转入系统的“21H型中断服务程序型中断服务程序”,执行由,执行由AH指定的子程序指定的子程序 2

5、1H型中断服务程序型中断服务程序 根据根据AH内内容进入某一子程序容进入某一子程序AH=01 AH=02 AH=09 AH=0AAH=4C01H功能功能02H功能功能09H功能功能0AH功能功能4CH功能功能:CPU中断中断 此类中断使用了此类中断使用了0、1、3、4、6、7中断号中断号*1 除法错中断除法错中断(属于(属于CPU的的0型中断)型中断)除数为除数为0或或商超过商超过有关寄存器所能表示的有关寄存器所能表示的最大值最大值,产生除法错中断,产生除法错中断*2 INTO指令指令 溢出中断指令溢出中断指令(属于(属于CPU的的4型中断)型中断)例:例:ADD AL,BL INTO ;当;

6、当OF=0,不引起,不引起INTO操作操作;当;当OF=1时,引起溢出中断时,引起溢出中断*BOUND指令(数组边界检查指令)中断指令(数组边界检查指令)中断检查带符号的数组下标是在检查带符号的数组下标是在由包含上界和下界的存储器块所限定的范围内由包含上界和下界的存储器块所限定的范围内。下标超出范围。下标超出范围就产生中断。就产生中断。单步调试中断单步调试中断 当标志寄存器中的当标志寄存器中的自陷位自陷位TF=1且且中断允许标志位中断允许标志位IF=1时,时,CPU处于单步工作方式。处于单步工作方式。在在TD环境下,环境下,F7,F8键作为设定功能键,在这两个键的处理程序中,键作为设定功能键,

7、在这两个键的处理程序中,使使TF=1,IF=1。在在TD环境中,可以在程序中需要的位置处插入环境中,可以在程序中需要的位置处插入INT 3指令,执行到该指令处,指令,执行到该指令处,CPU中断中断正常执行过程,便于调试程序。正常执行过程,便于调试程序。在用户程序中执行在用户程序中执行INT 3无意义。无意义。(2)外中断(重点)外中断(重点)由外设向由外设向CPU发出中断请求。发出中断请求。1)非屏蔽中断)非屏蔽中断 NMI(Non-Maskable Interrupt)不受不受CPU内部内部中断允许标志中断允许标志IF的屏蔽的屏蔽 2)可屏蔽中断)可屏蔽中断 INTR(maskable IN

8、TRrupt)受受CPU内部内部中断允许标志中断允许标志IF的屏蔽的屏蔽 STI指令,指令,使使IF=1,CPU可以接受可以接受来自来自INTR引脚上的中断请求。引脚上的中断请求。术语:术语:开中断开中断/中断允许中断允许/允中允中 CLI指令,指令,使使IF=0,CPU不接受不接受来自来自INTR引脚上的中断请求。引脚上的中断请求。术语:术语:关中断关中断/中断禁止中断禁止 CPU NMI INTR当当NMI上有正跳变信号时,即产生一个上有正跳变信号时,即产生一个内部引导的内部引导的类型类型2中断。中断。NMI引脚上的中引脚上的中断请求不受断请求不受IF标志的控制,标志的控制,IF不能屏蔽不

9、能屏蔽NMI引引脚上的中断请求。脚上的中断请求。IF=1,CPU响应响应INTR引脚上的中断请求引脚上的中断请求;IF=0,CPU不响应不响应INTR引脚上的中断请求引脚上的中断请求通过通过INTR引脚传递到引脚传递到CPU的可屏蔽中断,中的可屏蔽中断,中断类型号可以为断类型号可以为6255*中断系统中断系统:为了实现中断而配置的硬件和软件构成的系统:为了实现中断而配置的硬件和软件构成的系统(3)中断向量表)中断向量表(P166)(注意内容的展开)(注意内容的展开)1)中断源的)中断源的识别识别中断技术的核心问题中断技术的核心问题 寻找中断服务程序的入口地址寻找中断服务程序的入口地址*识别中断

10、源和寻找入口地址的识别中断源和寻找入口地址的复杂性复杂性 在在INTR引脚上可以连接引脚上可以连接250(6255)个中断源。)个中断源。CPUINTR08号中断源号中断源09号中断源号中断源0A号中断源号中断源FF号中断源号中断源08号中断号中断服务程序服务程序09号中断号中断服务程序服务程序0A号中断号中断服务程序服务程序FF号中断号中断服务程序服务程序ADDR00ADDR01ADDR02:ADDR08:ADDRFF中断向量表中断向量表中中 断断控制器控制器中断向量表是中断向量表是中断源与中断中断源与中断服务程序之间服务程序之间的的“纽带纽带”。ADDR08ADDR09ADDR02ADDR

11、FF:任何任何一个一个中断源发出中断请求,中断源发出中断请求,CPU必须能够迅速、准确地找到为该中必须能够迅速、准确地找到为该中断源服务的中断服务程序的入口地址,断源服务的中断服务程序的入口地址,怎么找怎么找?从应用角度看,很多中间过程并不需要用户通过编程来完成,因而可以大大从应用角度看,很多中间过程并不需要用户通过编程来完成,因而可以大大简化中断索引过程的叙述。简化中断索引过程的叙述。这里,分四步这里,分四步(#1、#2、#3、#4)来叙述来叙述识别中断源识别中断源和和寻找入口地址寻找入口地址的问题。的问题。#1 识别中断源及寻找入口地址概要识别中断源及寻找入口地址概要从编程角度看,为了从编

12、程角度看,为了识别中断源及寻找入口地址,识别中断源及寻找入口地址,外设与外设与CPU必须进行如图所必须进行如图所示的交流。示的交流。CPU向外设索取的中断向量号,实际上就是索取中断源的向外设索取的中断向量号,实际上就是索取中断源的“身份证号身份证号”标标识符。识符。CPU取得它,也就识别了中断源。取得它,也就识别了中断源。当当CPU取得取得中断向量号以后,又如何取得相应中断源的中断服务程序的入口地中断向量号以后,又如何取得相应中断源的中断服务程序的入口地址呢?必须借助于址呢?必须借助于中断向量表中断向量表。*识别中断源及寻找入口地址识别中断源及寻找入口地址概要概要示意示意INTRCPU 中断源

13、中断源N*1请求中断当前程序,请求中断当前程序,执行执行N的中断服务程序的中断服务程序*2接受中断请求。但不知道入口地址,接受中断请求。但不知道入口地址,请送标识码(中断向量号)!请送标识码(中断向量号)!*3标识码是标识码是N,请按规则,在中断向量表,请按规则,在中断向量表中获取中获取N的中断服务程序的入口地址。的中断服务程序的入口地址。什么是什么是“中断向量表中断向量表”,如何根据,如何根据标识码标识码从中查找从中查找入口地址入口地址?#2 中断向量表中断向量表 中断类型号中断类型号:即中断源:即中断源标识码标识码或或中断向量号中断向量号。80X86给每一个中断源分给每一个中断源分配了一个

14、序号,从配了一个序号,从00FFH,共,共256个。个。在在80X86中是中是通过中断类型号通过中断类型号来来识别识别中断源的。中断源的。中断向量中断向量:中断服务程序的入口地址:中断服务程序的入口地址 中断向量表中断向量表:*80X86在内存在内存0段段0000H03FFH这这1K字节中建立了一个中断向量表,用以存放字节中建立了一个中断向量表,用以存放256个个中断向量。中断向量。*各中断源的中断服务程序入口地址在内存中断向量表中有各中断源的中断服务程序入口地址在内存中断向量表中有固定固定的存放位置的存放位置以以中断中断类型号类型号X4开始的开始的连续四个字节单元连续四个字节单元中,中,前两

15、个字节存放中断服务程序的入口地址的前两个字节存放中断服务程序的入口地址的偏移量偏移量,后两个字节存放中断服务程序的入口地址的后两个字节存放中断服务程序的入口地址的段基址。段基址。对于对于0号中断而言,号中断而言,设设其中断服务程序的入口地址是:其中断服务程序的入口地址是:UUVV:XXYY(其物理地址是其物理地址是 UUVV0+0XXYY),则有:),则有:00000000:0000 :0000 YYYY00000000:0001:0001 XX XX00000000:0002 :0002 VVVV00000000:0003 :0003 UUUU对于对于0aH号中断而言,号中断而言,设设其中断

16、服务程序的入口地址是:其中断服务程序的入口地址是:0100:0051(其物理地址是其物理地址是 01000+0051),则有:),则有:0a x 4=0028H中断中断向量向量00000000:0028 :0028 515100000000:0029:0029 00 0000000000:002A :002A 000000000000:002B :002B 0101中断向量地址中断向量地址中断向量地址中断向量地址:存放中断向量(入口地址)的存储单元的地址,:存放中断向量(入口地址)的存储单元的地址,即即N 4、N 4+1、N 4+2、N 4+3#3 如何根据如何根据中断类型号中断类型号在在中断

17、向量表中断向量表中中寻找寻找入口地址?入口地址?CPU在响应中断时,根据中断在响应中断时,根据中断类型类型号,从号,从中断向量表中断向量表中取出高两个字节(入口地址的中取出高两个字节(入口地址的段基址)装入代码段寄存器段基址)装入代码段寄存器CS;低两个字节(入口地址的偏移量)装入指令指针寄存器;低两个字节(入口地址的偏移量)装入指令指针寄存器IP中,转入中断服务程序。中,转入中断服务程序。中断响应时,中断响应时,CPU将有以下操作:将有以下操作:把把F寄存器、寄存器、IP寄存器和寄存器和CS寄存器的内容压入堆栈寄存器的内容压入堆栈;把把 0:N 4和和0:N 4+1 的内容送入的内容送入IP

18、;把把 0:N 4+2和和0:N 4+3的内容送入的内容送入CS;跳到跳到CS:IP去执行中断服务程序。去执行中断服务程序。设某中断源的中断类型号为设某中断源的中断类型号为0aH,执行中断时,执行中断时,CPU根据根据0aH,得到,得到28H,从从0028H,0029H,002AH和和002BH这四个单元中取得这四个单元中取得 0100:0051 并把前两个并把前两个字节字节0051H送入送入IP,后两个字节,后两个字节0100H送入送入CS。物理地址为。物理地址为 01000H+00051H=01051H,即中断服务程序的人口地址。,即中断服务程序的人口地址。谁提供谁提供中断类型号中断类型号

19、?当中断是由指令当中断是由指令INT n 产生时,产生时,指令指令直接提供中断向量;直接提供中断向量;当中断是由当中断是由外设外设产生时,应由该产生时,应由该外设外设向向CPU提供中断向量提供中断向量YYXXVVUU 51000001 CPU 响应中断响应中断,则把中断服,则把中断服务程序入口地务程序入口地址送入址送入IP和和CS0000:0000H IP IP CSCS IP CS中断号中断号N N4 内存地址内存地址 中断向量表中断向量表 00H 00H 0000:0004H 01H 04H 0AH 28H 0000:0028H 0000:0029H 0000:002AH 0000:002

20、BH N N4 FFH 03FCH 0000:03FCH 0000:03FFH CPU根据中断源提供的根据中断源提供的标识码(即:中断类型号,中断向量号)标识码(即:中断类型号,中断向量号)即可在中断向量表中找到该即可在中断向量表中找到该中断源的中断服务程序入口地址。中断源的中断服务程序入口地址。在硬中断中,在硬中断中,向向CPU提供提供中断源识别码中断源识别码是中断技术的关键。是中断技术的关键。需要硬软件的有机配合。需要硬软件的有机配合。8259A可编程中断控制器用于管理中断,向可编程中断控制器用于管理中断,向CPU提供标识码(中断向量号、中断类型号)提供标识码(中断向量号、中断类型号)路线

21、图:路线图:中断源中断源提供提供类型号类型号N得到得到中断向量地址中断向量地址4N、4N+1、4N+2、4N+3在在中断向量表中取这中断向量表中取这4个单元的内容送个单元的内容送CS和和IP进入进入中断服务程序。中断服务程序。例:设某外设的识别码为例:设某外设的识别码为0aH,其中断服务程序的入口地址为:其中断服务程序的入口地址为:0100:0051H CPU0a x 4=0028H INTR IACK0aH外设外设0aH外外 设设中 断中 断服 务服 务程程 序序51000001中断向量表中断向量表DB用户编用户编程填写程填写用 户用 户编编 写写 中断发生之前,中断发生之前,用户用户先要完

22、成的先要完成的两项两项工作工作问题问题:在多个中断源的情况下,在多个中断源的情况下,如何把优先级最高的中断源的识如何把优先级最高的中断源的识别码送给别码送给CPU?怎么送?怎么送?0000:0028 0000:00290000:002A0000:002B0a0100:0051 形象地给出了与中断操作有关的主要过程。设中断类型号为形象地给出了与中断操作有关的主要过程。设中断类型号为0aH,其中断服务,其中断服务程序的入口地址已经填入到中断向量表中正确的位置。程序的入口地址已经填入到中断向量表中正确的位置。中断主要过程:中断主要过程:0aH号中断源:情况紧急,请求号中断源:情况紧急,请求CPU执行

23、执行0aH号中断服务程序。号中断服务程序。CPU:现在正好没有比你更紧迫的事件要处理,可以接受你的请求,但苦于不知道你是谁,:现在正好没有比你更紧迫的事件要处理,可以接受你的请求,但苦于不知道你是谁,请送你的请送你的“身份证号身份证号”中断类型号。中断类型号。0aH号中断源:我是号中断源:我是0aH号中断源。号中断源。CPU严格按严格按“游戏规则游戏规则”,根据,根据0aH,得到,得到28H,从,从0028H,0029H,002AH和和002BH这四个这四个单单 元中取得元中取得 0100:0051 并把低两个字节并把低两个字节0051H送入送入IP,高两个字节,高两个字节0100H送入送入C

24、S。绝对地址为。绝对地址为 01000H+00051H=01051H,即中断服务程序的人口地址。,即中断服务程序的人口地址。CPU执行执行0aH号中断服务程序。号中断服务程序。#4中断向量的填入中断向量的填入谁来填写中断向量表中各项的内容?谁来填写中断向量表中各项的内容?开机后,开机后,BIOS立即把有关的中断向量填入中断向量表中(包括立即把有关的中断向量填入中断向量表中(包括07FH一段),当一段),当BIOS引导引导DOS到内存后,到内存后,DOS进行初始化时,又把某些中断向量填入中断向量表,还要进行初始化时,又把某些中断向量填入中断向量表,还要修改由修改由BIOS装入的某些中断向量。装入

25、的某些中断向量。用户的中断服务程序的入口地址应当用户的中断服务程序的入口地址应当由用户自己填写由用户自己填写,中断向量表的设置中断向量表的设置 当当CPU响应中断时,将从中断向量表中读取中断向量送给响应中断时,将从中断向量表中读取中断向量送给CS和和IP,转去执行中断服,转去执行中断服务程序。因此,用户必须务程序。因此,用户必须事先事先将中断服务程序的入口地址填入系统的中断向量表中,填将中断服务程序的入口地址填入系统的中断向量表中,填入的方法有入的方法有两种两种。假设中断类型号为假设中断类型号为32H,断服务程序入口处的标号为,断服务程序入口处的标号为INTSUB。用程序设置中断向量表用程序设

26、置中断向量表、CLI CLI ;关中断;关中断MOVMOVAXAX,0 0 ;0 0段段MOVMOVESES,AXAXMOVMOVDIDI,4 4*32H32H ;0 0段内偏移地址段内偏移地址LEALEAAXAX,INTSUB INTSUB ;取入口地址的偏移地址;取入口地址的偏移地址CLD CLD ;增址;增址STOSWSTOSW ;把入口地址的偏移地址存入;把入口地址的偏移地址存入 ;00000000:4 4*32 32 字单元字单元MOVMOVAXAX,SEG INTSUB SEG INTSUB ;取入口地址的段基址;取入口地址的段基址STOSWSTOSW ;把入口地址的段基址存入;把

27、入口地址的段基址存入 ;00000000:4 4*32+2 32+2 字单元字单元、DI+2 432+2DI 432+0用用CLD(Clear DF)设置设置DF=0,增址修改增址修改AL偏移偏移AH地址地址AL段基段基AH址址用用STOSWSTOSW指令指令完成填写中断完成填写中断向量向量中断向量表中断向量表 ES 0段段 P167 或:或:、MOVMOVAXAX,0 0 ;0 0段段MOVMOVDSDS,AXAXMOVMOVBXBX,4 4*32H32H ;0 0段内偏移地址段内偏移地址MOVMOVAXAX,OFFSET INTSUB OFFSET INTSUB ;取入口地址的偏移地址;取

28、入口地址的偏移地址MOV BXMOV BX,AX AX ;把入口地址的偏移地址存入;把入口地址的偏移地址存入 ;00000000:4 4*32 32 字单元字单元MOVMOVAXAX,SEG INTSUB SEG INTSUB ;取入口地址的段基址;取入口地址的段基址MOV BX+2MOV BX+2,AX AX ;把入口地址的段基址存入;把入口地址的段基址存入 ;00000000:4 4*32+2 32+2 字单元字单元DI+2 432+2DI 432+0AL偏移偏移AH地址地址AL段基段基AH址址中断向量表中断向量表 DS 0段段 用用DOS功能设置中断向量表(功能设置中断向量表(07/10

29、/31 007)*中断向量的中断向量的置换置换在中断向量表中,系统占有若干单元存放系统自己的中断服务程序的入口地址(中断向量在中断向量表中,系统占有若干单元存放系统自己的中断服务程序的入口地址(中断向量),微机在初始化过程中,把这些中断向量填写到中断向量表中。),微机在初始化过程中,把这些中断向量填写到中断向量表中。例如:系统例如:系统辅串口辅串口占用中断向量号占用中断向量号0BH,系统初始化时,已经在,系统初始化时,已经在0B40B4+3(002CH002FH)这)这4个单元中填写了中断向量;如果用户也想占用个单元中填写了中断向量;如果用户也想占用0BH,也必须把用户的中断,也必须把用户的中

30、断向量写入这向量写入这4个单元。为了不破坏系统设置的中断向量,需要进行中断置换:个单元。为了不破坏系统设置的中断向量,需要进行中断置换:IP LIP HCS L CS H用户中断用户中断服务程序服务程序CS:IP 原中断向量原中断向量 堆栈堆栈 CS:IP1 2 30000:002CH0000:002DH0000:002EH0000:002FH*借用借用DOS 35H号功能,号功能,读出读出原中断向量;原中断向量;*借用借用DOS 25H号功能,把号功能,把用户中断向量用户中断向量写入写入中断向量表中断向量表 把把原中断向量原中断向量填回填回中断向量表中断向量表1)35H号功能:号功能:入口:

31、入口:AL:中断向量号:中断向量号 出口:出口:ES存放中断向量的存放中断向量的段基址段基址;BX存放存放偏移地址偏移地址2)25H号功能号功能 入口:入口:AL:中断向量号;:中断向量号;DS:中断向量的段基址;:中断向量的段基址;DX:偏移地址:偏移地址例:设某外设的中断服务程序的入口地址为例:设某外设的中断服务程序的入口地址为INTP,中断类型号为,中断类型号为0BH。如果把如果把0BH改变改变0AH,程序中相关部分应当怎么处理?,程序中相关部分应当怎么处理?(3)中断描述符表)中断描述符表在在DOS环境下,环境下,486工作在实模式时,中断服务程序的工作在实模式时,中断服务程序的属性比

32、较单一属性比较单一,仅用中断向量表明,仅用中断向量表明它的它的位置位置就可以了。就可以了。:MOV AX,350BH ;AH=35H,AL=0BHINT 21H ;从向量表中读出原中断向量;从向量表中读出原中断向量 ;存人;存人ES:BPUSH ES ;把原中断向量压入堆栈;把原中断向量压入堆栈PUSH BX MOV AX,SEG INTP;取用户中断向量段基址;取用户中断向量段基址MOV DS,AX ;25H功能要求基地址送入功能要求基地址送入DSMOV DX,OFFSET INTP;用户中断向量偏移;用户中断向量偏移地址地址MOV AX,250BH ;AH=25H,AL=0BHINT 21

33、H ;把用户中断服务程序入口地址;把用户中断服务程序入口地址 :;填入中断向量表;填入中断向量表POP DX ;取原中断向量取原中断向量POP DSMOV AX,250BH INT 21H ;把原中断向量填回中断向量表;把原中断向量填回中断向量表在多任务操作系统(如:在多任务操作系统(如:UNIX,WINDOWS)管理下,)管理下,486工作在保护模式的时候,工作在保护模式的时候,情况要复杂得多,仅仅用中断向量已经不能全面描述中断服务程序的情况要复杂得多,仅仅用中断向量已经不能全面描述中断服务程序的全部属性全部属性了,而必了,而必须:须:用用中断描述符中断描述符来描述中断服务程序;来描述中断服

34、务程序;用用中断描述符表中断描述符表来代替来代替中断向量表中断向量表。暂时了解到此暂时了解到此(4)中断优先级中断优先级与与中断嵌套中断嵌套 CPU在执行中断服务程序的过程中,被高优先级的中断源中断,又转入另一个中断服务在执行中断服务程序的过程中,被高优先级的中断源中断,又转入另一个中断服务程序的操作,叫程序的操作,叫中断嵌套中断嵌套。P170 图图6.12 嵌套原则嵌套原则:高高级可以级可以中断低中断低级,低级不能中断高级或同级。级,低级不能中断高级或同级。P170 表表6.1 给出了在给出了在80486中,各中,各大类大类中断源的优先级。中断源的优先级。(5)CPU响应中断的条件响应中断的

35、条件 并非一产生中断请求,并非一产生中断请求,CPU就响应中断。就响应中断。CPU响应中断是有一定条件的,其中以响应中断是有一定条件的,其中以可屏蔽可屏蔽 中断中断的条件最多,以此为例,讲解的条件最多,以此为例,讲解CPU响应响应可屏蔽中可屏蔽中断的条件断的条件 中断源中断源发出发出中断请求信号中断请求信号 中断请求信号中断请求信号不被屏蔽不被屏蔽(请求能够被(请求能够被传递传递到到INTR引脚),在引脚),在I/O口这一级增加一道口这一级增加一道 关口,增加控制的灵活性。关口,增加控制的灵活性。CPU愿意愿意接受中断(接受中断(CPU开中断,允许中断)开中断,允许中断)没有更高优先级的中断没

36、有更高优先级的中断 执行完当前指令执行完当前指令 通过一张简图,解释以上几点的含义。通过一张简图,解释以上几点的含义。CPU INTR与与门门中断屏蔽(允许)触发器中断屏蔽(允许)触发器控制端口控制端口中断请求触发器中断请求触发器外外设设请求信请求信号是否号是否被屏蔽被屏蔽中断是中断是否打开否打开保存请求信号直到被响应为止保存请求信号直到被响应为止有了以上基础,再看有了以上基础,再看P164 图图6.8。*主干:外设数据主干:外设数据数据端口数据端口DBCPU*为配合中断操作,增加若干环节。中断允许触发器为配合中断操作,增加若干环节。中断允许触发器受控于受控于CPU,CPU对控制信号端口发出控

37、制对控制信号端口发出控制信号,可以把允许触发器信号,可以把允许触发器置置1(打开与门,请求信号能够被传送到(打开与门,请求信号能够被传送到INTR)或)或置置0(屏蔽请求信号)(屏蔽请求信号)。输输 入入装装 置置锁存器锁存器数据数据D&三三 态态缓冲器缓冲器RQM/IOW/RM/IOW/R5VPdPs地址地址译码译码数据口数据口地址总线地址总线(A7-A0)控制口控制口CPU数据总线数据总线选通选通信号信号&DQ数据线数据线D0位位INTR中断请求中断请求触发器触发器I/O环节的环节的中断允许触发器中断允许触发器(6)中断处理过程)中断处理过程内中断内中断处理过程处理过程 CPU自动产生中断

38、类型号自动产生中断类型号n;(SP)-2(SP),标志寄存器),标志寄存器F内容入栈;内容入栈;(SP)-2(SP),当前代码段),当前代码段CS内容入栈;内容入栈;(SP)-2(SP),当前指令计数器),当前指令计数器IP内容入栈;内容入栈;禁止外部中断禁止外部中断IF0,禁止单步中断,禁止单步中断TF0;从中断向量表中取中断服务程序入口地址(从中断向量表中取中断服务程序入口地址(4*N单元的字内容送单元的字内容送IP,4*N2单元里的内容送单元里的内容送CS););转中断服务程序;转中断服务程序;执行中断服务程序并返回,弹出执行中断服务程序并返回,弹出IP,CS,F,返回断点。,返回断点。

39、外中断(外中断(INTRINTR)执行过程)执行过程 CPU CPU发出发出两个中断响应信号两个中断响应信号INTAINTA,第二个第二个INTAINTA时,时,CPUCPU从当前数据总线上取中断类型码从当前数据总线上取中断类型码N N(通通常由管理常由管理INTRINTR的控制器的控制器8259A8259A提供提供););(SPSP)-2-2(SPSP),标志寄存器),标志寄存器F F内容入栈;内容入栈;(SPSP)-2-2(SPSP),当前代码段),当前代码段CSCS内容入栈;内容入栈;(SPSP)-2-2(SPSP),当前指令计数器),当前指令计数器IPIP内容入栈;内容入栈;禁止外部中

40、断禁止外部中断IFIF0 0,禁止单步中断,禁止单步中断TFTF0 0;首先从中断向量表中取首先从中断向量表中取4 4*N N单元的字内容送单元的字内容送IPIP,然后再取,然后再取4 4*N N2 2单元里的内容送单元里的内容送CSCS;转中断服务程序;转中断服务程序;执行中断服务程序并返回,弹出执行中断服务程序并返回,弹出IP,CS,F,返回断点,继续执行。,返回断点,继续执行。(7)多中断源的中断识别)多中断源的中断识别与与优先级管理优先级管理 1)中断优先级编码电路)中断优先级编码电路CPU未响应任何中断未响应任何中断,优先级无效,此处,优先级无效,此处为为“1”;否则为;否则为“0”

41、新中断源的优先新中断源的优先级别高于级别高于CPU正正在响应的中断源在响应的中断源,此处为,此处为“1”存放存放CPU正在响应的中正在响应的中断源的中断优先级编码断源的中断优先级编码多个中断源同时多个中断源同时发出中断请求时发出中断请求时,只输出级别最,只输出级别最高的中断源的优高的中断源的优先级编码。先级编码。任何一个中断请求,均可通过任何一个中断请求,均可通过或或门送到门送到CPUCPU未响应任何中断时,中断请未响应任何中断时,中断请求信号通过求信号通过与与2传递给传递给CPU;CPU正在为某一中断源服务时,正在为某一中断源服务时,由比较器决定是否通过由比较器决定是否通过与与1把新把新中断

42、请求传递给中断请求传递给CPU。新中断源新中断源 CPU正在响应的正在响应的优先级编码优先级编码 中断源的编码中断源的编码 A2 A1 A0 B2 B1 B0 1 1 1 高高 1 1 1 1 1 0 1 1 0 :0 0 0 低低 0 0 0AB,表明,表明“新新”级别高于级别高于“正正”2)菊花链排队电路菊花链排队电路 IACK Interrupt ACKnowledge,中断应答(中断响应)。该信号启动锁存器,把中断,中断应答(中断响应)。该信号启动锁存器,把中断源状态送入源状态送入CPU,作为查询依据。,作为查询依据。*每一个中断源每一个中断源配有配有一个中断向量发生器,当一个中断向量发生器,当IACK信号送达某中断源时,如果该中断源信号送达某中断源时,如果该中断源没有没有发发出中断请求信号,则把出中断请求信号,则把IACK信号信号传递传递到后面。到后面。如果该中断源发出了中断请求信号,则在如果该中断源发出了中断请求信号,则在IACK信号作用下,该中断源通过中断向量发生器把自信号作用下,该中断源通过中断向量发生器把自己的识别码(己的识别码(中断向量号中断向量号)回送)回送CPU。CPU根据识别码,在中断向量表中,找到相应的中断服务程根据识别码,在中断向量表中,找到相应的中断服务程序的入口地址。序的入口地址。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(中断及中断控制器课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|