第三节 中断方式及接口
5.3.1 中断基本概念
1.定义
CPU暂时中止现行程序的执行,转去执行为某个随机事态服务的中断处理程序。处理完毕后自动恢复原程序的执行。
2.实质与特点
( 1)实质程序切换方法,保存断点,保护现场;
恢复现场,返回断点。
时间,一条指令结束时切换。
保证程序的完整性。
( 2)特点随机性随机发生的事态注意 中断 与 转子 的区别。
由硬件请求信号引发中断
(按键、故障)
有意调用,随机请求与处理的事态 (调用打印机)
随机插入的事态 (软中断指令插入程序任何位置)
3.中断分类
( 1)硬件中断 与 软中断 由软中断指令引发中断
( 2)内中断 与 外中断中断源来自主机内部 中断源来自主机外部
( 3)可屏蔽中断 与 非屏蔽中断可通过屏蔽字屏蔽该类请求;关中断时不响应该类请求。
该类请求与屏蔽字无关;请求的响应与开 /
关中断无关。
由硬件提供服务程序入口地址
4.中断典型应用
( 4)向量中断 与 非向量中断
( 1)管理中、低速 I/O操作某事件出现的实际时间内及时处理,不是批量处理。
( 2)处理故障服务程序、中断向量表由软件提供服务程序入口地址
( 3)实时处理
( 4)人机对话利用 时钟中断 定时采集参数,检测,调节。
( 5)多机通信
5.中断系统的组成
( 1)软件:
中断系统的硬、软界面
( 2)硬件 接口方面,请求、传递、判优逻辑
CPU方面,响应逻辑
1.中断请求的提出与传递
( 1)如何产生中断请求?
“完成,标志为 1
1)使用单独请求线外设工作完成:
5.3.2 中断全过程(外中断)
CPU允许请求:,屏蔽,标志为 0
先,屏蔽,,后请求先请求,后,屏蔽,
完成请求触发器屏蔽 CP
有效请求完成请求触发器屏蔽
CP
请求有效请求
( 2)如何传送中断请求?
CPU
请求请求
I/O
I/O
2)使用公共请求线
CPU
公共请求
I/OI/O
2.中断判优
( 1)优先顺序 故障,DMA、外中断
( 2) CPU现行程序与外设请求的判优为现行程序赋予 优先级
1) CPU设置允许中断标志
(输入、输出)
=1,开中断
1)软件判优由程序查询顺序确定优先级。
< 外设请求优先级,
例,中断控制器判优响应
=0,关中断
2) CPU设置程序状态字的优先级字段
≥ 外设请求优先级,不响应
( 3)各外设请求的判优可灵活修改优先级。
2)硬件判优中断控制器 (如 8259)集中解决请求信号的接收、屏蔽、判优、编码等问题。
(模型机采用)
中断请求 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
优先级高优先级低外设有请求,且未被屏蔽;
1)非向量中断将服务程序入口组织在查询程序中; CPU响应时执行查询程序,查询中断源,转入相应服务程序。
( 2)如何获取中断服务程序的入口地址
CPU开中断; 一条指令 (非停机指令 )结束; 无故障,DMA等优先级更高的请求。
2)向量中断将服务程序入口 (中断向量 )组织在 中断向量表 中; CPU
响应时由硬件直接产生相应 向量地址,按地址查表,取得服务程序入口,转入相应服务程序。
中断向量,服务程序入口地址、服务程序状态字中断向量表,存放中断向量的表 (一段存储区)
向量地址,访问向量表的地址 (指向中断向量的首址)
例 1.模型机向量表
M按字编址。一个入口地址 16位,占一个编址单元。
(从主存 0#单元开始安排)
向量地址例 2.IBM PC向量表
M按字节编址。一个入口地址 32位,占 4个编址单元。
(从主存 0#单元开始安排)
=中断号 × 2
0#
向量表入口偏移 0
入口基址 0
4#
0号中断源
1号中断源入口偏移 1
入口基址 1向量地址 =中断号 × 4
0#
向量表入口地址 0
中断 PSW 01# 0号中断源
1号中断源入口地址 1中断 PSW 12#3#
一个中断服务程序状态字
16位,也占一个编址单元。
向量中断方式:
( 3)响应过程发响应信号 INTA,进入中断周期关中断,保存断点获得中断号,转换为向量地址,
查向量表取中断向量,转中断服务程序
CPU执行中断隐指令
(硬件完成)
4.中断处理
CPU执行中断服务程序。
( 1)单级中断,CPU响应后只处理一个中断源的请求,处理完毕后才能响应新的请求。
( 2)多重中断,在某次中断服务过程中,允许响应处理更高级别的中断请求。
单级中断流程:
保护现场具体服务处理恢复现场开中断、返回外中断:
数据传送禁止同级或更低级别的请求,
开放更高级别的请求多重中断流程:
开中断、返回保护现场送新屏蔽字、开中断具体服务处理关中断恢复现场及原屏蔽字
5.3.3 中断接口
1.组成(寄存器级)
D7~0
IRQ0
地址线 寄存器选择命令字 R
状态字 R
数据缓冲器控制逻辑数据线数据线数据线中断控制器
INT
INTA
命令
IRQ7
状态数据外部设备系统总线
( 8259)
IRQi
M
CPU 主机板
( 1)寄存器选择对接口寄存器寻址。
( 2)命令字寄存器接收 CPU发向外设的命令字,转换为相应操作命令送外设。
命令字格式的拟定:
接口板用代码表示各种命令代码位数代码含义
( 3)状态字寄存器反映设备和接口的运行状态。
( 4)数据缓冲器传送数据,实现缓冲。
( 5)控制逻辑请求信号产生逻辑状态字格式的拟定:
D7~0
IRQ0
地址线 寄存器选择命令字 R
状态字 R
数据缓冲器控制逻辑数据线数据线数据线中断控制器
INT
INTA
命令
IRQ7
状态数据外部设备系统总线
( 8259)
IRQi
M
CPU 主机板接口板用代码表示各种状态。
( 6)公用中断控制器接收外设请求,判优,
送出公共请求;
电平转换逻辑针对设备特性的逻辑串 -并转换逻辑 (串口 )
接收中断批准,送出中断号(中断类型码)。
( 1) 初始化:设置工作方式,送屏蔽字,送中断号。
( 2) 发启动命令 (送命令字 ),启动设备。
D7~0
IRQ0
地址线 寄存器选择命令字 R
状态字 R
数据缓冲器控制逻辑数据线数据线数据线
INT
INTA
命令
IRQ7
状态数据外部设备系统总线中断控制器
( 8259)
IRQi
M
CPU 主机板接口板
( 3) 设备完成工作,申请中断。
2.工作过程(外中断)
( 4) 中断控制器汇集各请求,经屏蔽、判优,形成中断号,并向 CPU送 INT。
( 5) CPU响应,发批准 INTA。
( 6) 中断控制器送出中断号。
( 7) CPU执行 中断隐指令操作,进入服务程序。
涉及命令字、状态字格式的拟定,中断源的扩展。
例,模型机需扩展两个外中断源,共用一个中断号。
3.接口设计主机发向外设的命令包括,启动,停止,数据选通 ;
外设的状态包括,忙,完成,出错 。
8259
IRQ0 定时中断
IRQ1 显示中断
IRQ2 磁盘中断
IRQ7 未用为两个扩展中断源设计中断接口。
模型机的外中断源安排:
可通过 IRQ6/7进行扩展。
( 1)接口组成两个扩展中断源共用一个接口。
启动 1 停止 1 选通 1 启动 2 停止 2 选通 2
5 4 3 2 1 0
命令字格式:
状态字格式,忙 1 完成 1 出错 1 忙 2 完成 2 出错 2
( 2)判断中断源地址线 寄存器选择命令 1 命令 2
状态 1 状态 2
控制逻辑数据线数据线命令状态数据缓冲 1数据线 数据外设
1
系统总线
D7~0
IRQ0中断控制器INTINTA
IRQ7( 8259)
IRQ6
数据缓冲 2数据线 数据外设
2
向量中断与非向量中断相结合 (软件扩展 )
请求 1与请求 2在控制逻辑中形成公共请求
IRQ6,送入 8259参加判优; CPU响应后执行
IRQ6服务程序
CPU在 IRQ6服务程序中查询各设备状态,判中断源,转入相应设备服务程序
(向量中断过程 );
(非向量中断过程 )。