您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 计算机硬件第7章_中断
第7章中断技术2020/1/1727.1中断技术概述7.1.1中断的基本概念什么是中断?在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。2020/1/173中断服务程序1中断服务程序2非预料事件1CPU执行流程非预料事件22020/1/1747.1.2中断的分类中断源——引起中断的原因,或发出中断申请的来源。中断源有:·I/O设备,如键盘,CRT,打印机等·数据通道,如磁盘,磁带等(1)外部中断源·实时钟,如外部所需的定时电路等·故障源,如掉电等·CPU指令执行产生的异常(2)内部中断源·执行INT软件中断指令2020/1/175中断分类(1)内部中断——软件中断,由CPU执行软中断指令引起。INT21H(2)外部中断——硬件中断,由外部中断源向CPU提出中断请求而引起。外部中断又可分为:·可屏蔽中断(INTR引脚)——可以在CPU内部被屏蔽,CPU可以控制这种中断响应或不被响应。·不可屏蔽中断(NMI引脚)——中断请求不能在CPU的内部被屏蔽掉,它一经提出CPU必须响应.2020/1/1761000:150H、、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、PUSHAX、、、、IRETCPU在执行此指令时,某中断源发申请中断;CPU在执行完该指令后,转去执行中断子程地址1000:150H为断点断点概念:2020/1/1771000:150H、、、、、、、、、、MOVAH,01INT21HCMPAL,0Dh、、、、、、、、、、PUSHAX、、、、IRET用指令调用中断程序软件中断用指令调用中断程序2020/1/1787.1.3中断系统的功能中断系统的功能中断处理•发现中断请求•响应中断请求•ISP•中断返回中断控制•中断排优•中断嵌套2020/1/1797.1.4中断处理过程基本过程:中断请求,中断判优,中断响应,中断处理,中断返回。P273,图7.4主程序入口服务程序中断请求返回2020/1/1710CPU响应中断的条件①外设通过接口向CPU发出请求信号:在接口中设置中断请求触发器中断屏蔽触发器②CPU开中断——请求信号才能进入CPU当前指令执行完方可响应STI→IF=1两种情况下,CPU自动关中断:①上电和复位后②响应中断后必须在进入中断服务程序后用指令开中断,以实现中断嵌套。2020/1/1711CPU响应中断(中断处理)过程①自动关中断IF=0,TF=0②自动保护断点(入栈),转中断服务子程序服务③保护现场(入栈)子程④中断服务在适当处开中断序⑤恢复现场(出栈)⑥中断返回——自动恢复FR,断点开/关中断指令:STI→IF=1,允许中断CLI→IF=0,禁止响应2020/1/1712中断源的识别7.1.5中断优先权问题1:系统有多个中断请求,CPU如何识别中断源?解答:中断查询2020/1/1713第7章:中断查询接口A0~A15锁存器INTR三态缓冲器译码8001HD0~D7中断A中断B中断C……IOR2020/1/1714中断优先权排队第7章:中断优先权(续1)问题2:有多个中断同时请求,CPU如何应对?解答1:链式优先权排队电路解答2:优先权编码电路2020/1/1715第7章:中断优先权——中断源识别和排优给每个中断源指定一个优先权,称为中断优先权中断源可能有多个,而CPU只有一条中断请求线当多个中断源同时发出中断请求时,CPU需识别中断源根据优先权排列:①同时申请,CPU响应优先权高的②高的申请可打断低的服务(中断嵌套)排优方法:(1)软件排优(2)硬件排优2020/1/1716第7章:软件排优(软件查询)-------各中断源的优先权主要由软件安排需简单的硬件电路,P275图7.6只要任一个外设有中断请求(“1”状态),INTR=1,CPU便可响应中断。在中断服务子程序中:查询程序按照优先级“高→低”顺序检测各外设状态。2020/1/1717第7章硬件排优------利用专门的硬件电路或中断控制器对各中断源的优先权进行安排1.硬件排优电路P277图7.8说明:①在链式电路中,排在链最前面的中断源优先权最高,即由其在链中的位置决定。②“高级”封闭“低级”2.专用芯片——可编程的中断控制器2020/1/1718中断嵌套第7章:中断优先权(续2)问题3:中断处理过程中,又有中断提出请求,怎么办?2020/1/17197.28086/8088中断系统7.2.18086/8088中断结构256个中断源,每个对应一个类型码00-FFH。(0~255)按中断源的不同,分类:内部中断(软件中断)外部中断(硬件中断)P278图7.92020/1/1720第7章:硬件中断8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大组态(最小组态)VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET指外部芯片通过CPU的INTR引脚或NMI引脚发出中断申请引起的中断。当INTR上有高电平信号当NMI上有上升沿信号2020/1/1721第7章:1.非屏蔽中断由NMI引脚引起的中断,称非屏蔽中断。当NMI引脚上产生上升沿信号,CPU必须响应此中断请求,即NMI引脚上的中断请求不受IF标志的控制。IF不能屏蔽NMI引脚上的中断请求。中断类型码为2。系统中只允许有一个非屏蔽中断。用于处理重大故障或紧急情况,如掉电、紧急停机。2020/1/1722第7章:2.可屏蔽中断由INTR引脚引起的中断,CPU在允许的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号INTA#,称可屏蔽中断。CPU是否响应INTR引脚上的中断请求取决于IF标志:IF=1,CPU响应INTR引脚上的中断请求IF=0,CPU不响应INTR引脚上的中断请求即当IF=0时,将INTR引脚上的中断申请屏蔽中断类型码(向量号)来自外部中断控制器通常需要配合中断控制器8259A共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据2020/1/1723第7章:中断标志IF的状态IF=0:可屏蔽中断不会被响应关中断、禁止中断、中断屏蔽系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:可屏蔽中断会被响应开中断、允许中断、中断开放执行指令STI,使IF=1执行指令IRET恢复原IF状态明确IF标志的状态是关键2020/1/1724第7章:软件中断——内部中断——指CPU执行某些特殊操作或由INT指令引起的中断①被零除操作或OF=1时执行INTO指令引起②使用DEBUG中的单步或断点设置操作引起③执行INTn指令引起例如,ROM-BIOS和DOS系统利用内部中断为程序员提供了各种功能调用2020/1/1725第7章:软件中断1.类型码0~4(1)除法出错中断——0型中断(2)单步中断——1型中断(3)溢出中断——4型中断(4)断点中断——3型中断2.指令中断——n型中断2020/1/1726第7章:⑴除法出错中断——0型中断在执行除法指令DIV或IDIV时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断例如:movbl,0idivbl;除数BL=0,产生除法错中断movax,200hmovbl,1divbl;商=200H,不能用AL表达;产生除法错中断2020/1/1727第7章:(2)单步中断——1型中断若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试DEBUG中的T命令,置TF=1通过PUSHF和POPF设置TF(P279)2020/1/1728第7章:(3)溢出中断——4型中断若溢出标志OF为1,在执行溢出中断指令INTO时,则产生一个向量号为4的内部中断,被称为溢出中断例如:movax,2000haddax,7000h;2000H+7000H=9000H,溢出:OF=1into;因为OF=1,所以产生溢出中断2020/1/1729第7章:(4)断点中断——3型中断程序中设置断点,运行到断点处,程序就转移去执行一个断点中断服务子程序。用于程序调试INT3单字节指令指令代码:11001100DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的2020/1/1730第7章:(5)指令中断——n型中断在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,称为指令中断INTn软件中断指令类型码说明:①内部中断的类型码由内部(指令或预定)提供②除单步外,不能用软件禁止(不受IF影响)③服务处理用户按排④除单步外,优先级比硬件中断高2020/1/17317.2.2中断向量表CPU响应中断后,如何转入各个中断服务处理程序?如何从中断类型码(n)转换成中断子程序的入口地址中断向量表2020/1/1732中断向量表中断向量——中断处理子程序的入口地址。最多有256个中断向量一个中断向量,4个字节前2个字节IP(偏址)后2个字节CS(段址)在内存的最低1k字节(0段的0~03FFH)区域建立一个中断向量表。2020/1/1733中断向量表中断向量表P280图7.10中断类型码的分类专用中断(00H~04H)系统使用(如PC-DOS)(05H~3FH)用户可用(40H~0FFH)类型码与中断向量所在位置的对应关系为:中断向量的地址=4×中断类型码2020/1/1734中断向量表例如,给定中断类型码为20H中断向量存放的位置为:0000H:0080H(4×20H=80H)若:在00080H~00083H存放的值分别为10H、21H、32H、45H,20H号中断所对应的中断向量即中断处理程序的入口地址为4532H:2110H。即CS=4532H,IP=2110H。2020/1/1735中断向量表例如:中断类型码17H的中断处理子程序的起始地址为:1234:5670H对应于该17H类型码的中断向量存放在0000:005CH(4×17H=5CH)开始的4个字节中。0段的005CH~005FH这4个单元中的值分别为70H、56H、34H、12H。2020/1/17367.2.3中断响应过程当中断源产生中断申请后,不论是内部中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,CPU内部硬件会自动完成下列响应中断的过程:①取中断类型号n②当前FR的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥取内存单元(0:n×4)字内容送IP取中断子程⑦取内存单元(0:n×4+2)字内容送CS入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。保存现场2020/1/1737第7章:内部中断响应过程对于专用中断——类型码,自动生成INTn指令——类型码n说明:有些中断服务程序是系统提供的,不需用户编写。内部中断特点:1.CPU不需要执行中断响应周期2.除单步外,不受IF影响3.没有随机性2020/1/1738第7章:外部中断响应过程NMI——非屏蔽中断不受IF的限制,即不能用软件禁止类型号——02H中断优先级高于INTR响应过程:有效;CPU收到NMI后,自动提供类型号2查中断向量表→转子程序注意:类型码固定专用,但中断向量和中断服务程序均由用户自定自编,不在DOS中。2020/1/1739------IF=1时,才有可能被响应响应过程:·“1”有效;——INTR线上电平触发,高电平有效·CPU收到INTR=“1”后,如IF=1,进入中断响应周期→发出响应信号INT
本文标题:计算机硬件第7章_中断
链接地址:https://www.777doc.com/doc-3127357 .html