计算机组成原理第七章输入输出系统[三]分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
向量地址 ………
Байду номын сангаас
中断请求寄存 器和中断屏蔽 寄存器的关系, 见图7.9
器
INTR1
INTR2
INTR3
设备1 设备3 设备2 设备1中 寄存器 断服务程 1—屏蔽 0—开放 序中的屏 中断屏蔽寄 蔽字(响 设备1 设备2 设备3 设备4 存器 应优先级 1 1 1 1 别=处理 优先级别)图7.13 独立请求方式的优先级排队逻辑
二 、中断响应
1、什么叫中断响应(Interrupt Response) • 处理机从发现中断请求、中止现行程序 到调出中断处理程序的过程。 • 其中的实质性工作是中断请求设备的识 别和程序的切换。
2、中断响应的条件(以下同时满足则进入中断响 应周期) (1)中断源有中断请求,其中断请求触发器处于“1” 状态; (2)接口中未对该请求设屏蔽,即中断屏蔽触发器 为“0”; (3)CPU允许中断,即CPU内部设置的中断允许触 发器EINT为开放状态(开中断); (4)中断请求的级别高于当前程序的优先级; (5)一条指令执行完毕(如图7.16所示).
回顾:
Q
。 1 。 & ○ Q
D
INTR D∧
Q
Q MASK
。
来自CPU的中 断查询信号
图7.9 接口电路中D、INTR、MASK和中断查询信号的关系
向量地址形成部件(编码器)
排 队
与 与 与 INTR1‘ INTR2‘ INTR3‘ INTR4‘
向量地址 ………
中断请求寄存 器和中断屏蔽 寄存器的关系, 见图7.9
表7.1 中断优先级与屏蔽字的关系 屏蔽字 优先级 B C A D 1 1 1 1 A 1 1 0 1 B 1 0 C 0 1 D 0
0
0
1
2、屏蔽技术可改变优先等级 中断响应优先级:指CPU响应各中断源请求 的优先次序,这种次序是由硬件(排队判优线 路) 决定的. 中断处理优先级:指CPU对各中断请求处理 的先后次序. 如不使用屏蔽技术,响应的优先次序就是处 理的优先次序.
器
INTR1 设备1
INTR2 设备2
设备3
INTR3
INTR4 中断请求 设备4
寄存器
用户程序 运行当中 设备1 0 的屏蔽字
1—屏蔽 0—开放
设备2 0 设备3 0 设备4 0
中断屏蔽寄 存器
图7.13 独立请求方式的优先级排队逻辑
向量地址形成部件(编码器)
排 队
与 与 与 INTR1‘ INTR2‘ INTR3‘ INTR4‘
取指周期
有间址吗
是 间址周期
否 执行周期
有中断吗
是 中断周期
否
图7.16
指令周期的流程
7.3.3 程序中断的处理过程
中断的过程一般分为几个阶段:中断请求、 中断响应、中断判优、中断服务和中断返回. 一、中断请求信号的建立与传送 某个中断源在准备就绪,且相应的中断屏蔽 触发器在非屏蔽状态(MASK=0),其中断请求触 发器(INTR)被置“1”, 通过相应的信号传送电路 (公共传送线路、独立请求线等)将其中断请求信 号送往CPU.
硬件 直接 实现 (相当 于执 行了 一条 机器 指令, 称为 隐指 令)
响应中断(发INTA信号) 关中断 保护断点,找中断源
转移到中断服务子程序 … …
图7.17 中断响应周期完成的工作
三、中断服务处理
不同设备的服务程序是不同的,但其 程序流程类似.一般中断服务程序的流 程包括:保护现场、 中断服务、 恢复 现场和中断返回. 1、保护现场
INTR4 中断请求 设备4
向量地址形成部件(编码器)
排 队
与 与 与 INTR1‘ INTR2‘ INTR3‘ INTR4‘
向量地址 ………
中断请求寄存 器和中断屏蔽 寄存器的关系, 见图7.9
器
INTR1
INTR2
INTR3
设备1 设备3 设备2 设备4中 寄存器 断服务程 1—屏蔽 0—开放 序中的屏 中断屏蔽寄 蔽字(响 设备1 设备2 设备3 设备4 存器 应优先级 0 0 0 1 别=处理 优先级别)图7.13 独立请求方式的优先级排队逻辑
图7. 2 1中断处理过程示意图
(P.303) 第8题:设某机有5级中断:L0,L1,L2,L3, L4,其中断响应优先次序为:L0最高,L1次之,L4最低。 现在要求将中断处理次序改为L1→L3→L0→L4→L2,试问: (1)表8.2中(见下页)各级中断处理程序的各级中断屏蔽值 如何设置(每级对应一位,该位为“0”表示允许中断,该位为 “1”表示中断屏蔽)? 解:1 中断处理程序级别 L0 L1 L2 L3 L4 中断处理级屏蔽位 L0 L1 L2 L3 L4 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 0 1
3、恢复现场
三、中断服务处理
中断服务程序的 结尾部分 含义是将原程序中的“现场”恢复到原来 的寄存器中 具体做法是,用取数指令或出栈指令,将保 存在存储器(或堆栈)中的信息,送到原来的 寄存器
4、中断返回 中断服务程序的最后一条指令为中断返回 指令 其作用是将原程序断点处内容(PC、PSW) 送回原寄存器,以便继续执行原程序
3、中断响应周期与中断隐指令
中断响应周期(INTC):指响应中断开始至执 行服务程序之前CPU所处的一个机器周期 状态. CPU一旦进入中断周期,即执行一条中断隐 指令. 中断隐指令, 它类似于一条指令,但在 机器 指令系统中并不存在,是CPU在中断周期由 硬件自动完成的一条指令.
3、中断响应周期与中断隐指令
INTR4 中断请求 设备4
向量地址形成部件(编码器)
排 队
与 与 与 INTR1‘ INTR2‘ INTR3‘ INTR4‘
向量地址 ………
中断请求寄存 器和中断屏蔽 寄存器的关系, 见图7.9
器
INTR1
INTR2
INTR3
设备1 设备3 设备2 设备3中 寄存器 断服务程 1—屏蔽 0—开放 序中的屏 中断屏蔽寄 蔽字(响 设备1 设备2 设备3 设备4 存器 应优先级 0 0 1 1 别=处理 优先级别)图7.13 独立请求方式的优先级排队逻辑
(2)若这5级中断同时都发出中断请求,按更改后的次序画出 进入各中断处理程序的过程示意图. 中断服务 程序
L4 L3 L2 L1 L0
现行程序
1-5同时 提出
图7.22 CPU运行程序的轨迹
中断请求
例:某计算机系统共有5级中断,其中断响应优先级从高到低为
1
2 3 4 5,先按如下规定修改:各级中断处理时均屏蔽本级中断, 且处理1级中断时屏蔽2、3、4、5级中断;处理2级中断时屏蔽3、 4、5级中断;处理4级中断时不屏蔽其它中断;处理3级中断时屏蔽 4级和5级中断;处理5级中断时屏蔽4级中断.试问中断处理优先级 (从高到低)顺序如何排列?并给出各级中断处理程序的中断屏蔽 字?
中断请求 主程序
B、C→
A
B
C D
D→ A→
图7.20 多重中断处理示意图
为保证级别低的中断源不干扰级别高的中断源的中 断处理过程,特采用屏蔽技术.
三、屏蔽技术
1、屏蔽触发器与屏蔽字:接口中每级(n级)中断源均 有各自的中断屏蔽触发器(共n个),用来决定是否屏 蔽该中断源提出的中断请求,它们组成n位的中断屏 蔽寄存器,其内容,称之为屏蔽码(屏蔽字). 屏蔽字与中断源的优先级别是一一对应的.见表7.1.
含义是将中断服务程序中用到的通用寄 存器的内容保存起来. 具体做法是,在中断服务程序起始部分安 排若干条存数指令,将寄存器的内容存至 存储器中保存,或用进栈指令将现场内容 压入堆栈.
三、中断服务处理
2、中断服务
中断服务程序的主体部分 对不同的中断源,中断服务操作不同 若中断源为打印机,中断服务程序中的 指令为数据传送指令,将CPU中需要打印 的字符代码,送入接口中的数据端口,供打 印之用.
(1) 中断响应优先级与中断处理优先级相同的情况下屏蔽 码的设置 例:设某机中有4级响应优先权,由高到低为 1→2→3→4,每级对应一位屏蔽码.如果中断处理优先级和 中断响应优先级相同,屏蔽码的设置如下所示: 表7.2 程序优先级别与屏蔽码 程序级别 第1级中断 第2级中断 第3级中断 第4级中断 用户程序 屏蔽码 1级 2级 3 级 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 备注 4级 1 1 1 1 0 0——开放 1——屏蔽
中断隐指令完成以下操作: (1) 发中断响应信号(INTA) (2) 关中断(关闭中断允许触发器EINT,使EINT置 “ 0 ”) 为保护断点期间不被更高级的中断请求所打断, 保证被中断的程序在中断服务程序执行完后能接着 正确地执行下去. (3) 保护程序断点 为了使得切换前后的程序能正确运行,将程序 状态字PSW和PC的内容压入堆栈. (4) 寻找服务程序入口地址 通过硬件自动生成向量地址,进而找到中断向 量(即中断服务程序的入口地址),将其送入PC. 详见 图7.17.
INTR4 中断请求 设备4
向量地址形成部件(编码器)
排 队
与 与 与 INTR1‘ INTR2‘ INTR3‘ INTR4‘
向量地址 ………
中断请求寄存 器和中断屏蔽 寄存器的关系, 见图7.9
器
INTR1
INTR2
INTR3
设备1 设备3 设备2 设备2中 寄存器 断服务程 1—屏蔽 0—开放 序中的屏 中断屏蔽寄 蔽字(响 设备1 设备2 设备3 设备4 存器 应优先级 0 1 1 1 别=处理 优先级别)图7.13 独立请求方式的优先级排队逻辑
INTR4 中断请求 设备4
例:如果CPU在执行某一个正常程序时出现了1、2、4 级的中断请求,在执行4级中断的中断处理程序的过程当中, 又出现了3级中断请求,在执行3级中断的中断处理过程中, 又出现了1级中断请求,画出CPU执行程序的轨迹图. 主程序 ⑴ ⑵ ⑷ 中断服务程序 1 2 3 4
(3) 注意:是在主程序 (1)
总结:中断过程示意图
CPU检测到中断请求并决定 响应此请求 在本指令执行完毕进入中断 隐指令流程
中断服务程序
主程序 …… 保存现场信息; 保存旧屏蔽字并 设置新屏蔽字; 开中断
关中断 保存断点 判断优先级别最高的中断源
中断服务程序入口地址 转中断服务程序
…… ……
执行中断服务 子程序
关中断;恢复旧 屏蔽字及其它现 场信息;开中断; 返回
执行完一条指令后, 才转去执行相应的 中断服务程序。原 因见P276图8.3或 图7.19。
(2)改变中断处理优先级的情况下屏蔽码的设置 如果采用中断屏蔽技术来改变中断处理的次序,如将上 例中处理次序改为1→4→3→2,只需将中断屏蔽码改为:
表7.3 修改中断处理次序屏蔽码
程序级别 第1级中断 第2级中断 第3级中断 第4级中断 用户程序 屏蔽码 1级 2级 3 级 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 备注 4级 1 0 0 1 0 0——开放 1——屏蔽
主程序
一级中断 二级中断 三级中断 服务程序 服务程序 服务程序
第一次中 断请求
优先级别 优先级别 更高的 更高的 中断请求 中断请求
图7.18 多重中断示意图
返回
单重中断
区别:“开中 断”的设置 时间不同 取指令
执行指令 中断否 N Y 中断响应 关中断 保存断点
中断向量→PC
图 多重中断 单 重 中 断 和 多 重 中 断 服 务 程 序 流 程 7.19
7.3.4 中断屏蔽技术
一、 概念 多重中断:计算机在处理中断的过程中,有可 能出现新的中断请求.此时,如果CPU暂停现 行的中断服务程序,转去执行新的中断请求, 称为中断嵌套,或多级中断,如图7.18所示. 单重中断:若CPU在执行中断服务程序时,对 新的中断请求不予理睬,称为单级中断. 两种中断的处理流程略有不同,见图7.19.
中 断 周 期 中 断 服 务 程 序 取指令 执行指令 中断否 N Y 中断响应 关中断 保存断点
中断向量→PC
中 断 周 期 中 断 服 务 程 序
保护现场
保护现场
设置新屏蔽字、开中断
设备服务 恢复现场
开中断 中断返回
设备服务
关中断、恢复现场、 恢复屏蔽字、开中断 中断返回
返回
二、实现多重中断的条件 提前设置“开中断”指令(见图7.18) 优先级别高的中断源有权中断优先级别低 的中断源 例如:有A、B、C、D四个中断源,优先级为 A→B→C→D. 中断服务程序