微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章 中 断

上传人:E**** 文档编号:89246313 上传时间:2019-05-22 格式:PPT 页数:90 大小:1.56MB
返回 下载 相关 举报
微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章  中 断_第1页
第1页 / 共90页
微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章  中 断_第2页
第2页 / 共90页
微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章  中 断_第3页
第3页 / 共90页
微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章  中 断_第4页
第4页 / 共90页
微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章  中 断_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章 中 断》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术(第二版) 教学课件 ppt 作者 赵宏伟 于秀峰 黄永平 第3章 中 断(90页珍藏版)》请在金锄头文库上搜索。

1、第3章 中 断,3.1 概述 3.1.1 中断的基本概念 1中断和中断源 中断描述了一种CPU处理程序的过程。CPU在正常执行当前程序时,由某个事件引起CPU暂时停止正在执行的程序,进而转去执行请求CPU暂时停止的相应事件的服务程序,待该服务程序处理完毕后又返回继续执行被暂时停止的程序,这一过程称为中断。常将为实现中断功能而采取的硬件和软件措施,称为中断系统。,中断的应用,(1)实现主机与I/O设备的并行工作 (2)利用中断进行实时处理 当微机用于实时控制时,中断是一个十分重要的功能。所谓实时处理,是指在现场的某个事件或现象出现的实际时间内及时进行处理。如微机在过程控制系统中,监测到压力过大或

2、温度过高时,微机应立即响应并及时处理。防止偶然事故的发生。 (3)利用中断方式进行人机对话 某些程序的执行需要操作人员从键盘或某终端设备提供信息以进行控制。这些信息何时由键盘发出是随机的,因此,可以利用中断方式将信息提供给微机以实现人机对话。 (4)故障处理 微机在运行过程中,往往会出现事先预料不到的情况或出现一些故障:如电源掉电、存储校验出错、运算溢出等等。微机就可以利用中断技术自行处理,而不必停机或报告工作人员。 (5)多处理机系统中各处理机之间的协调工作 在多机系统与计算机网络中,各节点之间需要通信,以交换信息或协同工作。当一个节点要和其它节点通信时,便向它提出中断请求,对方转入中断服务

3、程序,实现通信。,3.1.2 中断接口电路,1最简单的中断接口电路 一个最简单的中断接口电路包含三个输入设备(A、B、C)和一个电源掉电中断源,CPU中设有一个中断允许触发器,三个可屏蔽中断请求输入端INTR0、INTR1、INTR2和一个非屏蔽中断请求输入端NMI。它们的作用如下。 (1)中断请求触发器 (2)中断允许触发器 (3)可屏蔽中断与非屏蔽中断 (4)中断请求与撤消 (5)中断请求输入线,最简单的中断接口电路,2中断优先级,在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。通常采用中断优先排队的处理方法解决这一问题。这就是

4、根据中断源要求的轻重缓急,排好中断处理的优先次序,即优先级(又称优先权)。先响应优先级最高的中断请求。 有的微处理器有两条或更多的中断请求线,而且CPU已经安排好中断的优先级,如图3.1.1中的INTR0为最高优先级、INTR1为次高优先级、INTR2为最低优先级。但有的微处理器只有一条中断请求线。凡是遇到中断源的数目多于CPU的中断请求线的情况时,就需要采取适当的方法来解决中断优先级的问题。另外,当CPU正在处理中断时,也要能响应优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,即所谓多重中断的问题。,(1)软件查询确定优先级,(2)硬件优先级排队电路确定优先级,菊花链逻辑电路,(3)具

5、有中断屏蔽的接口电路,软件查询确定优先级的优点是,各中断源的优先级灵活,但其缺点是在中断源较多的情况下,由询问到转至相应的中断服务程序的入口时间较长。硬件优先级排队电路确定优先级的优点是速度快,但其缺点是各个中断源的优先级固定不变。 在实际系统中,往往有多个中断源。为了增加控制的灵活性,通常采用一种折衷方案,即在图3.1.3菊花链确定优先级的中断接口电路的基础上,在每一个外设的接口电路中增加一个中断屏蔽触发器。只有当此触发器为“1”时,外设的中断请求才能通过与门送出。把4个外设的中断屏蔽触发器组成一个端口(即中断屏蔽寄存器),用输出指令来控制它们的状态。,具有中断屏蔽的接口电路,3.1.3 中

