第三章 输入输出系统( I/O系统)
§ 1 概述
一, I/O系统组成,包括 I/O设备, 设备控制器
及与 I/O操作有关的软硬件 。
二, I/O系统的主要功能,对指定外设进行 I/O
操作, 同时完成许多其他的控制 。
包括:外设编址, 数据通路的建立, 向主
机提供外设的状态信息等 。
三, I/O系统应面向 OS设计
在高性能多用户计算机系统中, I/O系统的设
计应是面向 OS,考虑怎样在 OS与 I/O系统之间进
行合理的软, 硬件功能分配 。
I/O系统的设计内容包括总线设计和 I/O系统的
方式两大部分
四, I/O系统的三种方式
1,程序控制 I/O
1) 全软件方式 ( 无条件传送或定时交换, )
有关操作时间固定且已知, 应用面窄, 如读写某
设备接口的缓冲区数据 。
2) 程序查询方式 ( 条件传送或轮询方式 )
有关操作时间不固定且未知, 轮询方式使 CPU的利用
率大大降低, 如打印机的初始化 。
3) 中断驱动方式
在需要 I/O服务时才中断 CPU的现行工作, 转去执行
I/O服务 。
需要有接口电路和中断逻辑 。
2,DMA( Direct Memory Access) 方式
直接依靠硬件在主存与 I/O设备间进行直接的数据传递,
在传递期不需 CPU干预 。
DMA方式本身只能处理简单的数据传递, 不切换程序 。
3,I/O处理机方式
1) 通道 ( CH) 方式
① 有自己的指令系统 ( CH指令 ) 和程序 ( CH程序 ) 。
② 执行通道程序时可与 CPU的运行同时进行 —— 并行性 。
③ 通道指令功能简单, 使用面窄, 与 CPU共用一个主存, 还不
是独立的 I/O处理机 。
2) 外围处理机方式 ( PPU)
用一个功能较弱的计算机管理 I/O,彻底解放 CPU,硬件结
构最复杂 。
能称为 I/O系统的必要条件,
① 要有软件和硬件;
②软件要由硬件装置本身执行。因此只有通道,外围处理机才
能称 I/O系统。
§ 2 总线设计
一, 总线主要类型
1 按具有总线数目分
1) 单总线:仅一组总线, 所有部件都由它来完成信
息交换, 结构简单, 利用率高, 未能照顾 CPU访存
需要
一 般 I / O高 速 I / OCPU 存 储 器
总线
2) 双总线:在单总线的基础上增加一组 CPU
与存贮器间的总线, 要求存贮器是多体结构 。
一 般 I / O高 速 I / OC P U 存 储 器
总线
C P U 总 线
3)三总线:在双总线的基础上增加一
组存贮器到高速 I/O的总线,要求存
贮器是多体结构。
一 般 I / O高 速 I / OC P U 存 储 器
总线
C P U 总 线 高 速 I / O 总 线
2 按是否专用来分
1) 专用总线:随部件数 ( n) 的增加, 专用总线急刷
增加,
l=n*(n-1)/2
n=4时, l =6 ; n=5时 l =10
2) 非专用总线 —— 即公共总线
总线数少, 造价低, 总线接口标准化, 模块性强, 易
于简化和统一接口设计, 会出现总线争用, 降低效
率 。
3 按传递的信息类型分
地址总线 AB
数据总线 DB
控制总线 CB
二, 总线控制方式
研究对非专用总线在多个部件同时申请总
线时的裁决控制机构 。
目的:采用何种办法来获得对总线的使用 。
类型,<集中控制 >总线控制逻辑基本上集
中放在一起的裁决控制机构 。
<分布控制 >总线控制逻辑分散于连到总线
的各个部件中时, 称分布控制 。
以集中控制为主, 要求对各种控制方式
( 串行链接, 定时查询, 独立请求 ),能画出
结构示意图, 叙述获取总线过程, 计算所需独
立线数及最长响应的时间 。





C
U0 U n - 1U1,,,
响应
请求

