上篇:第四章、存储器
第五章 输入输出系统
5.1 概述
输入输出系统是计算机系统当中种类最多、功能最多、结构最复杂的系统。在现代计算机系统当中,外部设备总的成本可以占到计算机总成本的 80% 以上,没有这些丰富多彩的外部设备,就没有计算机在各种领域的大规模运用。
5.1.1 输入输出系统的发展概况
早期阶段
早期的 I/O 设备种类较少,I/O 设备与主机交换信息都必须通过 CPU。
特点:
- 分散连接,每个 I/O 设备都必须配有一套独立的逻辑电路与 CPU 相联
- CPU 和 I/O 设备
串行
工作,信息的传输方式为程序查询方式
- I/O 设备的控制电路和 CPU 的控制器紧耦合,添加或减少 I/O 设备都比较麻烦
接口模块和 DMA 阶段
这个阶段 I/O 设备通过接口模块与主机连接,计算机采用了总线结构。
特点:
- 总线连接,I/O 设备通过接口连接在总线上,一个总线可以连接多个设备,总线另外一端与主机相连
- CPU 和 I/O 设备
并行
工作,信息的传输方式分为中断方式
和DMA 方式
具有通道结构的阶段
在大、中型计算机系统中,采用 I/O 通道的方式进行数据交换。
具有 I/O 处理机的阶段
这个结构的结构比通道结构更加复杂,它采用了 I/O 处理机,I/O 处理机能独立于主机工作,所以具有更大的独立性。
由此可见,随着输入输出系统的发展来看,数据的输入和输出操作逐渐地从 CPU 当中分离出来,外部设备的独立性越来越强。
5.1.2 输入输出系统的组成
输入输出系统由 I/O 软件
和 I/O 硬件
两部分组成。
I/O 软件
I/O 软件的主要任务:① 将用户编制的程序输入到主机中;② 将运算结构输送给用户;③ 系统 I/O 系统和主机的工作。
I/O 软件可分为:
-
(1)I/O 指令:是 CPU 指令的一部分。
- 操作码可作为 I/O 指令与其他指令的判别代码
- 命令码用来体现 I/O 的具体操作
- 设备码是作为对多台 I/O 设备的选择码
-
(2)通道指令:又叫通道控制字(CCW),是通道自身的指令,是对具有通道的 I/O 系统专门设置的指令,它能够实现 I/O 设备和主机之间直接进行信息传送。需要指出数据的首地址、传送字数、操作命令。
I/O 硬件
在有接口的 I/O 系统下,一般包括 I/O 设备
和接口模块
两大部分,设备通过接口连接在总线上和主机完成信息交换;如果采用通道的方式,设备
连接 设备控制器
,设备控制器
连接子通道,子通道连接通道
。
5.1.3 I/O 设备与主机的联系方式
1. I/O 设备编址方式
I/O 设备是有地址的,主机要和 I/O 设备进行联系的话,必须要给出 I/O 设备的地址,所以首先要对 I/O 设备进行编址,编址有两种方式:
- 统一编址:就是将 I/O 地址看作是存储器地址的一部分。这种情况下 CPU 可以直接通过取数、存数指令对 I/O 设备进行访问、控制。
- 不统一编址:是指 I/O 地址和存储器地址是分开的,所有对 I/O 的访问必须有专用的 I/O 指令。
2. 设备寻址
每一台设备都有一个设备号,用设备选择电路
识别是否被选中。
3. 传送方式
- 串行:数据一位一位进行传输,传输速度比较慢,适合进行远程传输。
- 并行:同时有多位数据在数据线上进行传输,因此数据线有多条,通常情况下数据线的条数是 8 的倍数。
4. 联络方式
- 立即响应
- 异步工作采用应答信号
- 同步工作采用同步时标
5. 设备与主机的连接方式
- 辐射式连接:每台设备都需要配有一套控制线路和一组信号线,不便于增删设备。
- 总线连接:外部设备通过接口和主机进行连接,接口能够向外部设备传送主机的控制命令,以及向主机传送外部设备状态信息,同样接口还可以完成数据缓存,便于增删设备。
5.1.4 I/O 与主机信息传送的控制方式
-
程序查询方式
- 由 CPU 通过程序不断查询 I/O 设备是否已做好准备,从而控制 I/O 与主机交换信息。这种方式在 I/O 设备没有准备好的时候,CPU 只能等待。
- 由 CPU 通过程序不断查询 I/O 设备是否已做好准备,从而控制 I/O 与主机交换信息。这种方式在 I/O 设备没有准备好的时候,CPU 只能等待。
-
程序中断方式
- CPU 在启动 I/O 设备后,对设备是否已准备就绪不加过问,继续执行自身程序,当 I/O 设备准备就绪并向 CPU 发出中断请求后才予理睬。但是这种方式在 CPU 响应中断请求后,会停止现行程序而转入中断服务,并且完成 I/O 与主存交换信息。
- CPU 在启动 I/O 设备后,对设备是否已准备就绪不加过问,继续执行自身程序,当 I/O 设备准备就绪并向 CPU 发出中断请求后才予理睬。但是这种方式在 CPU 响应中断请求后,会停止现行程序而转入中断服务,并且完成 I/O 与主存交换信息。
-
DMA 方式
- 主存与 I/O 设备之间有一条数据通路,主存与 I/O 设备交换信息时,无需处理中断服务程序。当 DMA 和 CPU 同时访问主存,DMA 会
窃取
总线的占有权,窃取的时间一般为一个存储周期,这个周期又称为窃取(挪用)周期
。CPU 和 I/O 并行工作。
- 主存与 I/O 设备之间有一条数据通路,主存与 I/O 设备交换信息时,无需处理中断服务程序。当 DMA 和 CPU 同时访问主存,DMA 会
5.2 外部设备
5.2.1 概述
中央处理器和主存构成了主机,除主机外的大部分硬件设备都可以称作外部设备
,或叫外围设备
,简称外设
。
外部设备大致可分为三大类:
- 人机交互设备:它是用来实现操作者与计算机之间互相交流信息的设备,它能将人体五官可识别的信息媒体转换成机器可识别的信息,如:键盘、鼠标等。
- 计算机信息的驻留设备:它是作为大批信息的驻留设备,如:磁盘、光盘、磁带等。
- 机—机通信设备:它是用来实现一台计算机与其它计算机或与别的系统之间完成通信任务的设备,如:调制解调器等。
5.2.2 输入设备
输入设备完成输入程序、数据和操作命令等功能。
- 键盘:是最
普遍
的输入设备,它可通过键盘上的各个键,按某种规范
向主机输入各种信息。如:汉字、外文、数字等。
- 键盘输入信息分为三个步骤:
- (1) 按下一个键
- (2)查出按下的是哪个键
- (3)将此键翻译成 ASCII 码,由计算机接收
- 键盘输入信息分为三个步骤:
- 鼠标器:又称作鼠标,是一种
手持式
的坐标定位
部件,可分为:机械式鼠标器
光电式鼠标器
。
- 触摸屏:是一种对物体的接触或靠近能产生反映的定位设备。按触摸原理的不同可分为:
- 电阻式
- 电容式
- 表面超声波式
- 扫描红外线式
- 压感式
- 其它输入设备
- 光笔
- 画笔与图像板
- 图像输入设备
5.2.3 输出设备
- 显示设备:以可见光的形式传递和处理信息的设备叫显示设备,是应用最广的人—机通信设备。
- 按显示器可划分为:
- 阴极射线管(RTC)显示器
- 液晶(LCD)显示器
- 离子(PD)显示器
- …
- 按显示类型划分:
- 字符显示器:是计算机系统中最基本的输出设备,它通常由显示控制器和显示器(CRT)组成。
- 图形显示器:是用点、线、面组合而成的平面或立体图形,常配有键盘、光笔、鼠标、CRT 显示器及绘图仪。
- 图像显示器:所显示的图形是由计算机用一定的算法形成的点、线、面、阴影等。它来自主观世界,故又称主观图像或叫做计算机图像。
- 按显示器可划分为:
- 打印设备:可将计算机运行结果打印输出记录在纸上,是一种硬拷贝设备。
- 按原理可分为:
- 打击式
- 活字打印机
- 点阵式打印机
- 非打击式
- 激光打印机
- 喷墨打印机
- 打击式
- 按工作方式分为:
- 串行打印机
- 行式打印机
- 按打印纸的宽度分为:
- 宽行打印机
- 窄行打印机
- 按原理可分为:
5.2.4 其它外部设备
计算机的外部设备中有一类属于既是输入设备,又是输出设备,如:磁盘、终端、A/D、D/A转换器,以及汉字处理设备等。
- 终端设备:是由显示器和键盘组成的一套独立完整的输入/输出设备,它可以通过标准接口接到远离主机的地方使用。
- A/D、D/A 转换器
- A/D 转换器:是模拟/数字转换器,它能将模拟量转换成数字量,是计算机的输入设备。
- D/A 转换器:是数字/模拟转换器,它能将计算机输出的数字量转换成控制所需的模拟量,它是计算机的输出设备。
- 汉字处理设备:计算机进行汉字信息处理时,必须将汉字代码化,即对汉字进行编码。汉字处理设备包括汉字输入、汉字存储和汉字输出三个部分。
5.2.5 多媒体技术
多媒体指组合两种或两种以上媒体的一种人机交互式信息交流和传播媒体。使用的媒体包括文字、图片、照片、声音、动画和影片,以及程式所提供的互动功能。
多媒体计算机的关键技术:
- 视频和音频数据的压缩和解压缩技术
- 多媒体专用芯片
- 大容量存储器
- 适用于多媒体技术的软件
5.3 I/O 接口
5.3.1 概述
接口可以看作是两个系统或两个部件之间的交接部分,它既可以是两种硬设备之间的连接电路,也可以是两个软件之间的共同逻辑边界。
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串 — 并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备状态
5.3.2 接口的功能和组成
总线连接方式的 I/O 接口电路:
总线结构的计算机,每一台设备都是通过 I/O 接口挂到系统总线上的,I/O 总线包括数据线
、设备选择线
、命令线
和状态线
。
- 数据线:数据线是 I/O 与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。
- 设备选择线:用来传送设备码的,它的根数取决于 I/O 指令中设备码的位数。一般采用一组双向总线代替两组单向总线。
- 命令线:主要用以传输 CPU 向设备发出的各种命令信号,如启动、清除、屏蔽、读、写等等。它是一组单向总线,其根数与命令信号多少有关。
- 状态线:是将 I/O 设备的状态向主机报告的信号线,如设备是否准备就绪,是否向 CPU 发出中断请求等等,它是一组单向总线。
接口的功能和组成:
- 选址功能
- 组成:设备选择电路
- 传送命令的功能
- 组成:命令寄存器、命令译码器
- 传送数据的功能
- 组成:数据缓冲寄存器
- 反映 I/O 设备工作状态的功能
- 组成:设备状态标记
- 实现电平转换
5.3.3 接口类型
- 按数据传送方式分类:
- 并行接口
- 串行接口
- 按功能选择的灵活性分类:
- 可编程接口
- 不可编程接口
- 按通用性分类:
- 通用接口
- 专用接口
- 按数据传送的控制方式:
- 程序型式接口
- DMA 接口
- 中断接口
5.4 程序查询方式
5.4.1 程序查询流程
程序查询方式的核心问题在于每时每刻需不断查询 I/O 设备是否准备就绪。
单个设备的查询流程示意图:
完成这种查询需要三条指令:
- 测试指令:用来查询设备是否准备就绪。
- 转移指令:若设备未准备就绪,执行转移指令,转至测试指令,继续测试设备的状态。
- 传送指令:当设备已准备就绪时,执行传送指令。
多个设备的查询流程示意图:
当 I/O 设备较多时,CPU 需按各个 I/O 设备在系统中的优先级别进行逐级查询。
程序查询方式的程序流程:
- 这种方式传送数据要占用 CPU 中的寄存器,首先需要将寄存器原内容保护起来
- 设置设备与主机交换数据的计数值
- 设置欲传送数据在内存缓冲区的首地址
- 启动外部设备
- 将 I/O 接口中的设备状态标记取至 CPU 并测试 I/O 是否准备就绪,如果未准备就绪则原地等待
- CPU 执行 I/O指令,同时把接口中的状态标记复位
- 修改内存地址
- 修改计数值
- 判断计数值,如果为 0 表示传送完毕,不为 0 则重新启动外设继续传送
- 结束 I/O 传送,继续执行其它程序
5.4.2 程序查询方式的接口电路
CPU 通过地址线给出外部设备的地址,设备选择电路把自己的设备或者是端口号和地址线上的地址进行比较,如果相同,说明启动就是连接在该接口上的设备,SEL 有效
- ①:由 CPU 发出启动外设命令,将工作触发器 B 置 “1”,完成触发器 D 置 “0”
- ②:启动外设开始工作
- ③:输入设备将数据送入 DBR
- ④:外设工作完成,向接口发 “设备工作结束” 信号,将 D 置 “1”,B 置 “0”
- ⑤:D 触发器以 “准备就绪” 状态通知 CPU,表示 “数据缓冲满”
- ⑥:CPU 执行输入指令,将输入数据送至 CPU 的通用寄存器,再存入主存相关单元
5.5 程序中断方式
5.5.1 中断的概念
计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,这个就是中断。
5.5.2 I/O 中断的产生
在 I/O 与主机交换信息时,由于设备本身机电特性的影响,其工作速度较低,与 CPU 无法匹配,因此,CPU 启动设备后,往往需要等待一段时间才能实现主机与设备交换信息,如果在设备准备的同时,CPU 不作无谓的等待,而继续执行现行程序,只有当 I/O 准备就绪向 CPU 提出请求后,再暂时中断 CPU 现行程序转入 I/O 服务程序,这便产生了 I/O 中断。
以打印机为例:
5.5.3 程序中断方式的接口电路
为处理 I/O 中断,在 I/O 接口电路中必须配置相关的硬件线路。
- 配置中断请求触发器和中断屏蔽触发器
- INTR — 中断请求触发器,INTR = 1 表示有请求
- MASK — 中断屏蔽触发器,MASK =1 表示被屏蔽
- D — 完成触发器
- 排队器
-
硬件办法:在 CPU 内或在接口电路中,链式排队器
-
软件办法 :通过查询的方法,中断的优先级在一个表格中进行规定
-
- 中断向量地址形成部件
- 入口地址
- 由软件产生
- 硬件向量法:由硬件产生向量地址,再由向量地址找到入口地址
- 入口地址
- 程序中断方式接口电路的基本组成
5.5.4 I/O 中断处理过程
- CPU 响应中断的条件和时间
- 条件:
- 允许中断触发器
EINT
= 1 - 用
开中断
指令将 EINT 置 “1” - 用
关中断
指令将 EINT 置 “0” 或硬件自动复位
- 允许中断触发器
- 时间:
- 当 D = 1(随机)且 MASK = 0 时
- 在每条指令执行阶段的结束前
- CPU 发 中断查询信息(将 INTR 置 “1”)
- 条件:
- I/O 中断处理过程
- 通过 I/O 指令的地址码选中某设备后,则
- ① 由 CPU 发启动外设命令,将接口中 B 置 “1”,D 置 “0”
- ② 接口启动输入设备开始工作
- ③ 输入设备将数据送入 DBR
- ④ 输入设备向接口发 “设备工作结束” 信号,使 D 置 “1”,B 置 “0”,标准设置准备就绪
- ⑤ 当设备准备就绪(D=1),且设备未被屏蔽(MASK = 0)时,在指令执行阶段的结束时刻,由 CPU 发中断查询信号
- ⑥ 设备中断请求触发器 INTR 被置 “1” ,标志设备向 CPU 提出中断请求,与此同时,INTR 送至排队器,进行总段判优
- ⑦ 若 CPU 允许中断(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址
- ⑧ 向量地址送至 PC,作为下一条指令的地址
- ⑨ 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段
- ⑩ 中断服务程序的最后–条指令执行结束,即中断返回至原程序的断点处。至此,-个完整的程序中断处理过程即告结束。
5.5.5 中断服务程序的流程
- 保护现场
- 包括
- 程序断电的保护 — 中断隐指令完成
- 寄存器内容的保护 — 进栈指令
- 包括
- 中断服务
- 对不同的 I/O 设备具有不同内容的设备服务
- 恢复现场 — 出栈指令
- 中断返回 — 中断返回指令
单重
中断:不允许中断
现行的中断服务程序
多重
中断:允许级别更高
的中断源中断
现行的中断服务程序
主程序和服务程序抢占 CPU 示意图:
5.6 DMA 方式
5.6.1 DMA 方式的特点
DMA和程序中断两种方式的数据通路:
主存和 DMA 接口之间有一条数据通路,因此主存和设备交换信息时,不通过 CPU,也不需要 CPU 暂停现行程序为设备服务,省去保护现场和恢复现场,因此工作速度比程序中断方式高,数据也不容易丢失。
DMA 与主存交换数据时可采用如下三种方法:
-
停止 CPU 访问主存
- 控制简单
- CPU 处于不工作状态或保持状态
- 未充分发挥 CPU 对主存的利用率
-
周期挪用(或周期窃取)
- DMA 访问主存的三种可能,此时 CPU 将总线控制权让给 DMA
- CPU 此时不访存
- CPU 正在访存
- CPU 与 DMA 同时请求访存
- DMA 访问主存的三种可能,此时 CPU 将总线控制权让给 DMA
-
DMA 与 CPU 交替访问
- CPU 工作周期
- C1 专供 DMA 访存
- C2 专供 CPU 访存
- CPU 工作周期
5.6.2 DMA 接口的功能和组成
DMA 接口的功能:
- (1)向 CPU
申请
DMA 传送 - (2)处理总线
控制器的转变
- (3)
管理
系统总线、控制
数据传送 - (4)
确定
数据传送的首地址和长度
,修正
传送过程中的数据地址
和长度
- (5)DMA 传送结束时,
给出操作完成信号
DMA 接口的组成:
- 主存地址存储器 AR:用于存放主存中需要交换数据的地址。
- 字计数器 WC:用于记录传送数据的总字数,通常以交换字数的补码值预置。
- 数据缓冲寄存器 BR:用于暂存每次传送的数据。
- DMA 控制逻辑:用于负责管理 DMA 的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。
- 中断机构:用于数据传输完以后对后续的工作进行处理。
- 设备地址寄存器 DAR:存放 I/O 设备的设备码或表示设备信息存储区的寻址信息。
5.6.3 DMA 的工作过程
1. DMA 的传送过程
- (1)预处理
- 通过几条输入输出指令预置如下信息:
- 通知 DMA 控制逻辑传送方向(入/出)
- 设备地址 — > DMA 的 DAR
- 主存地址 — > DMA 的 AR
- 传送字数 — > DMA 的 WC
- 通过几条输入输出指令预置如下信息:
- (2)数据传送
- 继续执行主程序
- 同时完成一批数据传送
- (3)后处理
- 校验送入主存的数据是否正确
- 是否继续用 DMA
- 测试传送过程是否正确,错则转诊断程序
- 由中断服务程序完成
2. DMA 接口与系统的连接方式
- 具有公共请求线的 DMA 请求
- 若干个 DMA 接口通过一条公用的 DMA 请求线向 CPU 申请总线控制权。CPU 发出响应信号用链式查询方式通过 DMA 接口,首先选中的设备获得总线控制权,即可占用总线与主存传送信息。
- 独立的 DMA 请求
- 每一格 DMA 接口各有一对独立的 DMA 请求和 DMA 响应线,它由 CPU 的优先级判别结构裁决手下响应哪个请求,并在响应线上发出响应信号,被获得响应信号的 DMA 接口便可控制总线与主存传送数据。
DMA 方式与程序中断方式的比较:
中断方式 | DMA 方式 | |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
5.6.4 DMA 接口类型
- 选择线 DMA 接口
- 在
物理上
连接多个
设备 - 在
逻辑上
只允许连接一个
设备
- 在
- 多路型 DMA 接口
- 在
物理上
连接多个
设备 - 在
逻辑上
允许连接多个
设备同时工作 - 工作原理图示意图:
- 在
上篇:第四章、存储器