目录

  • 1 两课设计和教学资源
    • 1.1 教学大纲
    • 1.2 课程教案设计
    • 1.3 教材电子书
    • 1.4 教学课件及推荐书目
    • 1.5 高阶课堂安排
    • 1.6 课程反思
  • 2 计算机系统概论
    • 2.1 第1章PPT
    • 2.2 计算机系统组成和工作步骤
  • 3 系统总线
    • 3.1 第3章PPT
    • 3.2 总线的基本概念、分类、特性及性能指标(第1次翻转课)
    • 3.3 总线结构及总线判优(第2次翻转课)
    • 3.4 总线的通信控制(第3次翻转课)
  • 4 存储器
    • 4.1 第4章PPT
    • 4.2 存储器的分类与层次结构
    • 4.3 主存储器
    • 4.4 RAM和ROM
    • 4.5 存储器与CPU的连接(第4、5次翻转课)
    • 4.6 Cache和辅助存储器
  • 5 输入输出系统
    • 5.1 第5章PPT
    • 5.2 概述与I/O设备
    • 5.3 I/O接口和程序查询方式(第6次翻转课)
    • 5.4 程序中断方式 和DMA方式(第7次翻转课)
  • 6 复习+讨论+答疑
    • 6.1 1·5章 复习+讨论+答疑
  • 7 计算机的运算方法
    • 7.1 第6章PPT
    • 7.2 无符号数和有符号数
    • 7.3 数的表示(第8次翻转课)
    • 7.4 定点的加法与减法运算、ALU单元
  • 8 指令系统
    • 8.1 第7章PPT
    • 8.2 指令的一般格式、操作数的类型
    • 8.3 各种寻址方式(第9次翻转课)
    • 8.4 指令格式(第10次翻转课)
  • 9 CPU的结构和功能
    • 9.1 第8章PPT
    • 9.2 CPU的功能和结构、寄存器、指令周期
    • 9.3 指令流水原理、性能和结构、中断系统工作原理
  • 10 实验1:汉字国标码转区位码实验(第11次翻转课)
    • 10.1 汉字国标码转区位码实验内容简介
    • 10.2 汉字机内码获取实验内容简介
    • 10.3 实验资料
  • 11 实验2:8位可控加减法电路设计实验(第12次翻转课)
    • 11.1 实验内容简介
    • 11.2 实验资料
  • 12 实验3:CLA182四位先行进位电路设计实验(第13次翻转课)
    • 12.1 实验内容简介
    • 12.2 实验资料
  • 13 实验4:4位快速加法器设计实验(第14次翻转课)
    • 13.1 实验内容简介
    • 13.2 实验资料
  • 14 实验5:汉字字库存储芯片扩展实验(第15次翻转课)
    • 14.1 实验内容简介
    • 14.2 实验资料
指令流水原理、性能和结构、中断系统工作原理
  • 1 教学内容
  • 2 教学视频

本节教学内容:

1、指令流水原理

2、影响流水线性能的因素

3、流水线性能和结构

4、中断系统的工作原理


教学目的和要求:

1、掌握指令流水原理;

2、了解影响流水线性能的因素;

3、理解流水线性能和结构;

4、掌握中断系统的工作原理;

5、理解中断的应用。


重点: 1指令流水原理;   

          2中断系统的工作原理。

难点:1、影响流水线性能的因素;2中断的应用


1指令流水

一、知识要点

1、指令流水的概念

2、指令流水原理

3、影响流水线性能的因素

4、流水线性能和结构

二、教学安排

首先,利用生活中的例子来介绍什么是流水线,然后再说明计算机的CPU中是如何形成流水线的,流水线的级数与计算机性能的关系,分析影响流水线的性能有哪些因素,最后讲解流水线性能和结构。

三、教学内容

1、指令流水

加快机器语言的解释过程提高机器的运算速度是设计计算机的基本任务之一。这可以通过两个途径来实现。一个途径是提高器件的速度,采用更好的算法,增加指令内各微操作的并行程度,减少解释过程所需要的拍数等多项措施来加快机器指令的解释。另一个途径则是采用重叠和流水方法,同时解释两条、多条以至整段程序,从而加快整个机器语言程序的解释。流水线技术是目前广泛应用于微处理芯片中的一项关键技术,Intel公司更是这项技术在微处理器中应用的首先实现者。

