计算机组成原理 第四章(输入输出系统)—第五节(程序中断方式)

本文详细介绍了计算机组成原理中的中断概念、中断的作用、中断请求方式接口电路、中断服务过程、中断服务程序流程、单重中断与多重中断以及程序中断方式的局限性。通过《计算机组成原理(唐朔飞)》为基础,探讨了中断在处理异常、设备交互和提高系统效率中的关键作用。
摘要由CSDN通过智能技术生成

 写在前面:

  1. 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili

一、概述

1、中断的概念

        计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,这就是中断

2、程序中断的作用

(1)实现CPU与I/O设备的并行工作。

(2)处理硬件故障和软件错误。

(3)实现人机交互,用户干预机器需要用到中断系统。

(4)实现多道程序、分时操作,多道程序的切换需借助中断系统。

(5)实时处理需要借助中断系统来实现快速响应。

(6)实现应用程序和操作系统(管态程序)的切换,称为“软中断”。

(7)多处理器系统中各处理器之间的信息交换和任务切换需要借助中断系统。

二、程序中断方式的接口电路

1、中断请求触发器和中断屏蔽触发器

(1)每台外部设备都必须配置一个中断请求触发器INTR,当其为“1”时,表示该设备向CPU提出中断请求,但是设备欲提出中断请求时,其设备本身必须准备就绪,即接口内的完成触发器D的状态必须为“1”。

(2)凡是能像CPU提出中断请求的各种因素都称为中断源,当多个中断源向CPU提出中断请求时,CPU在任何瞬间只能接受一个中断源的请求,为此CPU必须对各中断源的请求进行排队,CPU只接受级别最高的中断源的请求,不允许级别低的中断源中断正在运行的中断服务程序,于是在I/O接口中需设置一个屏蔽触发器MASK,当其为“1”时表示被屏蔽,即封锁其中断源的请求

(3)接口电路中的完成触发器D、中断请求触发器INTR、中断屏蔽触发器MASK和中断查询信号的关系如下图所示,仅当设备准备就绪(D=1),且该设备未被屏蔽(MASK=0)时,CPU的中断查询信号可将中断请求触发器置“1”(INTR=1)

2、排队器

(1)当多个中断源同时向CPU提出请求时,CPU只能按照中断源的不同性质对其排队,给予不同等级的优先权,并按优先等级的高低予以响应

(2)设备优先权的处理可以采用软件方法(具体在第七章将会详细介绍),也可以采用硬件方法。硬件排队器的实现方法有很多,既可在CPU内部设置一个统一的排队器,对所有中断源进行排队(如下一图所示),也可在接口电路内分别设置各个设备的排队器(如下二图所示,又称链式排队器)

(3)上图所示的链式排队器中,级别最高的中断源是1号,其次是2号、3号、4号,其工作情况如下:

不论是哪个中断源(一个或多个)提出中断请求,排队器输出端INTP_{i}只有一个是高电平。

当各中断源均无中断请求时,各个\overline{INTR_{i}}高电平,其INTP_{i}'均为高电平。

一旦某个中断源提出中断请求,比其优先级低的中断源INTP_{i}'就被迫变为低电平,封锁其法中断请求。

(4)中断优先级的安排规则:

硬件故障中断属于最高级,其次是软件中断

非屏蔽中断优先于可屏蔽中断

DMA请求优先于I/O设备传送的中断请求

高速设备优先于低速设备,因为如果CPU不及时响应高速I/O的请求,其信息很可能会未被处理就丢失。

实时设备优先于普通设备,因为如果CPU不及时响应实时I/O的请求,其信息很可能会转瞬即逝。

输入设备优先于输出设备

3、中断向量地址形成部件(设备编码器)

(1)CPU一旦响应了中断就要暂停现行程序,转去执行该设备的中断服务程序,不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须要找到这个入口地址。

(2)入口地址的寻找可以硬件或软件的方法完成,这里仅介绍硬件向量法。所谓硬件向量法,就是通过向量地址来寻找设备的中断服务程序入口地址,而且向量地址是由硬件电路产生的,如下图所示。

①中断向量地址形成部件的输入是来自排队器的输出INTP_{i},它的输出时中断向量(二进制代码表示),其位数与计算机可以处理中断源的个数有关,即一个中断源对应一个向量地址,也就是说,该部件实质上是一个编码器,在I/O接口中的编码器又称为设备编码器。

②需要注意的是,向量地址和中断服务程序的入口地址是两个不同的概念,下图所示的是通过向量地址寻找入口地址的一种方案,换句话说,每个中断源都有自己的编码(向量地址),通过这个编码可以找到其对应的中断服务程序的入口地址