1 集中式 串行链接 控制
1)结构示意图 (设有 n个部件,编号 U0…U n-1)。
2) 获取总线过程
① 当部件请求时, 请求信号送集中控制器 C。
② C收到请求后, 从响应线上发出响应电平 。 ( 总线
空闲时, 即未建忙电平 )
③ 若 Uo已提出请求时, 由 Uo建立忙电平, 同时响
应电平停止前进, Uo接管总线 。
④ 若 Uo未提出请求时, 响应电平穿过 Uo而送到 U1,
余类推 。
3) 特点,
① 结构简单, 控制方便, 所需独立线数最少 。
( 不管设备多少, 均只需三条独立线 )
② 各部件使用总线的优先级的灵活性差 ( 不可改
变 ) 以排列位置作为优先级 。
③ 所需响应延时可能很长 。
响应延时计算:设部件请求到发出响应电平延时为
?t,部件收到响应电平到建立忙电平或穿过本部件
的延时也为 ?t。
产生最长响应延时为 Un-1提出请求时,
?t +( n-1) ?t + ?t = (n+1) ?t
提出请求 穿过 建立忙
0 1 2 3 n+1 ?t
请 响 U0忙 U1忙 Un-1忙
2 采用统一计数器的 定时查询
1) 结构示意图
① 一条独立请求线 。
② 一条独立忙线 。
③ L条定时查询代码线 。
( 一个 L位计数器 )
L= ?log2n? 向上取整





C
U0 U n - 1U1,,,
L 条 定 时 查 询 代 码 线
请求

L 位 统 一 计 数 器
2) 获取总线过程
① 有部件请求时, 请求信号送 C;
② C收到请求后, 将当前计数器的计数值,
通过 L条代码线同时送到各部件;
③ 若与此计数值编号相同的部件已提出请求,
则该部件建立忙电平, C收到忙电平后, 停
止向下计数, 表示该部件接管总线 。
④ 若与此计数值相同编号的部件未提出请求,
等待一个计数脉冲周期后, 计数器将进行 +1
计数, 此时 C又将下一个计数值又同时发往
各部件, 余类推 。
3) 特点,
① 各部件使用总线的优先级可随计数器的工作方式的
改变而改变, 灵活性强 。
Ⅰ ) 计数器每次都从 0开始计数, 低编号部件级别高;
Ⅱ ) 计数器采用循环计数时, 各部件机会均等 。
② 可靠性高, 但所需独立线数较多,2+?log2n?
最长响应延时计算
部件请求到发出代码的延时为一个时钟周期,收到代
码到建立忙电平的延时也为一个时钟周期。设初始计
数值为 0,且只有 Un-1提出请求,时钟频率为 100MHZ。
最长延时,( 1+n) 时钟周期 =( 1+n) *10ns
3 集中独立请求控制方式
1)结构示意图
①每个部件一条独立请求线。
②每个部件一条响应线。
③各部件共用一条忙线。





C
U0 U n - 1U1 ?
请 求 0

响 应 0
请 求 1
响 应 1
请 求 n - 1
响 应 n - 1

2) 获取总线过程
① 有部件请求时, 各请求信号送集中控制器;
② C根据当前请求状况按事先安排的顺序从多个请
求中找出一个优先级别优先的部件并从该条响应线
上发出响应电平;
③ 由收到响应电平的部件建立忙电平表示接管总线 。
3) 特点,
① 响应速度快 ( 可用于高速部件 ) 。
② 所需独立线数最多 。
响应延时,?t + ?t = 2?t
( 发请求 ) ( 收响应 )
独立线数,2n+1
4 集中式 串行链接与独立请求相结合 的控制方式
1) 基本思想
① 将 n个部件分为若干组, 其分配原则是分组数
与组内部件数相等或相近 。 即
分组数 = n
② 组内采用串行链接, 组间采用独立请求 。
2) 结构示意图 ( 设 n=64,分组数 =8)
3) 获取总线过程
① 当有部件请求时, 各请求信号送 C;
② C收到请求后, 从一条优先的响应线上发出
响应电平;
③ 收到响应电平的那组部件, 按串行链接方式
寻找目标部件, 并由该部件建立忙电平 。





C
U0 U7U1 ?
请 求 0

响 应 0

U8 U15U9 ?
请 求 1
响 应 1
U56 U63U57 ?
请 求 7
响 应 7
① 每组一条
请 求 线, 一
条响应线 。
② 每组共
用一条忙线 。
4) 特点:即有串行链接独立线数少, 又有独
立请求响应速度快的优点, 特别适合要求使用
总线的部件数多的情况 。
4种控制方式比较:设 n=64
比较内容
控制方式
串行链