流水线技术是提高系统吞吐率的一项强大的实现技术,并且不需要大量重复设置硬件。20世界60年代早期的一些高端机器中第一次采用了流水线技术。第一个采用指令流水线的机器是IBM7030(又称作Stretch计算机)。后来的CDC 6600同时采用了流水线和多功能部件。  到了20世纪80年代,流水线技术成为RISC处理器设计方法中最基本的技术之一。RISC设计方法的大部分技术都直接或者间接以提高流水线性能为目标。从此以后,流水线技术也被有效地应用到CISC处理器的设计中。Intel i486IA32体系结构中的第一个流水线实现。DigitalVAXMotorolaM68K的流水线版本在商业上也取得了成功。  流水线技术是当前指令集处理器设计中广泛采用的技术。在这里我们将重点放在(标量)流水线处理器的设计。流水线处理器设计中的许多方法和技术,例如用于检测和化解相关的流水线互锁机制,都是标量处理器设计的基本方法。当前的趋势是朝着超深度流水线的方向发展。流水线的深度已经从不到10发展到超过20.深度流水是获得高速始终频率的必要条件,这是提高处理器性能的一个非常有效的方法。有迹象表明。这种趋势还将持续下去。

2、指令流水原理

指令流水类似于工厂的装配线,装配线利用了产品在装配的不同阶段其装配过程不同这一特点,使不同产品处在不同的装配段上,即每个装配段同时对不同产品进行加工,这样可大大提高装配效率。将这种装配生产线的思想用到指令的执行上,就引出了指令流水的概念。

从上面的分析可知,完成一条指令实际上也可分为许多阶段。为简单起见,把指令的处理过程分为取指令和执行两个阶段,在不采用流水技术的计算机里,去指令和执行指令是周而复始地重复出现,各条指令按顺序串行执行的,如下图所示。

图中取指令的操作可由指令部件完成,执行指令的操作可由执行部件完成。进一步分析发现,这种顺序执行虽然控制简单,但执行中各个部件的利用率不高,如指令部件工作时,执行部件基本空闲,而执行部件工作时,指令部件基本空闲。如果指令执行阶段不访问主存,则完全可以利用这段时间取下一条指令,这样就使取下一条指令的操作和执行当前指令的操作同时进行,如下图所示,这就是两条指令的重叠,即指令的二级流水。

由指令部件取出一条指令,并将它暂存起来,如果执行部件空闲,就将暂存的指令传给执行部件执行。与此同时,指令部件又可取出吓一跳指令并暂存起来,这称为指令预取。显然,这种工作方式能加速指令的执行。如果取指和执行阶段在时间上完全重叠,相当于将指令周期减半。然而进一步分析流水线,就会发现存在两个原因使得执行效率加倍是不可能的。

1)指令的执行时间一般大于取指时间,因此,取指阶段可能要等待一段时间,也即存放在指令部件缓冲区的指令还不能立即传送给执行部件,缓冲区不能空出。

2)当遇到条件转移指令时,下一条指令是不可知的,因为必须等到执行阶段结束后,才能获知条件是否成立,从而决定下条指令的地址,造成时间损失。

通常为了减少时间损失,采用猜测法,即当条件不成立,转移没有发生,则没有时间损失;若条件成立,转移发生,则所取的指令必须丢掉,并再取新的指令。

尽管这些因素降低了两级流水线的潜在效率,但还是可以获得一定程度的加速。为了进一步提高处理速度,可将指令的处理过程分解为更细的几个阶段。

取指(FI):从存储器取出一条指令并暂时存入指令部件的缓冲区。

指令译码(DI):确定操作性质和操作数地址的形式方式。

计算操作数地址(CO):计算操作数的有效地址,涉及寄存器间址寻址、间址寻址、变址、基址、相对寻址等各种地址计算方式。

取操作数(FO):从存储器中取操作数(若操作数在寄存器中,则无须此阶段)。

执行指令(EI):执行指令所需的操作,并将结果存于目的位置(寄存器中)。

写操作数(WO):将结果存入存储器。

未来说明方便起见,假设上述各段的时间都是相等的(即每段都为一个时间单元),于是可得下图所示的指令六级流水时许。在这个流水线中,处理器有6个操作部件,同时对6条指令进行加工,加快了程序的执行速度。

