第三节中断方式及接口 5.3.1中断基本概念 1.定义 CPU暂时中止现行程序的执行,转去执行为某 个随机事态服务的中断处理程序。处理完毕后自 动恢复原程序的执行。 2实质与特点 (1)实质 方法:保存断点,保护现场; 程序切换 恢复现场,返回断点。 时间:一条指令结束时切换。 保证程序的完整性
第三节 中断方式及接口 5.3.1 中断基本概念 1.定义 CPU暂时中止现行程序的执行,转去执行为某 个随机事态服务的中断处理程序。处理完毕后自 动恢复原程序的执行。 2.实质与特点 (1)实质 程序切换 方法:保存断点,保护现场; 恢复现场,返回断点。 时间:一条指令结束时切换。 保证程序的完整性
(2)特点 随机发生的事态(按键、故障) 随机性有意调用,随机请求与处理的事态(调用打印机 随机插入的事态(软中断指令插入程序任何位置) 注意中断与转子的区别。 3中断分类 (1)硬件中断与软中断 由软中断指令引发中断 由硬件请求信号引发中断 (2)内中断与外中断 中断源来自主机内部中断源来自主机外部 (3)可屏蔽中断与非屏蔽中断 可通过屏蔽字屏蔽该 该类请求与屏蔽字无 类请求;关中断时不 关;请求的响应与开/ 响应该类请求。 关中断无关
(2)特点 随机性 随机发生的事态 注意中断与转子的区别。 由硬件请求信号引发中断 (按键、故障) 有意调用,随机请求与处理的事态(调用打印机) 随机插入的事态(软中断指令插入程序任何位置) 3.中断分类 (1)硬件中断与软中断 由软中断指令引发中断 (2)内中断与外中断 中断源来自主机内部 中断源来自主机外部 (3)可屏蔽中断与非屏蔽中断 可通过屏蔽字屏蔽该 类请求;关中断时不 响应该类请求。 该类请求与屏蔽字无 关;请求的响应与开/ 关中断无关
(4)向量中断与非向量中断 由软件提供服务程序 由硬件提供服务程序入口地址入口地址 4.中断典型应用 (1)管理中、低速/0操作 (2)处理故障 (3)实时处理 某事件出现的实际时间内及时处理,不是批量处理。 利用时钟中断定时采集参数,检测,调节。 (4)人机对话 (5)多机通信 5中断系统的组成 中断系统的硬、软界面 (1)软件:服务程序、中断向量表 (2)硬件「接口方面:请求、传递、判优逻辑 CPU方面:响应逻辑
由硬件提供服务程序入口地址 4.中断典型应用 (4)向量中断与非向量中断 (1)管理中、低速I/O操作 某事件出现的实际时间内及时处理,不是批量处理。 (2)处理故障 服务程序、中断向量表 由软件提供服务程序 入口地址 (3)实时处理 (4)人机对话 利用时钟中断定时采集参数,检测,调节。 (5)多机通信 5.中断系统的组成 (1)软件: 中断系统的硬、软界面 (2)硬件 接口方面:请求、传递、判优逻辑 CPU方面:响应逻辑
5.3.2中断全过程(外中断) 1.中断请求的提出与传递 (1)如何产生中断请求? 外设工作完成:“完成”标志为1 CPU允许请求:“屏蔽”标志为0 先“屏蔽”,后请 先请求,后“屏蔽” 求 有效请求 有效请求 请求触发器 请求 屏蔽 请求触发器 完成屏蔽 完成 CP (2)如何传送中断请求? 1)使用单独请求线 2)使用公共请求线 请求 公共请求 cPU请求 CPU vO 1O 1O
1.中断请求的提出与传递 (1)如何产生中断请求? “完成”标志为1 1)使用单独请求线 外设工作完成: 5.3.2 中断全过程(外中断) CPU允许请求: “屏蔽”标志为0 先“屏蔽”,后请 求 先请求,后“屏蔽” 完成 请求触发器 屏蔽 CP 有效请求 完成 请求触发器 屏蔽 CP 请求 有效请求 (2)如何传送中断请求? CPU 请求 请求 I/O I/O 2)使用公共请求线 CPU 公共请求 I/O I/O
2中断判优 (1)优先顺序故障、DMA、外中断(输入、输出) (2)CPU现行程序与外设请求的判优 1)cPU设置允许中断标志「二1,开中断 =0,关中断(模型机采用) 2)CPU设置程序状态字的优先级字段 为现行程序赋予优先级「<外设请求优先级,响应 ≥外设请求优先级,不响应 (3)各外设请求的判优 1)软件判优 由程序查询顺序确定优先级。可灵活修改优先级。 2)硬件判优 例.中断控制器判优 中断控制器(如8259)集中解决请求信号的接收、屏蔽、判 优、编码等问题
2.中断判优 (1)优先顺序 故障、DMA、外中断 (2)CPU现行程序与外设请求的判优 为现行程序赋予优先级 1)CPU设置允许中断标志 (输入、输出) =1,开中断 1)软件判优 由程序查询顺序确定优先级。 <外设请求优先级, 例.中断控制器判优 响应 =0,关中断 2)CPU设置程序状态字的优先级字段 ≥外设请求优先级,不响应 (3)各外设请求的判优 可灵活修改优先级。 2)硬件判优 中断控制器(如8259)集中解决请求信号的接收、屏蔽、判 优、编码等问题。 (模型机采用)
D7~D0 中断号寄存器」 INT 优先级高 优 IRQO INTA 先 07 0 RR:0001010000010100 中断服务寄存器 级裁决器 中断请求寄存器 MR:0000010000000000 IRQ7 SR:0000100000001000 优先级低 不发|NT发INT 中断屏蔽寄存器 8259 中断请求→8259(未屏蔽的请求判优,生成相应中断号) 公共请求|NT→→cPU 中断源的序号 (PU响应后,取回中断号,转入相应服务程序。) 3中断响应 (1)响应条件
中断请求 8259 8259 D7~D0 中断屏蔽寄存器 中断号寄存器 中 断 请 求 寄 存 器 中 断 服 务 寄 存 器 优 先 级 裁 决 器 INT INTA IRQ0 IRQ7 (未屏蔽的请求判优,生成相应中断号) 公共请求INT CPU (CPU响应后,取回中断号,转入相应服务程序。) 3.中断响应 (1)响应条件 中断源的序号 IRR:00010100 7 0 IMR:00000100 ISR:00001000 不发INT 00010100 7 0 00000000 00001000 发INT 优先级高 优先级低
外设有请求,且未被屏蔽;CPU开中断;一条指令(非停机 指令)结束;无故障、DMA等优先级更高的请求。 (2)如何获取中断服务程序的入口地址 1)非向量中断 将服务程序入口组织在查询程序中;CPU响应时执行查询 程序,查询中断源,转入相应服务程序 2)向量中断 将服务程序入口(中断向量)组织在中断向量表中;CPU 响应时由硬件直接产生相应向量地址,按地址查表,取 得服务程序入口,转入相应服务程序。 中断向量:服务程序入口地址、服务程序状态字 中断向量表:存放中断向量的表(一段存储区) 向量地址:访问向量表的地址(指向中断向量的首址) 例1.模型机向量表(从主存0#单元开始安排) M按字编址。一个入口地址16位,占一个编址单元
外设有请求,且未被屏蔽; 1)非向量中断 将服务程序入口组织在查询程序中;CPU响应时执行查询 程序,查询中断源,转入相应服务程序。 (2)如何获取中断服务程序的入口地址 CPU开中断;一条指令(非停机 指令)结束;无故障、DMA等优先级更高的请求。 2)向量中断 将服务程序入口(中断向量)组织在中断向量表中;CPU 响应时由硬件直接产生相应向量地址,按地址查表,取 得服务程序入口,转入相应服务程序。 中断向量:服务程序入口地址、服务程序状态字 中断向量表:存放中断向量的表(一段存储区) 向量地址:访问向量表的地址(指向中断向量的首址) 例1.模型机向量表 M按字编址。一个入口地址16位,占一个编址单元。 (从主存0#单元开始安排)
向量表 个中断服务程序状态字0#入口地址C 0 16位,也占一个编址单元。1#中断PSW00号中断源 向量地址=中断号×2 2#入口地址1 1号中断源 3#中断PSW1 例2.BMPG向量表 向量表 (从主存0#单元开始安排)0#入口偏移0 M按字节编址。一个入 0号中断源 入基址0 口地址32位,占4个编 址单元。 4#入口偏移11号中断源 入基址↑ 向量地址=中断号×4
向量地址 例2.IBM PC向量表 M按字节编址。一个入 口地址32位,占4个编 址单元。 (从主存0#单元开始安排) =中断号×2 0# 向量表 入口偏移0 入口基址0 4# 0号中断源 1号中断源 入口偏移1 入口基址1 向量地址 =中断号×4 0# 向量表 入口地址0 1# 中断PSW 0 0号中断源 1号中断源 入口地址1 中断PSW 1 2# 3# 一个中断服务程序状态字 16位,也占一个编址单元
(3)响应过程 向量中断方式:(发响应信号NTA,进入中断周期 关中断,保存断点 CPU执行中 断隐指令1获得中断号,转换为向量地址 (硬件完成)查向量表 取中断向量,转中断服务程序 4.中断处理 CPU执行中断服务程序。 (1)单级中断:cPU响应后只处理一个中断源的请求,处 理完毕后才能响应新的请求。 (2)多重中断:在某次中断服务过程中,允许响应处理 更高级别的中断请求
向量中断方式: (3)响应过程 发响应信号INTA,进入中断周期 关中断,保存断点 获得中断号,转换为向量地址, 查向量表 取中断向量,转中断服务程序 CPU执行中 断隐指令 (硬件完成) 4.中断处理 CPU执行中断服务程序。 (1)单级中断:CPU响应后只处理一个中断源的请求,处 理完毕后才能响应新的请求。 (2)多重中断:在某次中断服务过程中,允许响应处理 更高级别的中断请求
单级中断流程: 多重中断流程: 保护现场 外中断: 保护现场 数据传送 具体服务处理 送新屏蔽字、开中断 恢复现场 禁止同 具体服务处理 级或更 开中断、返回」低级别 关中断 开放更’[恢复现场及原屏蔽字 高级别 的请求 开中断、返回
单级中断流程: 保护现场 具体服务处理 恢复现场 开中断、返回 外中断: 数据传送 禁止同 级或更 低级别 的请求, 开放更 高级别 的请求 多重中断流程: 开中断、返回 保护现场 送新屏蔽字、开中断 具体服务处理 关中断 恢复现场及原屏蔽字