6、断处理过程,1单重中断处理过程 如果响应某个中断请求后,CPU只能为该请求源服务处理,不被其它中断请求所打断,只有本次中断服务全部完成并返回原程序后,CPU才能响应新的中断请求,这种情况称为单重中断。 (1)CPU响应中断的条件 一条指令执行结束后,CPU检测中断请求输入端INTR是否有中断请求信号,若无中断请求信号,则转取下一条指令,若有中断请求信号,则检测中断允许触发器的状态,若为关中断,则转取下一条指令,若为开中断,则进行中断处理。,(2)中断处理 1)关中断。CPU在响应中断后,发出中断响应信号,同时内部自动地关中断,以禁止接受其他的中断请求。 2)保护现场。为了使中断处理程序不影响主

7、程序的运行,故要把断点处的有关各个状态寄存器的内容和标志位的状态,推入堆栈保护起来。 3)保护断点。把断点处的程序计数器PC的内容压入堆栈,以备中断处理完后能正确地返回主程序断点。 4)形成中断服务程序入口地址。CPU要对中断请求进行处理,必须要找到相应的中断服务程序的入口地址。不同类型的微机的中断处理过程基本相似,但主要在形成中断服务程序入口地址方式上有所区别。 5)转入中断服务程序。将中断服务程序入口地址送入程序计数器PC。 需要说明的是,上述过程是微机硬件自动完成的。,(3)中断服务程序 1)保护现场。中断服务程序像子程序一样,在执行过程中,要使用CPU中的寄存器。所以,就应该将中断服务

8、程序中要使用的各个寄存器的内容保护起来,即保护现场。 2)中断处理。这是中断服务程序的核心部分,为中断源完成特定的功能。 3)恢复现场。在中断服务程序结束之前,应恢复现场,即把保护现场时所保存的各个寄存器的内容从堆栈弹出,送回原各个寄存器中。 4)开中断。通过指令开中断,在中断服务程序结束时,要开中断,以便CPU能响应新的中断请求。 5)返回断点。在中断服务程序结束的最后要安排一条中断返回指令,将在中断处理中压入堆栈内的保护现场和保护断点的内容弹出,即返回断点执行主程序并能继续准备响应新的中断请求。,可屏蔽多重中断处理过程流程图,2多重中断处理过程,多重中断方式允许在中断服务程序处理过程中响应

9、优先级别更高的中断请求。 当正在执行中断服务程序时,又产生了优先级较高的中断请求,这时CPU挂起正在处理的优先级较低的中断,转而响应优先级较高的中断,待具有较高优先级的中断处理完毕后,返回执行优先级较低的中断服务程序。这种处理过程叫做多重中断,也叫做中断嵌套。 例如在图3.1.5中,假定CPU在执行主程序第K条指令时接到设备C的中断请求,经中断处理将断点K1压栈保存,然后转入设备C的中断服务程序。在执行设备C的中断服务程序第J条指令时,又接到优先级更高的设备B的中断请求,于是CPU暂停执行设备C的中断服务程序,经中断处理将断点J1压栈保存后,转入设备B的中断服务程序。当执行完设备B的中断服务程

10、序时,从栈中取出返回地址J+1,返回设备C的中断服务程序。在执行完设备C的中断服务程序之后,从栈中取出返回地址K+1返回主程序。,(1)CPU响应中断的条件 与单重中断相同。 (2)中断处理 与单重中断相同。,(3)中断服务程序 1)保护现场。与单重中断相同。 2)保护原中断屏蔽字。保护本次中断的屏蔽字,以便返回主程序时恢复之。 3)送新中断屏蔽字。该屏蔽字将屏蔽掉与本次中断请求同一优先级别以及更低级别的其它请求。例如,在图3.1.5设备C中断服务程序中,其新中断屏蔽字对应A、B、C、D的输出状态为1、1、0、0。 4)开中断。通过指令开中断,因在中断处理中已由硬件关中断,为了能响应新的更高级