图中9条指令若不采用流水线技术,最终出结果需要54个时间单元,采用六级流水线只需要14个时间单元就可出最后结果,哒哒提高了处理器速度。当然,图中假设每条指令都经过流水线的6个阶段,但事实并不总是这样。例如,取数指令并不需要WO阶段。此外,这里还假设不存在存储器访问冲突,所有阶段均并行执行。如FIFOWO阶段都涉及存储器访问,如果出现冲突就无法并行执行,上图示意了所有这些访问都可以同时进行,但多数存储系统做不到这点,从而影响了流水线的性能。

还有一些其他因素也会影响流水线性能,例如,6个阶段时间不等或遇到转移指令,都会出现讨论二级流水时出现的问题。

3、流水线的特点

在处理机中采用流水线方式与采用传统的串行方式相比,具有一下特点:  

1)在流水线中处理的必须是连续任务,只有连续不断的提供任务才能充分发挥流水线的效率。例如。要是浮点加法器充分发挥作用,需要连续提供浮点加法运算。然而,由于程序本身的原因和程序设计过程中人为造成的一些原因,入数据相关等,不可能为浮点加法器连续的提供同一种操作。因此,在采用流水线工作方式的处理器中,特别是当流水线的级数较多时,要在软件和硬件等多方面为流水线提供连续的任务,以提高流水线的效率。  

2)把一个任务分解成几个有联系的子任务,每个任务由一个专门的功能部件来实现。因此,流水线实际上是把一个大的功能部件分解为多个独立的功能部件,并依靠多个功能部件并行工作来缩短程序的执行时间。在流水线中,一个子任务通常称为一个子过程,或者一个功能段。  

3)在流水线每一个功能部件后面都要有一个缓冲寄存器,或称为锁存器等,用于保存本段执行的结果。这是因为流水线中每一段的延迟一般都不可能相等,因此,在段与段之间传递子任务时,必须要通过缓冲寄存器。当某一个功能段的时间变化范围比较大的时候,要设置多个缓冲寄存器。  

4)流水线中各个段要尽量匀称,即时间要求尽量相等,否则将容易引起“阻塞”、“断流”等问题。执行时间最长的段将成为整个流水线的“瓶颈”,这时,流水线中各段将受到限制而不能充分发挥作用。只有当整个流水线完全充满时,整个流水线的效率才能得到充分的发挥。  为了设计出高效率的流水线,要充分注意上述问题。

4、影响流水线性能的因素

要使流水线具有良好的性能,必须设法使流水线能畅通流动,即必须做到充分流水,不出现断流。然而在实际流水中会出现三种相关:结构相关、数据相关、控制相关,这三个相关使流水线充分流水很难实现。

1)结构相关

结构相关是指当指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突时产生的。

通常,大多数机器都是将指令和数据保存在同一存储器中,且只有一个访问口,如果在某个时钟周期内,流水线既要完成某条指令对操作数的存储器访问操作,又要完成另一条指令的取指操作,这就会发生访存冲突。这就是结构相关。

解决访存冲突的一个办法停顿,另一种是设置两个独立的存储器分别存放操作数和指令,以免取指令和取操作数冲突。

2)数据相关

数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面的指令产生的结果时发生的。例如,流水线要执行以下两条指令:

这里第二条SUB指令中R1的内容必须时第一条ADD指令的执行结果。可见正常的读写顺序是先由ADD指令写入R1,再由SUB指令来读R1。在非流水线时,这种先写后读的顺序时自然维持的。但在流水线时,由于重叠操作,使读写的先后顺序关系发生了变化,如下表所示。

由表可见,在第5个时钟周期,ADD指令方可将运算结果写入R1,但后继SUB指令在第3个时钟周期就要从R1中读数,使先写后读的顺序变为先读后写,发生了先写后读(RAW)的数据相关冲突。如果不采取相应的措施,按商标的读写顺序,就会使操作结果出错。解决这种数据相关的方法可以采用后推法,即遇到数据相关时,就停顿后续指令的运行,直至前面指令的结果已经产生。

在按序流动的流水线中,只可能出现写后读相关。在非按序流动的流水线中,由于允许后进入流水线的指令超过先进入流水线的指令而先流出流水线,则既可能发生写后读相关,还可能发生读后写相关和写后写相关。

3)控制相关

控制相关是当流水线遇到转移指令引起的。统计表明,转移指令约占总指令的四分之一左右,比起数据相关,它会使流水线丧失更多的功能。当转移发生时,将使流水线的连续流动收到破坏。当执行转移指令时,根据是否发生转移,它可能将程序计数器PC内容改变成转移目标地址,也可能只是使PC加上一个增量,指向下一条指令的地址。下图示意了条件转移的效果。