定时
查询
独立
请求
串行链接与
独立请求结合
独立线数 3 ?log2n?+2=8 2× n+1 =129 2× SQR(n)+1=17
最长响应
时间
(1+n) ?t
=65?t
(1+n) ?t
=65?t 2?t
?t +SQR(n) ×
?t=9?t
指令系统的改进途径,CISC,RISC
§ 1 概述
I/O系统组成, 主要功能, I/O系统的设计内容包括总
线设计和 I/O系统的方式
I/O系统的三种方式,
程序控制 I/O, DMA,I/O处理机方式
能称为 I/O系统的必要条件
§ 2 总线设计
一, 总线主要类型
二, 总线控制方式
对四种控制方式,能画出结构示意图, 叙
述获取总线过程, 计算所需独立线数及最长响
应的时间 。
三, 总线通信技术
获得了总线使用权后,才开始考虑数据信息
的传递。
有两大类通信,
同步通信(以块为单位),异步通信(以字
符为单位)。
由于与计算机连接部件的速度有高, 有低,
采用异步通信比较普遍 。
异步通信又分单向, 双向, 单向分源控式和
目控式, 双向又分非互锁和互锁 。

同步 单向源控式
总线通信 单向
异步 单向目控式
双向非互锁
双向
双向互锁 ( 计算机原理 )
同步:主要特征是以时钟周期作为划分时间段的基准 。
异步:主要特征是没有统一的时钟周期划分, 而采用
应答方式实现总线的传送操作 。
四, 数据宽度
1 数据宽度
1) 含义,接管一次总线后, 交换的数据量 ( 常以字节为
单位 ) 。
( 数据通路宽度:一个时钟周期传送的信息量 。 )
2) 数据宽度的主要类型
① 字节 ( 使用一次总线交换一个字节, 可用于中低速部
件 ) 。
② 数据块 ( 使用一次总线交换一个数据块, 可用于高速
部件 ) 。
Ⅰ ) 固定长数据块 ( 每次交换的字节数相同 ) 。
Ⅱ ) 可变长数据块 ( 每次交换的字节数不同 ) 。
( 适用优先级高的中, 高速 I/O设备 )
2 数据总线线数
1) 总线数据类型
① 一位线 ( 1条 )
② 字节线 ( 8条 )
③ 半字线 ( 16条 )
④ 单字线 ( 32条 )
⑤ 双字线 ( 64条 )
2) 总线线数选取原则
① 机内选用字长相等的数据线 。
② 近距离选用多条线 ( 采用并行传递 ) 。
③ 远距离选用单条线 ( 采用串行传递, 减少通信线路
成本 ) 。
§ 3中断系统
一, 中断源的分类与分级
引起中断的各种事件称为中断源
1 分类
1) 故障中断 ( 指设备故障, 如线路, 电源
等 ) 。
2) 访管中断 ( 计算机的运行有两种状态, 执
行用户的目标程序状态称目态 。 执行管理程
序状态称为管态 ) 。
用户程序需要 OS介入时, 通过执行, 访管,
指令而发生 。
3) I/O中断 ( 外设引起 )
4) 程序性中断:在运行程序过程中产生了某种非法事
件, 如溢出, 越界等, 这是用户不愿看到的, 属强
制中断 。
5) 外中断:指来自本计算机之外的中断源, 如定时器,
外部信号中断等 。
2 分级 ( 根据中断的性质, 紧迫性, 重要性等分 )
1) 第一级:级别最高, 可将分类中的故障中断作为第
一级 。
2) 第二级:可将访管与程序性中断合为第二级, 它们
通常不会同时出现 。
3) 第三级:可将外中断作为第三级 。
4) 第四级:可将分类中的 I/O中断作为第四级 。
5) 第五级:优先级最低, 可将重新启动中断作为第五
级 。
二, 中断响应
1 任务
1) 关中断:为了保证本次中断响应过程中不
受干扰, 不再响应可屏蔽中断请求 。
2) 保存断点:将返回地址压入堆栈, 使执行
完中断处理程序后能回到断点地址处继续运
行 。
3) 针对中断源:提供中断处理程序入口, 为
执行中断处理程序作好最后准备 。
2 基本要求与执行方式
响应速度要快, 采用全硬件响应 。
3 中断响应的条件
1) 是否需要中断请求:对内中断源, 不需
要中断请求;对外中断源, 需要中断请
求 。
2) 通常要在一条指令结束后响应 ( 而对于
故障 ( Fault) 和失败 ( Abort) 都是在指
令的执行中, 执行现行指令引起的暂停
事件, 如溢出, 页面失效等 ) 。
3) 有请求也可不响应 。
4)响应后也不一定要立即处理。
三, 中断处理
1 对中断处理的要求和执行方式
1) 要求 —— 具有灵活性, 能针对不同的中断源进行不
同处理 。
2) 执行方式:采用全软件执行, 即编写中断处理程序 。
中断处理顺序的改变 —— 通过设级屏蔽位的方法来
改变中断处理顺序。
3) 级屏蔽位的设置
设 0表示开放, 1表示屏蔽, 也可反之, 只看系统如何
规定的 。
4) 根据中断处理顺序的要求
① 对处理顺序在前的中断级要开放;
② 对处理顺序在后的中断级要屏蔽;
③ 对同级中断也要屏蔽 ( 同级中断先来先响应 )
例 1:设 0表示开放, 1表示屏蔽, 处理顺序为
1-2-3-4
中断程序
级别
级屏蔽位
1
2
3
4

