欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机组成原理第22讲中断.ppt

    • 资源ID:73976312       资源大小:227.63KB        全文页数:40页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机组成原理第22讲中断.ppt

    计算机组成原理Principles of Computer Organization广义双语教学课程青岛理工大学 校级精品课程http:/ 16位寄存器应该有16位的数据输入端口D和数据输出端口Q,还有时钟脉冲CLK、置数控制load、清零clear和输出允许(输出三态门控制)OE等端口 16位寄存器的系统框图 16位寄存器VHDL程序2异步清零并行置数三态输出的16位寄存器library ieee;-异步清零并行置数三态输出的16位寄存器use ieee.std_logic_1164.all;entity reg16THR isport(clk,clear,load,oe_l:in std_logic;d:in std_logic_vector(15 downto 0);q:out std_logic_vector(15 downto 0);end entity reg16THR;architecture v1 of reg16THR issignal q1:std_logic_vector(15 downto 0);begin3异步清零并行置数三态输出的16位寄存器process(clock,clear)begin if(oe_l=0)then q=q1;else q=ZZZZZZZZZZZZZZZZ;-不允许输出时为高阻态 end if;if clear=1 then q1 0);-异步清零 elsif rising_edge(clock)then if(load=1)then q1=d;-并行置数 end if;end if;end process;end architecture v1;4第第10章章 输入输出系统输入输出系统Chapter 10 Input/output SystemComputer Engineering(also called Electronic and Computer Engineering,or Computer Systems Engineering)is a discipline that combines both Electronic Engineering and Computer Science.Computer engineers usually have training in electronic engineering,software design and hardware-software integration instead of only software engineering or electronic engineering.Computer engineers are involved in many aspects of computing,from the design of individual microprocessors,personal computers,and supercomputers,to circuit design.(2)10.2 程序中断输入输出方式程序中断输入输出方式 中断中断(Interrupt)是由是由I/O设备或其它非预期的急需处理的设备或其它非预期的急需处理的事件引起的。事件引起的。它使它使CPU暂时中断当前正在执行的程序,而转去执行另一暂时中断当前正在执行的程序,而转去执行另一个个 中断服务程序中断服务程序(Interrupt-service Routine)去处理这些事件去处理这些事件(为中断源服务为中断源服务)。处理完后再返回原来的程序断点继续执行原来的程序。处理完后再返回原来的程序断点继续执行原来的程序。A程序程序中断请求中断请求中断服务程序中断服务程序指令指令 i指令指令 i+1断点断点开始开始返回返回6引起中断的事件称为中断源引起中断的事件称为中断源(Interrupt Source)。外中断外中断 内中断内中断 软中断软中断由处理机外部的由处理机外部的I/O设备设备、定时器定时器、电源等引起的中断电源等引起的中断。程序运行出错或处理器硬件故障引起的中断程序运行出错或处理器硬件故障引起的中断(异常异常)。由自陷指令产生的中断。由自陷指令产生的中断。外中断又可分为:可屏蔽中断外中断又可分为:可屏蔽中断(Maskable Interrupt),非屏蔽中断非屏蔽中断(Non Maskable Interrupt)。7在计算机系统中,中断有以下作用:在计算机系统中,中断有以下作用:CPU与与I/O设备并行工作。设备并行工作。硬件故障处理。硬件故障处理。实现人机联系。实现人机联系。实现多道程序和分时操作。实现多道程序和分时操作。实现实时处理。实现实时处理。实现应用程序和操作系统的联系。实现应用程序和操作系统的联系。多处理机系统中各处理机之间的联系。多处理机系统中各处理机之间的联系。8中断系统需解决的问题中断系统需解决的问题 中断源如何向CPU发出中断请求?有多个中断源同时申请中断时,如何确定应该先响应哪个中断请求?CPU以什么方式响应中断,什么时候允许响应中断请求?CPU响应中断后,如何保护现场?CPU响应中断时,如何停止原程序的执行,如何转到中断服务程序的入口地址?中断处理结束时,如何恢复现场,返回到原程序的间断点?如果在中断处理过程中出现新的中断请求,应如何处理?9 CPU有若干条中断输入引脚:有若干条中断输入引脚:中断源如何向中断源如何向CPU发出中断请求发出中断请求Interrupt Request?中断应答中断应答 Interrupt acknowledge可屏蔽中断可屏蔽中断 Maskable Interrupt 非屏蔽中断非屏蔽中断 Non Maskable Interrupt CPUINTRNMIINTA中断输出引脚中断输出引脚10每个中断源有不同的中断优先级每个中断源有不同的中断优先级Interrupt Priority。有多个中断源同时申请中断时,如何确定应该先响应哪个有多个中断源同时申请中断时,如何确定应该先响应哪个中断请求?中断请求?首先响应优先级最高的中断请求。首先响应优先级最高的中断请求。11中断方式中断方式Interrupt Mode:向量中断,非向量中断,等。向量中断,非向量中断,等。向量中断向量中断(Vectored Interrupt)方式要求中断源向方式要求中断源向CPU提供提供一个唯一代表该中断源的特征代码。一个唯一代表该中断源的特征代码。CPU以什么方式响应中断,在什么时候允许响应中断请求?以什么方式响应中断,在什么时候允许响应中断请求?CPU不是在任意时刻都可以响应中断。如果中断没有被屏不是在任意时刻都可以响应中断。如果中断没有被屏蔽,至少要等到当前正在执行的这一条指令执行完,然后才能蔽,至少要等到当前正在执行的这一条指令执行完,然后才能响应中断。响应中断。12 保护现场就是保护程序被中断时的状态(程序的断点地址,保护现场就是保护程序被中断时的状态(程序的断点地址,寄存器的内容),以保证在处理完中断服务后还能够继续正确寄存器的内容),以保证在处理完中断服务后还能够继续正确执行原来的程序。执行原来的程序。CPU响应中断后,如何保护现场?响应中断后,如何保护现场?通常采用将通常采用将现场信息压入堆栈的方法。现场信息压入堆栈的方法。13 CPU响应中断时,如何停止原程序的执行,如何转到中响应中断时,如何停止原程序的执行,如何转到中断服务程序的入口地址?断服务程序的入口地址?每个中断源都有自己的中断服务程序(在主存储器中)。每个中断源都有自己的中断服务程序(在主存储器中)。必须根据响应的是哪个中断源的中断请求,找到其中断服必须根据响应的是哪个中断源的中断请求,找到其中断服务程序的入口地址。务程序的入口地址。把中断服务程序的入口地址送入程序计数器把中断服务程序的入口地址送入程序计数器PC,按新的地,按新的地址取指令,就转而执行中断服务程序,原程序的执行自然就停址取指令,就转而执行中断服务程序,原程序的执行自然就停止了。止了。14 中断处理结束时中断处理结束时,如何恢复现场如何恢复现场,返回到原程序的间断点返回到原程序的间断点。在中断处理完成后,中断返回之前,必须恢复现场,将堆在中断处理完成后,中断返回之前,必须恢复现场,将堆栈中保存的各个寄存器的内容弹出到原来的寄存器中。栈中保存的各个寄存器的内容弹出到原来的寄存器中。15一般的计算机都支持多重中断(中断嵌套)。一般的计算机都支持多重中断(中断嵌套)。如果在中断处理过程中出现了新的中断请求如果在中断处理过程中出现了新的中断请求,应如何处理应如何处理?允许响应新的允许响应新的中断,为优先级更高的中断请求服务。从而中断,为优先级更高的中断请求服务。从而形成多重中断,或称为中断嵌套。形成多重中断,或称为中断嵌套。中断的全过程中断的全过程包括包括5个阶段:中断请求,中断判优,中断个阶段:中断请求,中断判优,中断响应,中断处理,中断返回。响应,中断处理,中断返回。161中断请求中断请求 Interrupt Request 外部设备完成指定的工作外部设备完成指定的工作,或者发生意外事件或者发生意外事件,向向CPU申请申请中断中断。一般的一般的CPU有数条中断请求输入引脚。每条线可能要连接有数条中断请求输入引脚。每条线可能要连接多个中断源。多个中断源。中断寄存器101 01 01 01 01 01 01 01中断源AINTR中断源D中断源H每个中断源有一个中断触发器,组成一个中断寄存器。每个中断源有一个中断触发器,组成一个中断寄存器。申请中断的外部设备使中断申请中断的外部设备使中断控制器控制器/接口的中断触发器置接口的中断触发器置1。中断控制器中断控制器/接口使中断请接口使中断请求线为有效电平,向求线为有效电平,向CPU发出发出中断请求。中断请求。172中断判优中断判优 如果有多个中断源同时请求中断,如果有多个中断源同时请求中断,CPU只能响应处理其中只能响应处理其中的一个。的一个。将每个中断源按其紧急与重要的程度分高低优先级,将每个中断源按其紧急与重要的程度分高低优先级,CPU只接受优先级最高的一个中断请求。只接受优先级最高的一个中断请求。中断判优的方法有:中断判优的方法有:软件查询法,软件查询法,硬件排队法。硬件排队法。硬件排队是在硬件排队是在CPU响应中断之前完成的,软件查询是在响应中断之前完成的,软件查询是在CPU响应中断之后进行的。响应中断之后进行的。An interrupt controller circuit such as the IBM PCs Programmable Interrupt Controller(PIC)may be connected between the interrupting device and to the processors interrupt pin to multiplex several sources of interrupt onto the one or two CPU lines typically available.18 软件查询法软件查询法 Software Polling转转中中断断源源A的的中中断服务程序断服务程序中断源中断源A?中断源中断源B?中断源中断源C?Y转转中中断断源源B的的中中断服务程序断服务程序转转中中断断源源C的的中中断服务程序断服务程序YYNNN 按中断源的优先级别高低,由程序按优先数的顺序,依次查按中断源的优先级别高低,由程序按优先数的顺序,依次查询中断请求标志寄存器的各个中断源是否发出中断请求。询中断请求标志寄存器的各个中断源是否发出中断请求。先发现的中断请求是优先权最高的,得到先发现的中断请求是优先权最高的,得到CPU的响应,用的响应,用跳转指令直接转到该中断源的中断服务程序入口执行。跳转指令直接转到该中断源的中断服务程序入口执行。软件查询法的速度低。软件查询法的速度低。19 硬件排队法硬件排队法通常有两类方法:菊花链,中断控制器。通常有两类方法:菊花链,中断控制器。中断控制器中断控制器 Interrupt Controller 中断控制器是一个专门的逻辑电路。每个中断控制器可以中断控制器是一个专门的逻辑电路。每个中断控制器可以连接多个连接多个(一般是8个)中断源的中断请求线。中断源的中断请求线。在中断控制器内有中断寄存器和优先权排队逻辑。在中断控制器内有中断寄存器和优先权排队逻辑。如果有两个或多个中断源同时请求中断,只把优先权最高如果有两个或多个中断源同时请求中断,只把优先权最高的一个中断源的中断请求传递给的一个中断源的中断请求传递给CPU,并封锁优先权低的中断,并封锁优先权低的中断源的中断请求。源的中断请求。20 优先权最高的设备排在队列的最前面,距离优先权最高的设备排在队列的最前面,距离CPU最近。只要最近。只要有中断请求就可以向有中断请求就可以向CPU发出,不会被封锁。发出,不会被封锁。INTRINTACPUD0D7INTR INTA设备设备AIEI IEO D0D71INTR INTA设备设备BIEI IEO D0D7INTR INTA设备设备NIEI IEO D0D7INTR INTA设备设备CIEI IEO D0D7 菊花链 Daisy Chain 用一个专门的电路,将各个中断源的中断请求逻辑按优先用一个专门的电路,将各个中断源的中断请求逻辑按优先权由高到低的顺序连接起来。权由高到低的顺序连接起来。21INTRINTACPUD0D7INTR INTA设备设备AIEI IEO D0D71INTR INTA设备设备BIEI IEO D0D7INTR INTA设备设备NIEI IEO D0D7INTR INTA设备设备CIEI IEO D0D7 CPU在响应中断时不需要再进行中断优先权判断,所响应在响应中断时不需要再进行中断优先权判断,所响应的就是当时优先权最高的一个中断源的中断请求。的就是当时优先权最高的一个中断源的中断请求。菊花链菊花链 Daisy Chain 只要一个设备被允许发出中断请求,则自动封锁优先权低只要一个设备被允许发出中断请求,则自动封锁优先权低于它的所有设备的中断申请,一直到该优先权高的设备的中断于它的所有设备的中断申请,一直到该优先权高的设备的中断服务程序执行完。服务程序执行完。保证了在排队链上,同一时间只有一个设备能够向保证了在排队链上,同一时间只有一个设备能够向CPU发发出中断请求,而出中断请求,而CPU也只会接到一个中断源的中断请求。也只会接到一个中断源的中断请求。223中断响应中断响应 Interrupt Response CPU响应中断的条件响应中断的条件 CPU在每个机器周期都检测中断请求线是否为有效电平。在每个机器周期都检测中断请求线是否为有效电平。但是,如果但是,如果INTR为有效电平,为有效电平,CPU是否响应是否响应(可屏蔽)中断还中断还取决于以下取决于以下3个条件:个条件:中断响应被允许中断响应被允许 CPU收到中断请求收到中断请求 一条指令执行完毕一条指令执行完毕(非流水线机器)23 中断响应被允许中断响应被允许CPU内有一个内有一个“中断允许触发器中断允许触发器”。执行执行“开中断开中断”指令,使中断允许触发器置指令,使中断允许触发器置1。执行执行“关中断关中断”指令,使中断允许触发器置指令,使中断允许触发器置0。中中断断允允许许触触发发器器只只屏屏蔽蔽可可屏屏蔽蔽中中断断请请求求,不不能能屏屏蔽蔽非非屏屏蔽蔽中中断请求。断请求。若该触发器为若该触发器为0状态,就不允许状态,就不允许CPU响应中断响应中断(中断被屏蔽)。若该触发器为若该触发器为1状态,就允许状态,就允许CPU响应响应(可屏蔽)中断。中断。24 CPU收到中断请求收到中断请求 当当CPU检测中断请求线状态的时刻,中断请求线上必须是检测中断请求线状态的时刻,中断请求线上必须是有效电平,有效电平,CPU才能收到中断请求。才能收到中断请求。如果中断源的中断请求如果中断源的中断请求没有维持足够长的时间,就没有维持足够长的时间,就会丢失申请。会丢失申请。所以,中断控制逻辑要在接收到所以,中断控制逻辑要在接收到CPU发出的中断应答信号发出的中断应答信号INTA后才撤消中断请求信号。后才撤消中断请求信号。0 1 2 3 0TINTRTypically,the processor samples the interrupt input at predefined times during each bus cycle such as state T2 for the Z80 microprocessor.If the interrupt isnt active when the processor samples it,the CPU doesnt see it.25 如果中断没有被屏蔽,如果中断没有被屏蔽,CPU响应中断,停止现行程序的运行,响应中断,停止现行程序的运行,执行一条执行一条中断隐指令中断隐指令将断点地址(将断点地址(PC内容)压入堆栈并关中断,内容)压入堆栈并关中断,然后要找到该中断源的中断服务程序入口地址,把该地址送入程然后要找到该中断源的中断服务程序入口地址,把该地址送入程序计数器序计数器PC,就可以转去执行中断服务程序了。,就可以转去执行中断服务程序了。寻找中断服务程序入口地址的方法寻找中断服务程序入口地址的方法 寻找中断服务程序入口地址有寻找中断服务程序入口地址有3种方法:中断向量法,软件种方法:中断向量法,软件查询法,非屏蔽中断有固定的入口。查询法,非屏蔽中断有固定的入口。一条指令执行完毕一条指令执行完毕(非流水线机器)即被中断的是程序,当前正在执行的指令还得执行完。即被中断的是程序,当前正在执行的指令还得执行完。对于非屏蔽中断请求,对于非屏蔽中断请求,CPU必须在当前正在执行的指令执必须在当前正在执行的指令执行完后无条件响应。行完后无条件响应。26 软件查询法软件查询法 Software Polling 软件查询法是和中断判优一起完成的。找到中断源后,用软件查询法是和中断判优一起完成的。找到中断源后,用一条转移指令直接转到中断服务程序入口地址执行。一条转移指令直接转到中断服务程序入口地址执行。转转中中断断源源A的的中中断断服务程序服务程序中断源中断源A?中断源中断源B?中断源中断源C?Y转转中中断断源源B的的中中断断服务程序服务程序转转中中断断源源C的的中中断断服务程序服务程序YYNNN27 中断向量法中断向量法 Vectored Interrupt 中断向量中断向量(Interrupt Vector)是中断服务程序的入口地址。是中断服务程序的入口地址。每个中断源都有自己的中断向量。每个中断源都有自己的中断向量。CPU在响应中断时,发出中断应答信号在响应中断时,发出中断应答信号INTA。中断控制器或有中断功能的接口逻辑收到中断应答信号就将中断控制器或有中断功能的接口逻辑收到中断应答信号就将代表发出中断请求的中断源的一个特征代码送上数据总线。代表发出中断请求的中断源的一个特征代码送上数据总线。该特征代码又称为该特征代码又称为“向量地址向量地址”(Intel X86称为“中断类型码”),一般是一个一般是一个8位的字,唯一地对应一个中断源。位的字,唯一地对应一个中断源。CPU接着从数据总线读入该向量地址。不同的接着从数据总线读入该向量地址。不同的CPU有不同有不同的方法,根据该向量地址寻找或形成中断服务程序入口地址。的方法,根据该向量地址寻找或形成中断服务程序入口地址。例如,Z80的中断方式0,中断源(或中断控制器)向CPU提供的特征代码是一条RST指令。它指向主存储器的0000H、0008H、0038H等8个地址。这些就是中断服务程序的入口地址,每个地址有8个单元。如果中断服务程序比较长,则在该入口地址放一条转移指令,转到中断服务程序入口。又如,Z80的中断方式2,向量地址是中断向量表(中断服务程序入口地址表)指针的低8位。高8位在中断向量寄存器I中。Intel 8086也采用这种方法。在中断向量表中,每个表项是2个字节的指令指针IP的值和2个字节的代码段寄存器CS的值。控制器把中断向量寄存器的内容与从数据总线读入的向量控制器把中断向量寄存器的内容与从数据总线读入的向量地址合成一个完整的地址合成一个完整的16位地址指针。用该地址指针去查表,在位地址指针。用该地址指针去查表,在中断服务程序入口地址表中取出中断服务程序入口地址。中断服务程序入口地址表中取出中断服务程序入口地址。将中断服务程序入口地址置入程序计数器将中断服务程序入口地址置入程序计数器PC中,接着按该中,接着按该地址取指令就转到中断服务程序入口执行了。地址取指令就转到中断服务程序入口执行了。29 CPU响应中断时的现场保护响应中断时的现场保护 CPU响应中断时需要保护的现场有两类:一是程序的断点地响应中断时需要保护的现场有两类:一是程序的断点地址,二是址,二是CPU内一些寄存器的内容。内一些寄存器的内容。断点地址的保护由硬件完成:断点地址的保护由硬件完成:CPU响应中断时自动执行一响应中断时自动执行一条中断隐指令,将程序计数器条中断隐指令,将程序计数器PC的内容压栈。的内容压栈。为了保证保护断点地址的过程不被新的中断打乱(否则不为了保证保护断点地址的过程不被新的中断打乱(否则不能保证正确地返回到断点),所以能保证正确地返回到断点),所以CPU在响应中断时自动关中在响应中断时自动关中断(将中断允许触发器置断(将中断允许触发器置0)。)。30 CPU响应中断时的现场保护响应中断时的现场保护 如果在中断服务程序中使用某个寄存器,或者有算术逻辑如果在中断服务程序中使用某个寄存器,或者有算术逻辑运算指令(影响程序状态字寄存器),则需要将受影响的寄存运算指令(影响程序状态字寄存器),则需要将受影响的寄存器内容压入堆栈。器内容压入堆栈。由于在不同程序中需要保护的寄存器是不同的,所以,对由于在不同程序中需要保护的寄存器是不同的,所以,对于这些寄存器的保护,不宜由硬件完成。于这些寄存器的保护,不宜由硬件完成。通常在中断服务程序的开始部分安排几条压栈指令,将它通常在中断服务程序的开始部分安排几条压栈指令,将它们的内容压入堆栈。们的内容压入堆栈。314中断处理中断处理 Interrupt Processing 这一程序段是中断服务程序中完成对事件的处理,或输入这一程序段是中断服务程序中完成对事件的处理,或输入/输出,或输出,或I/O设备的启动设备的启动/停止,等操作的实质性工作的程序。停止,等操作的实质性工作的程序。325中断返回中断返回 Interrupt Return当当CPU完成中断服务后,应该立即返回原程序的断点。完成中断服务后,应该立即返回原程序的断点。在中断服务程序的末尾安排一条中断返回指令。中断返回指在中断服务程序的末尾安排一条中断返回指令。中断返回指令的功能是把堆栈栈顶的内容弹出到令的功能是把堆栈栈顶的内容弹出到PC中。中。如果在保护现场时曾经把一些寄存器内容压栈,则在中断如果在保护现场时曾经把一些寄存器内容压栈,则在中断返回前必须恢复现场。按与压栈时相反的次序弹出到相应的寄返回前必须恢复现场。按与压栈时相反的次序弹出到相应的寄存器中。存器中。注意:注意:w在中断服务程序中压栈和出栈的次数必须相等。在中断服务程序中压栈和出栈的次数必须相等。w谨慎使用条件返回指令。谨慎使用条件返回指令。w由由于于CPU在在响响应应中中断断时时已已经经自自动动关关中中断断,所所以以,如如果果在在本本次次中中断断后后还还允允许许CPU响响应应中中断断,就就应应该该在在中中断断服服务务程程序序中安排一条开中断指令。中安排一条开中断指令。33多重中断多重中断 Multiple Interrupt 当当CPU正在为一个中断源正在为一个中断源A服务时,又响应另外一个优先级服务时,又响应另外一个优先级更高的中断源更高的中断源B的中断请求,在执行完后者的中断服务程序之后的中断请求,在执行完后者的中断服务程序之后再返回继续执行前者的中断服务程序,这样就形成了中断嵌套再返回继续执行前者的中断服务程序,这样就形成了中断嵌套Interrupt nesting,或者叫多重中断。或者叫多重中断。多重中断的原则是:优先多重中断的原则是:优先级高的中断源可以中断优先级级高的中断源可以中断优先级低的中断服务程序。低的中断服务程序。程序程序中断服务程序A中断服务程序B中断服务程序C中断请求中断源A中断源C中断源B34 由于由于CPU在响应中断时已经自动关中断,在响应中断时已经自动关中断,所以,要想实现中断嵌套就必须在进入中断所以,要想实现中断嵌套就必须在进入中断服务程序后执行开中断指令,使得服务程序后执行开中断指令,使得CPU能够能够再次响应新的中断请求。一般把开中断指令再次响应新的中断请求。一般把开中断指令安排在保护现场之后。安排在保护现场之后。如果一个中断服务程序不允许被中断,如果一个中断服务程序不允许被中断,但是,在本次中断服务之后仍然允许但是,在本次中断服务之后仍然允许CPU响响应中断,则开中断指令必须安排在恢复现场应中断,则开中断指令必须安排在恢复现场之后,中断返回指令之前。之后,中断返回指令之前。中断服务程序保护现场中断返回开中断中断服务程序保护现场中断返回开中断35Homework10-1,3,5,6,7Interrupts can be categorized into:maskable interrupt(IRQ),non-maskable interrupt(NMI),interprocessor interrupt(IPI),software interrupt,and spurious interrupt.A maskable interrupt(IRQ)is a hardware interrupt that may be ignored by setting a bit in an interrupt mask registers(IMR)bit-mask.Likewise,a non-maskable interrupt(NMI)is a hardware interrupt that does not have a bit-mask associated with it-meaning that it can never be ignored.36本节的重点内容:中断(中断(Interrupt)是由I/O设备或其它非预期的急需处理的事件引起的,它使CPU暂时中断当前正在执行的程序,而转去执行另一个中断服务程序(Interrupt-service Routine)去处理这些事件(为中断源服务),处理完后再返回原来的程序断点继续执行原来的程序。引起中断的事件称为中断源中断源(Interrupt Source)。外中断内中断软中断 外中断又可分为:可屏蔽中断(Maskable Interrupt),非屏蔽中断(Non Maskable Interrupt)。37 中断处理的全过程包括5个阶段:中断请求,中断判优,中断响应,中断处理,中断返回。1中断请求 Interrupt Request 外部设备完成指定的工作,或发生意外事件,向CPU申请中断。2中断判优 将每个中断源按其紧急与重要的程度分高低优先级,CPU只接受优先级最高的一个中断请求。中断判优的方法有:软件查询法,硬件排队法。硬件排队是在CPU响应中断之前完成的,软件查询是在CPU响应中断之后进行的。383中断响应中断响应 Interrupt Response CPU响应中断的条件 中断响应被允许 CPU收到中断请求 一条指令执行完毕(非流水线机器)5中断返回 Interrupt Return 在中断服务程序的末尾安排一条中断返回指令。中断返回指令的功能是把堆栈栈顶的内容弹出到PC中。如果在保护现场时曾经把一些寄存器内容压栈,则在中断返回前必须恢复现场。按与压栈时相反的次序弹出到相应的寄存器中。执行“开中断”指令,使中断允许触发器置1。执行“关中断”指令,使中断允许触发器置0。39中断嵌套中断嵌套 Interrupt nesting 当CPU正在为一个中断源A服务时,又响应另外一个优先级更高的中断源B的中断请求,在执行完后者的中断服务程序之后再返回继续执行前者的中断服务程序,这样就形成了中断嵌套,或者叫多重中断Multiple Interrupt。多重中断的原则是:优先级高的中断源可以中断优先级低的中断服务程序。由于CPU在响应中断时已经自动关中断,所以,要想实现中断嵌套就必须在进入中断服务程序后执行开中断指令,使得CPU能够再次响应新的中断请求。一般把开中断指令安排在保护现场之后。如果一个中断服务程序不允许被中断,但是,在本次中断服务之后仍然允许CPU响应中断,则开中断指令必须安排在恢复现场之后,中断返回指令之前。程序中断服务程序A中断服务程序B中断服务程序C

    注意事项

    本文(计算机组成原理第22讲中断.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开