您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 计算机原理_7 中断技术
第七章中断技术1956年,美国,IBM公司IBM7049机上首先使用了中断处理技术并开始使用“中断”(interrupt)这一术语第一节概述在程序中断方式中,由外部设备主动向CPU发出请求,等候处理;在没有发出请求时,CPU和外设都可以独立进行的工作。一、采用中断技术的原因中断最初是为了提高处理器的使用效率和提高计算机的工作速度而引进的。当CPU和外设进行数据传送时,必须测试并确认外设处于准备好的状态才能够进行数据传送。在早期的计算机中,CPU和外设处于串行工作状态,CPU将处于时间不等的等待之中。快速的CPU和慢速的外设在传递数据的速度上存在很大矛盾,大大降低了CPU的工作效率。引入中断技术以后,可以使CPU和外设在大部分时间里并行工作。外设接收到CPU的命令后,按自己的控制规律执行相应操作,完成后向CPU发出中断请求,CPU暂停正在执行的程序,转为对外设进行处理,处理完后返回断点处继续执行。二、中断的定义:计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。目前的微处理器系统支持来自外设的硬件中断请求和来自系统软件指令产生的软件中断请求。中断技术可用于:保证外设和CPU同步、实时处理、故障处理等目的。断点主程序中断服务程序有中断请求对外设进行处理继续执行返回断点中断请求取决于事件的发生时间,而这个时间是随机的,因此在执行程序的过程中中断程序的插入也是随机的。这是子程序和中断处理程序的重要区别。三、中断源任何能够引发中断的事件都称为中断源。硬件中断源:输入/输出设备,系统时钟,故障源等等。软件中断源:程序中断指令,指令运行出错等。目前的微处理器系统都具有中断功能,且已经不仅局限在输入/输出处理中,而是在更多的方面其重要作用。例如:自动监视系统运行情况的故障源,BIOS和DOS操作系统为用户提供的中断调用服务程序等。当系统具有多个中断源时,有可能同时发出请求,由CPU按照重要性和急迫性(中断优先级别)择优响应。一般的处理原则是:1、不同优先级同时请求,按优先级别处理。2、低优先级中断正在处理,出现高优先级请求,转去处理高优先级请求。3、高优先级中断正在处理,出现低优先级请求,暂不响应。4、中断处理时,出现同级别请求,当前中断处理完以后再处理新的请求。四、其他的一些基本概念(一)中断请求中断源向CPU发出的中断信号。对于硬件中断源必须通过专门的电路传送给CPU;CPU也有专门的引脚接收中断请求信号。8086/8088CPU用INTR引脚和NMI引脚接收硬件中断请求信号。对于软件中断源,在CPU内部由中断指令或程序出错直接引发中断。(二)中断标志1、中断允许标志在CPU的标志寄存器中的IF标志。表示是否可以响应外设的中断请求。通常用1来表示允许。在8086/8088系统中可以用CLI和STI指令来设置IF,禁止或允许来自INTR可屏蔽中断请求引脚的中断申请。2、中断请求标志对应每个外设有一位,用来纪录外设的中断请求状态。有请求时置1,中断处理完后清0。在PC机中,用8259A来管理外设的中断请求,而在8051系列的单片机中,该标志也在CPU内部。(三)中断屏蔽有些硬件中断源的请求可以根据IF标志决定是否响应,而有些硬件中断源的请求需要一定被响应。在8086/8088系统中,INTR是可屏蔽中断请求引脚;NMI是不可屏蔽的中断请求引脚。在PC机系统中,通过8259A管理的外设中断源连在CPU的INTR引脚上。在8259A内部有8位的中断申请寄存器和8位的中断屏蔽寄存器,可以对应于8个外设的中断申请和中断屏蔽。(四)中断嵌套在CPU的处理外部中断的时候,如果有更高优先级的中断请求,再转去处理高优先级的中断。在PC机中,可以中断嵌套。(五)断点与返回地址CPU在每条指令执行的最后一个时钟周期检测中断请求,如果响应中断的话,转去执行中断处理程序,程序被中断的地方称为“断点”。断点处的指令是中断处理结束后,返回时恢复执行的第一条指令的地址称为“返回地址”。(六)中断响应1、CPU在每条指令执行的最后一个时钟周期检测中断请求,如果以下之一,CPU自动进入中断响应周期。(1)有软件中断;(2)有NMI中断信号;(3)有INTR中断信号且CPU允许响应中断。2、进入中断响应周期以后,如果是INTR,则产生INTA信号给中断源,让中断源通过数据总线的低8位送出中断类型码给CPU;如果是NMI,类型码是2;中断指令中有类型码;程序出错有默认类型码。3、标志寄存器进栈,清除TF和IF标志,返回地址的CS和IP进栈。4、形成中断服务程序入口地址,转入中断服务程序执行。每个中断的有自己的处理程序,各种微处理器形成中断服务程序入口地址的方法也不相同。(1)8086/8088系列将中断服务程序的入口地址称为中断向量。将中断向量送入CS:IP即可转入中断处理程序。在内存的000H~~3FFH的1KB空间中存有256个中断中断向量对应于256种中断类型码,称为中断向量表。在表中按:类型码x4即可得到中断向量的位置,取出4个字节的中断向量。(2)8051系列不同中断直接对应于各固定位置的指令。5、进入中断服务程序。通常由以下步骤组成:(1)保护现场,开中断;(2)中断处理;(3)关中断,恢复现场,开中断;(4)用中断返回指令(IRET)返回。(七)中断返回从堆栈中恢复断点(返回地址的CS和IP、标志寄存器)返回到主程序继续执行。(八)优先级判别常见的有软件判别法和硬件判别法。第二节中断处理电路CQD+5V0160HD0AA中断允许触发器B中断申请触发器DCQRB地址译码器INTR0162HIOWA15|A0IORINTA缓冲器缓冲器中断类型码(0FH)三态三态D7~D0数据EOC外设简化的输入设备的中断接口电路:电路分析:(1)外设准备好数据发EOC信号(负脉冲),把数据放到接口线上,同时置“1”中断申请触发器。(2)若中断允许触发器为“1”,中断开放。此时INTR为高电平,向CPU发中断申请。(3)INTR为高电平,若CPU中断开放(IF为“1”),则响应中断。在中断响应周期,INTA有效两次,读取中断类型码,清除中断申请触发器。(4)在中断服务程序中读取外设数据MOVDX,162HINAL,DX对中断允许触发器的控制:(1)设置为允许状态MOVAL,1MOVDX,160HOUTDX,AL(2)设置为禁止状态MOVAL,0MOVDX,160HOUTDX,AL通常用专门的中断优先级处理电路Intel8259A来管理若干个硬件中断源,将中断请求信号送给微处理器。例如:在PC/XT机中使用8259A管理硬件中断源,将中断请求送到8088的INTR引脚,将中断类型码送到数据总线D7~D0上。第三节8086/8088的中断结构在8086/8088系统中提供了256种中断类型的结构,用1个字节进行编码称为中断类型码;每个中断类型对应于4个字节的程序入口地址称为中断向量;256个中断向量存放在内存最开始的1KB的中断向量表中。一、中断源类型有硬件中断和软件中断两大类1、硬件中断NMI:不可屏蔽的中断请求,上升沿有效,类型码是2。INTR:可屏蔽的中断请求,高电平有效,类型码经过中断响应周期在数据总线上获得。2、软件中断(1)中断指令INTn,类型码是n。所有硬件中断服务程序也都可以用INTn调用。(2)断点中断INT3,类型码是3,该指令是单字节。(3)溢出中断指令INTO,类型码是4通常在有符号数运算之后使用,如果OF=1,则中断;OF=0,不产生中断。(4)除法溢出中断,类型码是0除法时,除数是0或结果溢出,自动产生该中断。(5)单步中断,类型码是1当TF=1时。每执行一条指令,自动引发该中断,主要用于程序调试使用。又称为陷阱中断。修改TF标志的方法:设置TF=1PUSHFPOPAXORAX,0100HPUSHAXPOPF清零TF=0PUSHFPOPAXANDAX,0FEFFHPUSHAXPOPF1514131211109876543210ODITSZAPC二、优先级的顺序1、软件中断(除单步中断外)2、NMI3、INTR4、单步中断在PC机系统中外设中断源通过8259A中断优先级管理器连接到INTR引脚,外设中断源的优先级别由8259A进行管理。第四节中断优先级管理器—8259A三、编程8259A的工作状态和操作方式,由CPU的命令而定。命令有两种每片8259A有2个片内地址A0=0和A0=1,所有的命令都是通过这两个端口来实现的。设置工作方式:初始化命令字ICW1~ICW4控制操作:操作命令字:OCW1~OCW3(一)初始化命令字例1:PC/XT机中8259A的端口地址是20H、21H,初始化序列如下:MOVAL,13HOUT20H,ALMOVAL,8OUT21H,ALMOVAL,9OUT21H,ALICW1:单片、上升沿触发、使用ICW4ICW2:中断类型码是08H~0FHICW4:有缓冲、非AEOI方式ICW1设置工作方式对A0=0的端口写入一个D4=1的数据,表示初始化编程开始。D3:LITM中断信号的触发方式0:边沿1:高电平D1:SGNL是否单片方式0:多片级联1:单片D0:IC4是否有ICW40:无1:有D7D6D5D4D3D2D1D01XXXXSGNLLTIMIC4A00注:在8086/8088系统中D7~D5和D2不用,通常置0;而D0必须为1。ICW2设置中断类型码在写ICW1之后,对A0=1的端口第一次写入的数据是ICW2。在8086/8088系统中,设置D7~D3,D2~D0无效(由8259A根据IR0~IR7自动填充为000~111)。在PC/XT中ICW2为00001000B,则中断号:类型号中断号:类型号IR0:08H时钟中断IR4:0CHCOM1IR1:09H键盘中断IR5:0DH硬盘IR2:0AH保留IR6:0EH软盘IR3:0BHCOM2IR7:0FHLPT1D7D6D5D4D3D2D1D00000XX0XA01ICW3设置级联系统中有级联(ICW1.SNGL=0),在ICW2之后写ICW3。对于主片:置1的位表示对应的引脚有从片级联。对于从片:用D2~D0表示和主片的对应引脚级联。D7D6D5D4D3D2D1D000001000A01D7D6D5D4D3D2D1D0XXXX01X0A01ICW4设置模式ICW1.IC4=1时,有ICW4。D4:SFNM中断的嵌套方式0:一般嵌套1:特殊的全嵌套在一般嵌套方式下,优先级IR0~IR7从高到底。D1:AEOI自动结束中断方式0:不自动清除ISR1:CPU响应中断后,自动清除ISRD0:PM微处理器类型0:8080/8085/Z801:8086/8088D7D6D5D4D3D2D1D0SFNM000M/SAEOIBUFPMA01D3:BUF缓冲1:8259通过数据缓冲器和总线相连,SP/EN引脚输出,缓冲器选通端。0:无缓冲,SP/EN引脚输入,用作主片、从片选择端。D2:M/S主片/从片选择(BUF=1时,有效)0:从片1:主片初始化编程一般在系统启动时进行,初始化以后系统才可以接收中断请求信号。ICW4设置模式8259A芯片的初始化流程写ICW1A0=0,D4=1写ICW2A0=1SNGL=1IC4=1写ICW3A0=1写ICW4A0=1是否是否按顺序对A0=1端口写入命令字例2:PC/AT机中8259A主片的端口地址是20H、21H,从片的端口地址是A0H、A1H。初始化序列如下:初始化主片MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL初始化从片MOVAL,11HOUT0A0H,ALMOVAL,70HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT
本文标题:计算机原理_7 中断技术
链接地址:https://www.777doc.com/doc-3675247 .html