4、程序中断方式接口电路的基本组成

        以输入设备为例,程序中断方式接口电路的基本组成如下图所示。

5、举例

(1)问题:现有3个设备A、B、C,它们的优先级按降序排列,这3个设备的向量地址分别是001010、001011、001100,设计1个链式排队器产生3个向量地址的设备编码器

(2)解决方案:如下图所示,图中INTR_{i}为中断请求信号,有请求时INTR_{i}=1\overline{INTR_{i}}=0),INTP_{i}为排队器输出,INTA为中断响应信号,当中断响应信号有效时,被选中的排队信号INTP_{i}通过设备编码器形成的向量地址可通过数据总线送至CPU。

三、I/O中断处理过程

1、CPU响应中断的条件和时间

(1)CPU响应I/O设备提出中断请求的条件是必须满足CPU中的允许中断触发器EINT为“1”,该触发器可用开中断指令置位(称为开中断),也可用关中断指令或硬件自动使其复位(称为关中断

(2)I/O设备准备就绪的时间(即D=1)是随机的,而CPU是在统一的时刻(每条指令执行阶段结束前)向接口发中断查询信号(将INTR置“1”),以获取I/O的中断请求,因此CPU响应中断的时间是在每条指令执行阶段的结束时刻

(3)对于执行时间很长的指令,如果每次都在指令执行阶段的结束时刻查询中断,就很可能会导致一些中断来不及处理(比如高速I/O的信息还未被处理就丢失),为此可在执行指令的过程中设置若干个“查询断点”。

2、具体处理过程(以输入为例)

(1)当CPU通过I/O指令的地址码选中某设备后,由CPU发启动I/O设备命令,将接口中的B置“1”、D置“0”。

(2)接口启动输入设备开始工作。

(3)输入设备将数据送入数据缓冲寄存器。

(4)输入设备向接口发出“设备工作结束”信号,将D置“1”、B置“0”,标志设备准备就绪。

(5)当设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发出中断查询信号。

(6)设备中断请求触发器INTR被置“1”,标志设备向CPU提出中断请求,与此同时,INTR送至排队器,进行中断判优

(7)若CPU允许中断(ENIT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址。

(8)向量地址送至PC,作为下一条指令的地址。

(9)由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,当即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入主存相关单元。

(10)中断服务程序的最后一条指令是中断返回指令,当其执行结束时,当即中断返回至原程序的断点处,至此一个完整的程序中断处理过程结束。

四、中断服务程序的流程

1、保护现场

        保护现场有两个含义,其一是保存程序的断点(中断结束后要返回执行原程序),其二是保存通用寄存器和状态寄存器的内容前者由中断隐指令完成(具体在第七章将会详细介绍),后者由中断服务程序完成

        对于中断服务程序,可在其起始部分安排若干条存数指令,将寄存器的内容存至存储器中保存,或用进栈指令(PUSH)将各寄存器的内容推入堆栈保存,即将程序中断时的“现场”保存起来。

2、中断服务(设备服务)

        这是中断服务程序的主体部分,对于不同的中断请求源,其中断服务操作内容是不同的,例如打印机要求CPU将需打印的一行字符代码通过接口送入打印机的缓存存储器中,又如显示设备要求CPU将需显示的一屏字符代码通过接口送入显示器的显示存储器中。

3、恢复现场

        这是中断服务程序的结尾部分,要求在退出服务程序前将原程序中断时的“现场”恢复到原来的寄存器中,通常可用取数指令或出栈指令(POP)将保存在存储器(或堆栈)中的信息送回到原来的寄存器中

4、中断返回

        中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序

五、单重中断和多重中断

        计算机在处理中断的过程中有可能会出现新的中断请求,如果CPU暂停现行服务程序,转去处理新的中断请求,这种现象称为中断嵌套或多重中断;如果CPU在执行中断服务程序时对新的中断请求不予理睬,这种中断称为单重中断

        单重中断和多重中断的区别在于“开中断”的设置时间不同,设置“开中断”后CPU就可以响应其它设备提出的中断请求

六、程序中断方式的局限

        从宏观上分析,程序中断方式克服了程序查询方式中的CPU“踏步”现象,实现了CPU与I/O的并行工作,提高了CPU的资源利用率,但从微观操作分析,发现CPU在处理中断服务程序时仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需不断地打断CPU执行主程序而执行中断服务程序,这对CPU资源的消耗也是不小的。

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值