这里使用了上述程序,并假设指令3时一条条件转移指令,即指令3必须待指令2的结果出现后才能决定下一条指令是4还是15。由于结果无法预测,此流水线继续预取指令4,并向前推进。当最后结果满足条件时,发现对第4567条指令所做的操作全部报废。在第8个时间单元,指令15进入流水线。在时间单元912之间没有指令完成,这就是由于不能预测转移条件而带来的性能损失。

解决办法:

  • 尽早判别转移是否发生,生成转移目标地址

  • 预取两个方向上的目标指令

  • 提高转移方向的猜准率

5、流水线性能

流水线性能通常用吞吐率、加速比和效率三项指标衡量。

吞吐率  

吞吐率是指在单位时间内流水线所完成的任务数量或者输出的结果数量。即:                             

                                                     

式中,n为任务数,kT是处理完成n个任务做用的时间。本式为计算吞吐率最基本的公式。有的时候我们还需要求一条流水线的最大吞吐率:

式中为第k个子过程所花费的时间。最大吞吐率受限于流水线中最慢子过程即瓶颈子过程所需要的时间。为了提高流水线的最大吞吐率,首先要找出瓶颈,然后设法消除此瓶颈。消除瓶颈有两种办法,一是将瓶颈子过程再细分,另一种办法是通过重复设置多套瓶颈段并联,让他们交叉进行。后一种方法需要解决好在各并行子过程之间的任务分配合同步控制,比起瓶颈子过程再细分控制要复杂、设备量要多一些。

加速比

完成一批任务,不使用流水线所花的时间与使用流水线所用时间直比即为流水线的加速比。如果不使用流水线,即顺序执行所用时间为0T,使用流水线的执行时间为KT,则流水线的加速比为:

这是计算流水线加速比的基本公式。

效率

流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务所占的时空区域与k个功能区域所占时空区域之比。因此,流水线的效率包含有时间和空间两方面的因素。实际上,n个任务所占的时空区域就是顺序执行n个任务所用的总的时间。而一条k段流水线完成n个任务总的时空区域为,其中是流水线完成n个任务所用的总时间。则一条k段流水线的效率可表示为:

此式是计算流水线效率的一般公式。  如果流水线各段执行时间均相等,且输入的n个任务是连续的,则一条k段流水线的效率为:

从流水线的时空图上来看,上式分母部分是完成n个任务所用时间与k个功能段所围成的总面积,而分子部分则是k个功能段实际所占有的面积。因此,利用时空图来计算流水线的效率十分方便。

四、互动及练习

本次课采用提问的互动方式:

1、什么是流水线?

请同学们先谈谈自己的想法,然后引入流水线的概念、流水线的原理,在讲解这部分内容时要注意结合身边的案例,如企业生产流水线,有助于学生更好的理解流水线的原理。

2、影响流水线性能的因素

让同学们自己结合流水线的各个环节来分析讨论,然后谈谈自己的想法,通过学生的分析理解来引入这部分知识。

 

 

2中断系统的工作原理

  1. 一、知识要点

 1、引起中断的因素

2、中断系统需解决的问题

3、中断请求标志和中断判优逻辑

4、中断服务程序入口地址的寻找

5、中断响应

6、中断屏蔽技术

二、教学安排

首先,介绍引起中断的因素,然后依次介绍中断系统需解决的问题、中断请求标志和中断判优逻辑、中断服务程序入口地址的寻找、中断响应,这些都是产生和处理中断需要做的事情,最后讲解中断屏蔽技术,以中断屏蔽来改变中断的处理优先级。

三、教学内容

1、引起中断的因素

中断装置和中断处理程序统称为中断系统。

中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。

不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。中断是CPU对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点成为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

中断源是指能够引起中断的原因。一台处理机可能有很多中断源,但按其性质和处理方法,大致可分为如下五类。

① 机器故障中断。

② 程序性中断。现行程序本身的异常事件引起的,可分为以下三种:一是程序性错误,例如指令或操作数的地址边界错,非法操作码和除数为零等;二是产生特殊的运算结果,例如定点溢出;三是程序出现某些预先确定要跟踪的事件,跟踪操作主要用于程序调试。有些机器把程序性中断称为“异常”,不称为中断。

③ 输入-输出设备中断。

④ 外中断。来自控制台中断开关、计时器、时钟或其他设备,这类中断的处理较简单,实时性强。

