目录
程序中断方式简称中断,是指:
在计算机运行过程中,如果发生某种随机事态,CPU 将暂停执行现行程序,转向去执行 中断处理程序,为该随机事态服务,并在服务完毕后自动恢复原程序的执行。
断点:恢复原程序后的后继指令地址。
由中断的含义可知,中断的操作过程涵盖了 程序切换 和 随机性 两大重要特征。
① 实质:程序切换
方法:保存断点,保护现场;恢复现场,返回断点。
时间:在一条指令执行结束时进行切换。—— 保证程序的完整性
② 特点:随机性
注意中断与转子程序的区别:
① 子程序的执行由程序员事先安排,而中断服务程序的执行则是由随机中断事件触发。
② 子程序的执行受主程序或上层程序控制,而中断服务程序一般与被中断的现行程序无关。
③ 一般不存在同时调用多个子程序的情况,但可能发生多个外设同时向 CPU 发出中断服务请求的情况。
中断源:引起中断的原因或事件。
① 硬中断和软中断
硬中断:由硬件请求信号引发的中断,向量地址由中断请求信号产生。
软中断:由软中断指令(INT)引发的中断,向量地址由软中断指令提供的中断号产生。
② 内中断和外中断
内中断:中断源来自主机内部。如:掉电中断、CPU 故障中断、软中断等。
外中断:中断源来自主机外部。如:键盘中断、显示器中断、打印机中断等。
软中断一定是内中断。
③ 可屏蔽中断和非屏蔽中断
可屏蔽中断:CPU 通过屏蔽字屏蔽请求;CPU 关中断,不再响应请求。
非屏蔽中断:与屏蔽字无关;对请求的响应与开/关中断无关。
- ; 中断允许标志位
- IF = 1 ; 开中断
- IF = 0 ; 关中断
(判断题)所有外中断都是可屏蔽中断。(×)
④ 向量中断和非向量中断(常考)
根据中断源获取中断服务程序的入口地址的方式有 向量中断方式 和 非向量中断方式 。
向量中断:由硬件直接提供服务程序入口地址,即依靠硬件通过查询中断向量表来确定入口地址。
非向量中断:由软件查询提供服务程序入口地址,即通过执行 中断服务总程序 来确定入口地址。
基础概念
关系图
应用举例
考察选择题和填空题,其中填空题偏多。
① 模型机的中断向量表。
从主存 2# 单元开始安排,主存按字编址。一个入口地址 16 位,占 1 个编址单元。
向量地址 = 中断号 + 2
② IBM PC 的中断向量表。
从主存 0# 单元开始安排,主存按字节编址。一个入口地址 32 位,占 4 个编址单元。
向量地址 = 中断号 * 4
中断响应
在中断响应周期 IT 内:
读取服务程序入口地址:
中断请求的产生:
① 外部设备有中断请求的需要:可将请求标志设置为 1 。
② CPU 允许请求,且没有屏蔽该中断源:可将屏蔽信号设置为 0 。
如图所示:IRQ 为中断请求信号,TD 为请求标志,TM 为屏蔽信号。
(a) 在中断请求触发器 IRQ 的 D 端进行屏蔽;(b) 在中断请求触发器 IRQ 的 Q 端进行屏蔽。
中断请求的传输:
(1)优先顺序:故障 > 内中断 > DMA > 外中断
这样安排是因为处理故障的紧迫性最高,DMA 请求是要求高速数据传输,高速操作一般应比低速操作优先。
按中断请求要求的数据传输方向,一般原则是输入操作的优先级高于输出操作。这是因为如果不及时响应输入操作请求,则有可能丢失输入信息。输出信息一般可暂存于主存或者缓存之中,如果暂时延缓一些处理,也不致丢失信息。
故基本原则为:高速操作 > 低速操作;输入 > 输出。
(2)CPU 现行程序与外设请求的判优
① CPU 设置 PSW 的中断允许标志位 IF
- ; 中断允许标志位
- IF = 1 ; 开中断
- IF = 0 ; 关中断
② CPU 设置 PSW 的程序优先级字段
(3)各外设请求之间的判优
① 软件判优(软件查询式)
使用公共请求线:
响应中断请求后,先转入查询程序,按优先顺序依次询问各中断源是否提出请求。如果查询到中断源,则转入相应的服务处理程序;如果没有,则继续往下查询。
查询的顺序体现了优先级别的高低,先被询问则优先级更高,改变查询顺序也就改变了优先级。
② 硬件判优(硬件电路式)
a. 使用独立请求线的并行判优逻辑
b. 使用公共请求线的链式判优逻辑
CPU 响应中断请求后,通过硬件电路判断是哪个中断源提出了请求。我们假设是图中的 1 号中断源提出了请求,则分析过程如下:
c. 专用芯片硬件判优 —— 中断控制器(8259)
集中解决请求信号的接收、屏蔽、判优、编码等问题。
(1)中断的响应条件
针对可屏蔽的中断请求,满足下述几个条件,CPU 才能响应中断:
Q:在程序执行过程中,CPU 何时响应中断请求?何时响应 DMA 请求?请说明原因。
在一条指令结束时响应中断请求。因为中断过程是一种程序切换的过程,需要保证程序的完整性。
在一个总线周期结束时响应 DMA 请求。因为 DMA 传送不切换程序,可在一个数据传送完后响应。
(2)中断的响应过程
安排一个过渡周期,位于主程序与中断服务程序之间,为转到中断服务程序做准备。
中断周期 IT 是响应过程的一个专用的过渡周期,在这一周期中 依靠硬件 实现程序切换,即硬件按顺序发一个个微命令来完成。以向量中断方式且单级中断为例:
教材 P355 介绍:
① 关中断:为了保证本次中断响应过程不受外界干扰,CPU 在进入中断周期后,便立即关中断,即设置 PSW[4] = 0 。
② 保存断点。将程序计数器 PC 的内容保存起来,PC 内容为恢复程序后的后继指令地址,称为断点。
③ 获取中断服务程序入口。被批准的中断源接口通过总线向 CPU 送入向量地址。CPU 据此在中断周期中访问中断向量表,从中读取中断服务程序的入口地址。
④ 转向程序运行状态,以开始执行中断服务程序。如组合逻辑控制方式,在中断周期将要结束时形成 1→FT,再切换到取指周期。
主要任务:CPU 执行中断服务程序。
(1)单级中断
(2)多重中断
教材 P356
关于设置新的屏蔽字
(1)寄存器选择电路:对接口寄存器寻址。
(2)命令字寄存器:接收 CPU 发向外设的命令字,转换为相应操作命令送外设。
命令字格式的拟定:用代码表示各种命令。
(3)状态字寄存器:反映设备和接口的运行状态。
(4)数据缓冲器:传送数据,实现缓冲。
(5)控制逻辑
请求信号产生逻辑
电平转换逻辑
串-并转换逻辑(串口)
扩展中断源
(6)公用中断控制器
接收外设请求,判优,送出公共请求 INT 。
接收中断批准 INTA,送出中断号,即中断类型码。
(选择题)中断类型码是经过数据总线传输的。
(1)初始化:设置工作方式、屏蔽字、分配中断类型码等。
由操作系统为每个中断源分配中断码,然后写进中断控制器,该过程只在初始化期间完成。
(2)启动设备(送命令字)。
(3)设备请求中断。
(4)中断控制器汇集各请求,向 CPU 送 INT 。
(5)CPU 响应,发 INTA 。
(6)中断控制器送出中断号。
(7)CPU 执行中断隐指令操作,转中断服务程序。
中断响应即中断隐指令操作。在中断周期 IT 中计算向量地址。