1
1
1
1

0
1
1
1

0
0
1
1

0
0
0
1
例 2:设 1表示开放, 0表示屏蔽, 处理顺序为
1-4-3-2
中断程序
级别
级屏蔽位
1
2
3
4

0
0
0
0

1
0
1
1

1
0
0
1

1
0
0
0
3) 中断响应处理时空图的绘制
条件,在某时刻同时有 ①②③④ 级中断请求,
CPU对级中断从响应到处理用时均为 4?t。
响应, 处理时空图的依据,
a,在主程序中,中断响应时,永远按 1-2-3-4
顺 序进行响应。
b,响应后要保护返回地址 。
c,中断响应后, 若还有被开放的中断级的请
求, 则按硬件排队器的顺序 ( 1-2-3-4 ), 进入
中断嵌套状态 ( 当前地址压栈 ) 。
d,从哪进入中断, 返回时仍回到哪 。
① 按例 1绘制时空图 。
?e3 ì D? ? D ?? ′| àí 3ì D?
¢ù ¢ú ¢? ¢ü ?ì ¢ù
4| ¤t
?ì ¢?
4| ¤t
?ì ¢ú
4| ¤t
?ì ¢ü
4| ¤t
ò? ? t è y ? ?
t
?D ?? ?? ??
② 按例 2绘制时空图。
? e3 ì D? ? D ?? ′| àí 3ì D?
¢ù ¢ú ¢? ¢ü
?ì ¢ù
4| ¤t
?ì ¢ú
ò? ?t è y ? ?
t
?? ì×
?? ì×
?D ?? ?? ??
4| ¤t
4| ¤t
4| ¤t
数据宽度
数据通路宽度
§ 3中断系统
中断响应顺序
中断处理顺序
屏蔽寄存器中级屏蔽位的设置
何时进入中断嵌套状态
中断响应处理时空图的绘制
§ 4通道( CH)
一,CH的基本工作原理
1,CH是 I/O处理装置
它是在执行 CH程序中完成与外设的数据交
换, 且 CH执行 CH程序与 CPU执行用户程序可并
行执行 。
2,CH执行过程示意图
CPU CH
目态 管态
(用户程序 ) (管理程序 ) (CH程序 )
访管指令 1)进入
2)组织
3)启动
4)执行用户程序 4)执行 CH
t
5)结束
5)结束处理
1) CPU在执行用户的目标程序中执行了一条带某种参
数的访管指令而进入管理程序 ( 即访管中断 ) 。
2) 进入管理程序后 CPU根据所带参数组织 CH程序 ( 如
存储器地址, 交换的字节数, 是读出还是存入等 ) 。
3) CH程序组织好后, CPU便启动 CH。
4) 一方面 CPU返回目标程序继续执行, 同时 CH便执行
CH程序, 从而实现 CPU与 CH的并行执行 。
5) 当 CH执行完 CH程序后便提出 CH中断, 由 CPU进行
结束处理 。
3 CH任务
1) 要选择设备并和所选设备连接 。
2) 完成外设与主存之间数据宽度的匹配
① 输入时, 要将外设的字节为单位的数
据装配成存贮单元的一个字 。
② 输出时, 要拆卸成字节输出 。
3) 还要实现外设与主存之间数据入出缓冲 。
4) 执行程序 。
5) 向 CPU汇报工作状态 。
二, CH流量计算和时空图绘制
1,CH类型
按传输方式可将 CH分为,
1) 字节多路 CH,外设与 CH接通后, 每次要交
换一个字节, 以字节交叉方式传递数据 。 适用于
连接管理多台慢速设备, 如键盘, 打印机等, 可
并行工作 。
子 CH (Ai,Bi,Ci 表示字节 )
… A2 A1
… B2 B1 通道 … C2 B2 A2 C1 B1 A1
… C2 C1
2) 选择 CH,外设与 CH接通后, 每次要交换一个不定
长数据块, 不能并行工作 。 适用于 优先级高的中高
速 I/O设备, 如高速磁盘等 。
子 CH
… A2 A1
… B2 B1 通道 … C2 C1 … B2 B1 … A2 A1
… C2 C1
3) 数组多路 CH:具有成组交叉传递数据的功
能, 可并行工作 。 如一个设备使用 CH时, 其它
设备 ( 部件 ) 仍可执行机电性操作, 如寻址等 。
适用于高速 I/O设备
2 流量概念
1)含义:单位时间交换的字节数称为流量,
其单位是 B/S或 KB/S,用 f表示
2) CH流量计算,
① 一个字节多路 CH流量。
fj:第 j通道的传送速率。
P:子 CH个数(该字节多路 CH上接的子
CH数目)。
② 一个选择 CH和数组多路 CH
流量之和的流量是各子一个字节多路 CHCHff
P
1j
jb ?? ?
?
流量作为整个最大子
中用流量是在子或一个数组多路一个选择
CHCH
CHCHCHfM A Xf j
P
1j
AS ??
?
/
3) 具有 N个可并行工作的 CH系统流量
① 具有 N个字节多路 CH的 CH系统 。
为各 CH流量之和
② 具有 N个选择 /数组多路 CH系统 。
也为各 CH流量之和
ij
N
1i
P
1j
aSs fM A Xf ?
?
?
?/
? ?
? ?
?
N
1i
P
1j
ijbs ff
3 字节多路 CH流量时空图绘制 。
1) 根据子 CH流量计算每个子 CH提供一个字节时间
( 1/f) ;
2) 在一个图上画出一个完整申请周期时空图 ( 设从 0
时刻开始, 各子 CH同时申请, 两个同时申请之间的
最小时间间隔称为一个完整申请周期, 可用各子 CH
提供一个字节时间的最小公倍数作为完整申请周期 ) ;
3) 计算 CH,为满足流量要求, 对每个字节的申请从响
应到处理所需最长用时 ( 与 CH流量有关 ) ;
4) 在上图基础上, 画 CH对每个字节的响应处理时空图 。
① 流量大的优先响应, 流量小的后响应 。
② 对每个字节的响应到处理中途不被中断 。
③ 前一个子 CH的处理结束时间为后个子 CH的响应
开始时间 。
4 流量计算与时空图绘制实例
设有如下 CH和子 CH流量 ( KB/s)
子 CH 流量
1 2 3 4 5
字节多路 100 50 20 10 10
选择 490 530 610 580 710 CH
数组多路 240 540 700 180 320
1)对字节多路 CH。
① 计算流量 fb;
② 计算每个子 CH提供一个字节数据的时间;
③ 画出一个完整申请周期时空图;
④ 计算 CH 对每个字节的申请,从响应到处理的最长时间;
⑤ 在上图上画出响应处理时空图。
2)计算 CH系统流量。
3)若 CH系统流量是存储器流量的 1/4,求存储器流量。若存储
器为单位字节结构,计算存取周期 tm。
解,1) ①
② Tbj=1/fj
③ 计算完整申请周期:上述 5个时间
的最小公倍数是 100μ s。
sKB19010102050100ff
P
1j
jb /??????? ?
?
子 CH 1 2 3 4 5
T b ( μ s) 10 20 50 100 100
子 CH
5
4
3
2
1
0 10 20 30 40 50 60 70 80 90 100 t (μ s)
等待 5μ s
④ 106/(190× 103)≈ 5μ s( 取 ≤ 1/(CH流
量 ) 的方便时间 )
2) f=190+710+700=1600KB/s
3) 存储器流量 =1600× 4=6400 KB/s
4) tm=106/( 6400× 103) ≈ 0.156μ s
例 3 若机器共有 5级中断, 中断响应优先次序
为 1-2-3-4-5,现要求其实际的中断处理次序
为 1-4-5-2-3。
(1)设计各级中断处理程序的中断级屏蔽位
(令, 1”对应于屏蔽,, 0”对应于开放 );
(2)若在运行用户程序时,同时出现第 4,2
级中断请求,而在处理第 2级中断未完成时,
又同时出现第 1,3,5级中断请求,请画出
此程序运行过程示意图。