⑤ 调用管理程序。用户程序利用专用指令“调用管理程序”发中断请求,是用户程序和操作系统之间的联系桥梁。

2、中断系统需解决的问题

各中断源如何向CPU提出中断请求。

‚当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求。

ƒCPU在什么条件、什么时候、以什么方式来响应中断。

„CPU响应中断后如何保护现场。

…CPU响应中断后,如何停止原程序的执行而转入中断服务程序的入口地址。

†中断处理结束后,CPU如何恢复现场,如何返回到原程序的间断处。

‡在中断处理过程中又出现了新的中断请求,CPU该如何处理。

要解决上述7个问题,只有在中断系统中配置相应的硬件和软件,才能完成中断处理任务。

3、中断请求标志和中断判优逻辑

1)中断请求标记

为了判断时哪个中断源提出请求,在中断系统中必须设置中断请求标记触发器,简称中断请求触发器,记作INTR。当其状态为“1”时,表示中断源有请求。这种触发器可集中设在CPU内,组成一个中断请求标记寄存器,如下图所示。

图中12345,…,n分布对应掉点、过热、主存读写校验错、阶上溢、非法除法……打印机输出等中断源的中断请求触发器,其中任意一个触发器为1,即表明对应的中断源提出了中断请求。显然,中断请求触发器越多,说明计算机处理中断的能力越强。

2)中断判优逻辑

任何一个中断系统,在任一时刻,只能响应一个中断源的请求。但许多中断源提出请求都是随机的,当某一时刻有多个中断源提出中断请求时,中断系统必须按其优先顺序予以响应,这称为中断判优。各中断源的优先顺序时根据该中断源若得不到及时响应,致使机器工作出错的严重程度而定的。例如,电源掉电对计算机工作影响程度最大,优先等级为最高。又如定点溢出对机器正常工作影响也很大,若不及时响应,将使计算机一切运行均无效,故它的优先等级也较高。

中断判优可用硬件实现,也可用软件实现。

硬件排队

硬件排队又分两种。一种为链式排队器,对应中断请求触发器分散在各个接口电路中的情况,这在第5章已经讲过。另一种排队器设在CPU内,如下图所示,图中假设其优先顺序按1234由高向低排列。这样,当最高优先级的中断源有请求时INTR1=1,就可封住比它级别低的中断源的请求。

‚软件排队

软件排队时通过编写查询程序实现的,其程序框图如下图所示。程序按中断源的优先等级,从高至低逐级查询各中断源是否有中断请求,这样就可以保证CPU首先响应级别高的中断源的请求。

4、中断服务程序入口地址的寻找

由于不同的中断源对应不同的中断服务程序,故准确找到服务程序的入口地址是中断处理的核心问题。通常有两种方法寻找入口地址:硬件向量法和软件查询法。

1)硬件向量法

硬件向量法就是利用硬件产生向量地址,再由向量地址找到中断服务程序的入口地址。向量地址由中断向量地址形成部件产生,这个电路可分散设置在各个接口电路中,也可设置在CPU中,如下图所示。

由向量地址寻址中断服务程序的入口地址通常采用两种办法,一种如下图中左图所示,在向量地址内存放一条无条件转移指令,CPU响应中断时,只要将向量地址(如12H)送至PC,执行这条指令,便可无条件转向打印机服务程序的入口地址200。另一种是设置向量地址表,如下图中右图所示。该表设在存储器内,存储单元的地址为向量地址,存储单元的内容为入口地址,例如图中的12H13H14H为向量地址,200300400为入口地址,只要访问向量地址所指示的存储单元,便可获得入口地址。

硬件向量法寻找入口地址速度快,在现代计算机中被普遍采用。

2)软件查询法

用软件寻找中断服务程序入口地址的方法称为软件查询法,其框图如上面的软件排队框图。由图中可见,当查到某一中断源有中断请求时,接着安排一条转移指令,直接指向此中断源的中断服务程序入口地址,机器便能自动进入中断处理。至于各中断源对应的入口地址,则由程序员事先确定。这种方法不涉及硬件设备,但查询时间较长。计算机可具备软、硬件两种方法寻找入口地址,使用户使用更方便、灵活。

5、中断响应

CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。CPU中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。然后,再加返回指令RETIRETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。

中断隐指令

CPU响应中断后,即进入中断周期。在中断周期内,CPU要自动完成一系列操作,具体如下:

1)保护程序断点

保护程序断点就是要将当前程序计数器PC的内容保存包存储器中。它可以存在存储器的特定单元内,也可以存入堆栈。