11、别请求,中断服务程序需执行开中断指令。 5)中断处理。与单重中断相同,若有新的更高级别的中断请求就在此程序段内响应。 6)关中断。通过指令关中断,在恢复现场和恢复原屏蔽字时不允许被干扰,CPU应处于关中断的状态。 7)恢复原屏蔽字。在中断服务程序结束时,需要恢复原屏蔽字。 8)恢复现场。与单重中断相同。 9)开中断。 10)返回断点。,3.2 Pentium的中断机制,Pentium的中断机制最多能处理256个中断源,每个中断源都有一个8位二进制数的中断类型码(0255),以供CPU进行识别。 Pentium的256个中断源可分成四类,即可屏蔽中断(INTR)、非屏蔽中断(NMI)、软件中断(

12、执行INTO、INT3、INT n、BOUND指令引起的中断)、异常。,Pentium的中断机制示意图,3.2.1 中断向量表,中断类型码通过一个地址指针表与中断服务程序入口地址相联。在实模式下,该表称为中断向量表。在保护模式下,该表称为中断描述符表。 中断向量就是中断服务程序的入口地址,而中断向量表则是存放中断服务程序入口地址的表格。中断向量表位于存储器地址空间的低地址端,共1K个字节,地址为00000H003FFH,每4个字节存放一个中断服务程序的入口地址(一共可存放256个中断服务程序的入口地址)。较高地址的两个字节存放中断服务程序入口的段地址,较低地址的两个字节存放入口地址的段内偏移量

13、,这4个单元的最低地址称为向量地址,其值为对应的中断类型码乘4。,中断向量表,3.2.2 可屏蔽中断INTR,可屏蔽中断请求线INTR通常由Intel 8259A中断控制器驱动,该控制器可由软件命令来控制其工作方式。8259A的主要任务是:接收与其相连的外部设备的中断请求,确定优先级,向INTR引脚发中断请求,通过数据总线向CPU发中断类型码。 当CPU在INTR引脚上接收到一个高电平的中断请求信号,并且当前的中断允许标志位IF为1时,CPU就会在当前指令执行结束后,响应INTR引脚的中断请求。Pentium要求可屏蔽中断请求信号是一个高电平信号,并且,INTR信号的高电平必须维持到CPU响应

14、中断后才结束。,中断响应总线周期,3.2.4 软件中断,软件中断包括INTO、INT3、INT n、BOUND指令。软件中断的特点是: (1)软件中断指令是程序员人为设置在程序中的。 (2)中断类型码包含在指令中,所以不执行中断响应总线周期。 (3)除BOUND指令外,中断返回地址指向软件中断指令的下一条指令。,1INT n中断指令 执行INT n指令时(n取值为0255),将使CPU进入中断类型码n所对应的中断服务程序。 2INT3中断指令 INT3是一个单字节的断点中断指令,执行INT3指令时,将使CPU进入类型为3的中断服务程序。 3INTO中断指令 INTO溢出中断指令也是一个单字节的

15、指令。INTO指令通常是跟在有符号数的加法运算或减法运算指令的后面。当运算指令使溢出标志OF为1时,执行INTO指令就会进入类型为4的溢出中断服务程序,此时中断服务程序给出出错标志。如果运算指令使OF为0,那么,接着执行INTO指令时,也会进入中断服务程序,但此时中断处理程序仅仅是对标志进行测试,然后很快返回主程序。 4BOUND中断指令,3.2.5 异常简介,异常既不是外部硬件产生的,也不是用软件指令产生的,而是在CPU执行一条指令过程中出现的错误或检测到的异常情况自动产生的。除单步(陷阱)中断外,异常中断返回地址指向程序中发生中断的地方,而不是指向产生中断指令的下一条指令。,1类型0除法出

16、错,在执行除法指令后结果溢出或遇到除数为0的情况,则CPU会自动产生类型为0的中断,转入相应的中断处理程序。,2类型1单步(陷阱),当标志寄存器中的陷阱标志位TF为1时,每执行一条指令后,就进入一次类型1的中断服务程序,此中断服务程序用来显示出一系列寄存器的值,并且告示一些附带的信息。因此,单步中断一般用在调试程序中逐条执行用户程序。 Pentium没有直接对TF标志置“1”或置“0”的指令,可以通过修改存放在堆栈中标志的内容或其他间接方法来改变TF之值。,3类型6无效操作码,在程序中遇到未定义的操作码时发生此中断。,4类型7设备不可用,设备不可用故障会在以下两种条件下产生: (1)Pentium微处理机执行了一条ESC(处理机脱离)指令,且控制寄存器CR0中的EM(模拟协处理器)位被置成“1”。 (2)Pentium微处理机执行了一条WAIT指令,且控制寄存器CR0中的(监控协处理器位)MP=1,或执行了一条ESC指令,且控制寄存器CR0的TS(任务切换)位被置为“1”。,5类型8双故障,一般情况下,若Pentium微处理机在调用一个异

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号