您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > (第5章)输入输出系统之中断
一、课题的引入正在看书电话铃响接电话继续看书实际场景实际场景与计算机场景的比较执行程序事件发生事件处理继续程序计算机场景中断问题的提出:在程序查询方式中,CPU和外设的工作是串行的,当CPU和外设交换信息时,就把CPU的控制权交给了该设备,而CPU只能做测试等待,直到外设工作完成。CPU的大部分工作时间被浪费了。假若CPU在启动外设工作后,设备释放对CPU的控制权使CPU继续工作,当外设工作完成后向CPU发中断请求信号,若CPU响应中断,则停止正在执行的程序,转中断服务程序为该程序服务,这样就能实现CPU和外设并行工作,使CPU的效率充分发挥。计算机中要引入中断的原因?提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率(并行操作)。实现对特殊事件的实时响应(实时处理/故障处理)。如多任务系统操作系统中:缺页中断设备中断各类异常实时时钟,…等二、本节内容教学内容:1、中断的概述(1)中断的定义(2)中断方式下CPU执行程序的流程2、中断的处理过程(1)中断请求(2)中断识别与判优(3)中断处理(4)中断返回本节重点三、中断的概述1、中断的定义中断的定义:CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。实现方法:1.当外设准备好,向CPU发出中断请求2.CPU在满足响应中断的条件下,发出中断响应信号;3.CPU暂停当前的程序,转去执行中断服务程序,完成与外设的数据传送;4.CPU从中断服务程序返回,继续执行被中断的程序中断服务程序发申请中断服务程序发申请外设2、中断方式下CPU执行程序的流程二、中断的概述程序中断与调用子程序有什么区别呢?三、中断处理过程正在看书铃声响起电话铃声继续看书实际场景门铃?接电话闹钟铃声取指令设备服务保存CPU现场、保存PC恢复现场响应中断找中断源,判优中断?转移到中断服务子程序是否执行指令计算机的中断处理过程中断类型:按中断处理方法分类:程序中断:主机响应中断请求后,通过执行一段程序来处理有关的事宜。简单中断:主机响应中断请求后,不需要执行服务程序,而是让出一个或几个主存周期,使I/O设备和主存直接交换数据。按中断源分类:强迫中断:是随机产生的。产生强迫中断的中断源有四个方面:内中断:由硬件故障及程序故障引起的中断。外中断:是由系统配置的外部设备引起的中断。正在执行着的现行程序所引起的中断。处理机之间的中断。自愿中断(程序自中断):事先在程序某初设置断点,并借用中断处理方式保护现场,引出一段服务程序。多级中断和单级中断:单级中断:在执行中断的过程中,如果只能为本次中断服务,不允许打断服务程序,只有在服务程序完成后,才能响应新的请求,称为单级中断。多级中断:如在一次服务程序执行中,允许优先级高的中断级别低的中断服务程序,在保存断点和现场后,转去响应优先级别更高的中断程序,并执行新的中断服务程序。主程序第1中断服务程序第2中断服务程序中断源定义:引起CPU中断的事件——中断源。例如:外设—请求输入输出数据,报告故障等事件—掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分类:外部中断、内部中断内部中断:CPU内部执行程序(INTn等)时自身产生的中断外部中断:CPU以外的设备、部件产生的中断8086/8088的外部中断信号:INTR、NMIINTR——可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。8086/8088中断源内部/软件中断请求NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259A8086/8088CPU内部逻辑断点中断43012n中断请求\排队\屏蔽INTA内部排队中断开关DB可屏蔽的中断请求外部/硬件中断请求n中断指令INTn(n=0~255)软件判优硬件判优硬件编码器和比较器的优先权排队电路若有8个中断源,当任一个有中断请求时,通过“或”门,即可有一个中断请求信号产生,但它能否送至CPU的中断请求线,还要受比较器的控制(若优先权失效信号为低电平,则与门2关闭)。8条中断输入线的任一条,经过编码器可以产生三位二进制优先权编码A2A1A0,优先权最高的线的编码为111,优先权最低的线的编码为000。而且若有多个输入线同时输入,则编码器只输出优先权最高的编码。正在进行中断处理的外设的优先权编码,通过CPU的数据总线,送至优先权寄存器,然后输出编码B2B1B0至比较器,以上过程是由软件实现的。比较器比较编码A2A1A0与B2B1B0的大小,若A≤B,则“A>B”端输出低电平,封锁与门1,就不向CPU发出新的中断申请(即当CPU正在处理中断时,当有同级或低级的中断源申请中断时,优先权排队线路就屏蔽它们的请求);只有当A>B时,比较器输出端才为高电平,打开与门1,将中断请求信号送至CPU的INTR输入端,CPU就中断正在进行的中断处理程序,转去响应更高级的中断。若CPU不在进行中断处理时(即在执行主程序),则优先权失效信号为高电平,当有任一中断源请求中断时,都能通过与门2,发出INTR信号。这样的优先权电路,如何能做到转入优先权最高的外设的服务程序的入口呢?当外设的个数≤8时,则它们公用一个产生中断矢量的电路,它有三位由比较器的编码A2A1A0供给,就能做到不同的编码转入不同的入口地址。3)中断响应在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下中断响应条件成立,则CPU响应中断:当前指令执行完。有中断请求发出且没有被屏蔽掉(中断请求可送到CPU的INTR或NMI)。对INTR,还应满足以下特殊条件:当前指令是STI和IRET,则下条指令也要执行完。当前指令带有LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;对INTR,CPU应处于开中断状态,即IF=1;当前没有复位(RESET)和保持(HOLD)信号。若NMI和INTR同时发生,则首先响应NMI。3)中断响应(续)CPU中断响应时,要做下述几项工作:对INTR,向中断源发出INTA中断响应信号;自动关中断,即IF=TF=0(关可屏蔽中断和单步中断);断点保护,包括CS、IP和FLAGS。主要是保证中断结束后能返回被中断的程序----PUSHCS/IP/FLAGS获得中断服务程序首地址(入口)---JMPCS’:IP’如何得到中断处理程序的首地址?固定入口法----MCS-51单片机中中断向量法——常用,如:X86中4)中断处理(中断服务)中断服务子程序特点为”远”过程(类型为FAR或far)要用IRET指令返回---POPFLAGS/IP/CS中断服务子程序要做的工作保护现场(PUSHreg’s)开中断IF=1(STI)---允许中断嵌套进行中断处理---用户根据中断处理任务编写恢复现场(POPreg’s)中断返回(IRET)中断返回IRET主程序中断服务程序保护现场PUSH开中断STI中断处理恢复现场POP关中断CLI开中断STI现场断点中断嵌套5)中断返回执行中断返回指令IRETIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAGS中,保证被中断的程序从断点处能够继续往下执行。---相当于POPIP/CS/FLAGSIPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后程序中断方式——中断的基本接口中断的基本接口:工作标志触发器BS就绪标志触发器RD允许中断触发器EI中断请求触发器IR中断屏蔽触发器IM程序中断方式——中断的基本接口控制IMIR公用寄存器PCIR01BSEIRD数据缓冲寄存器中断向量逻辑设备选择动作开始动作结束传送数据CPU接口设备程序中断方式——中断的基本接口各个触发器的具体功能:准备就绪标志(RD):一旦设备做好一次数据的接受和发送,便发出一个设备动作完毕信号,使RD标志置“1”。允许中断触发器(EI):可以用程序指令来置位。EI为1时,某设备可以向CPU发出中断请求;EI为0时,不能向CPU发出中断请求。这意谓着某中断源被禁止。程序中断方式——中断的基本接口中断请求触发器(IR):暂存中断请求线上由设备发出的中断请求信号。当IR为“1”时,表示设备发出了中断请求。中断屏蔽触发器(IM):是CPU是否受理中断或批准中断的标志。IM为“0”时,CPU可以受理外界的中断请求,反之,CPU不受理外界的中断。程序中断方式——中断的基本接口控制IMIR公用寄存器01BSEIRD数据缓冲寄存器中断向量逻辑设备选择PCIR动作开始动作结束传送数据动作开始数据缓冲寄存器传送数据12345动作结束67PCIR8公用寄存器109
本文标题:(第5章)输入输出系统之中断
链接地址:https://www.777doc.com/doc-3200789 .html