2)寻找中断服务程序的入口地址

由于中断周期结束后进入下条指令的取指周期,因此在中断周期内必须设法找到中断服务程序的入口地址。由于入口地址you两种方法获得,因此在中断周期内也有两种方法寻找入口地址。

其一,在中断周期内,将向量地址送至PC,使CPU执行下一条无条件转移指令,转至中断服务程序的入口地址。

其二,在中断周期内,将软件查询入口地址的程序首地址送至PC,使CPU执行中断识别程序,找到入口地址。

3)关中断

CPU进入中断周期,意味着CPU响应了某个中断源的请求,为了确保CPU响应后所需做的一系列操作不至于又受到新的中断请求的干扰,在中断周期内必须自动关中断,以禁止CPU再次响应新的中断请求。

上述保护断点、寻找入口地址和关中断这些操作都是在中断周期内由一条中断隐指令完成的。所谓中断隐指令,即在机器指令系统中没有的指令,它是CPU在中断周期内由硬件自己完成的一条指令。

6、中断屏蔽技术

1)多重中断

CPU在响应处理中断过程中,允许响应处理更高级别的中断请求,这种方式称为多重中断。

实现方法:在中断服务程序的起始部分用一段程序来保存现场、送新屏蔽字以屏蔽同级别和低级别的中断请求、然后开中断,这样CPU就可响应更高级别的中断请求,实现多重中断。

2)实现多重中断

对应于各中断级设置相应的屏蔽位。只有屏蔽位为1,该中断级才能参加中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。有些机器针对某些中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。

总结为两点:

提前设置开中断指令

‚优先级别高的中断源有权中断优先级别低的中断源。

3)屏蔽触发器与屏蔽字

下图示出了程序中断接口电路中完成触发器D、中断请求触发器INTR和屏蔽触发器MASK三者之间的关系。当该中断源被屏蔽时(MASK1),此时即使D1,中断查询信号到来时刻只能将INTR“0”CPU接收不到该中断源的中断请求,即它被屏蔽。若该中断源未被屏蔽(MASK0),当设备工作已完成时(D1),中断查询信号则将INTR“1”,表示该中断源向CPU发出中断请求,该信号送至排队器进行优先级判断。

如果排队器集中设在CPU内,加上屏蔽条件,就可组成具有屏蔽功能的排队器,如下图所示。

显然,对应每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成一个屏蔽寄存器,屏蔽寄存器的内容称为屏蔽字。屏蔽字与中断源的优先级别是一一对应的,如下表所示。

4)屏蔽技术可改变优先级

严格地说,优先级包含响应优先级和处理优先级。响应优先级是指CPU响应各中断源请求的优先次序,这种次序往往是硬件线路已设置好的,不便于改动。处理优先级是指CPU实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。

采用了屏蔽技术后,可以改变CPU处理各中断源的优先登机,从而改变CPU执行程序的轨迹。例如,ABCD4各中断源的优先级别按AàBàCàD降序排列,根据这一次序,CPU执行程序的轨迹如下图所示。当4各中断源同时提出请求时,处理次序与响应次序一致。

在不改变CPU响应中断的次序下,通过改变屏蔽字可以改变CPU处理中断的次序。例如,将上述4各中断源的处理次序改为AàDàCàB,则每个中断源所对应的屏蔽字发生了变化,如下表所示。表中原屏蔽字对应AàBàCàD的响应顺序,新屏蔽字对应AàDàCàB的处理顺序。

在同样中断请求的情况下,CPU执行程序的轨迹发生了变化,如下图所示。

采用了屏蔽技术后,在中断服务程序中需设置新的屏蔽字,流程图如下图所示,与第5章的中断服务程序相比,增加了置屏蔽字和恢复屏蔽字两部分内容。而且为了防止在恢复现场过程中又出现新的中断,在恢复现场前又增加了关中断,恢复屏蔽字之后,必须再次开中断。

                                                                  

四、互动及练习

本次课采用提问的互动方式:

1、引起中断的因素有哪些?

让同学们先谈谈自己的看法,然后根据学生的回答来修正补充,讲解中断的因素,要注意这些因素之间的区别。

2、怎么寻址中断服务程序入口地址?

先让学生自己讨论分析,然后谈谈自己的看法,引出中断向量的概念,以及如何通过中断向量找到入口地址,利用中断向量找入口地址要注意区分软件方法和硬件方法的区别。