第 11 章 输入输出系统
基本知识点:I/O 系统的概念和组成;I/O 设备与主机的联系方式;I/O 接口的功能和基本结构;I/O 端口及其编址;I/O 地址空间及其编码;四种 I/O 控制方式,包括程序查询方式、程序中断方式、DMA 方式和通道方式的原理和 I/O 过程。
重 点:I/O 端口及其编址;四种 I/O 控制方式。
难 点:四种 I/O 控制方式。
11.1 知识点 1:I/O 系统概述和 I/O 接口
11.1.1要点归纳
1.I/O 系统概述
1)I/O 系统的发展
计算机主机与外界交换信息时所涉及到的硬件和软件的总称,称为 I/O 系统。I/O 系统的发展大致分为 4 个阶段:
☆ 早期阶段。其主要特点是 I/O 设备与主存交换信息都必须通过 CPU,I/O 设备采用分散连接,CPU 与I/O 设备串行工作,采用程序查询方式。
☆ 接口模块和 DMA 阶段。I/O 设备与主机通过接口模块相连,计算机系统采用了总线结构。CPU 和 I/O 设备并行工作,其工作方式有中断方式和 DMA 方式。
☆ 具有通道结构的阶段。采用通道来管理 I/O 设备以及实现主存与 I/O 设备之间交换信息。有专门的通道指令,能独立地执行用通道指令所编写的 I/O 程序,在 I/O 设备与主机交换信息时,CPU 不直接参与,进一步提高了 CPU 的利用率。
☆ 具有 I/O 处理机的阶段。I/O 处理机基本独立于主机工作,既可完成 I/O 通道要完成的 I/O 控制,又可完成码制变换、格式处理、纠错等操作。具有 I/O 处理机的 I/O系统与 CPU工作的并行性更高。
2)I/O 系统的组成
一般来说,I/O 系统由 I/O 软件和 I/O 硬件两部分构成。
(1)I/O 软件
I/O 软件的主要任务是,将用户编制的程序(或数据)输入主机内;将运算结果输送给用户;实现输入输出系统与主机的协调等。通常采用 I/O 指令和通道指令实现 CPU 与I/O设备的信息交换。
☆ I/O 指令:当采用接口模块方式时,应用机器指令系统中的 I/O 指令及系统中的管理程序可使 I/O 设备与主机协调工作。I/O 指令反映 CPU 与 I/O 设备交换信息的各种特点,是 CPU 指令系统的一部分。
☆ 通道指令:当采用通道方式时,应用通道程序实现 I/O 设备与主机的信息交换。通道指令是对具有通道的 I/O 系统专门设置的指令,用来执行 I/O 操作,如读、写磁盘等。
(2)I/O 硬件
I/O 硬件包括 I/O 设备、I/O 接口和 I/O 总线等,如图11.1 所示。
I/O 设备具有结构原理和工作速度差异大、时序独立、异步性明显等特点,处理的信息从数据格式到逻辑时序一般不可能直接与 CPU 兼容,所以主机与 I/O 设备间的连接与信息交换不能直接进行,而必须设计一个“接口电路”作为两者之间的桥梁,使 CPU 和 I/O 设备协调工作,这就是 I/O 接口,它通过 I/O 总线与主机相连。
I/O 设备包含设备控制器和相关设备部件,例如,硬盘由磁盘控制器和磁盘组成。设备控制器用来控制 I/O 设备的具体动作,不同的 I/O 设备完成的控制功能不同,机、电、磁、光部件与具体的 I/O 设备有关,即 I/O 设备的具体结构大致与机、电、光、磁的工作原理有关。
3)I/O 设备与主机的联系方式
I/O 设备与主机交换信息和 CPU 与主存交换信息相比,具有许多不同点。例如,CPU如何寻找 I/O 设备号等,这都统称为 I/O 设备与主机的联系方式。
(1)设备寻址
设备独立性是指用户在编制程序时所使用的设备与实际使用的设备无关。为了实现设备独立性,每台设备都赋予一个设备号,当要启动某一设备时,由 I/O 指令的设备码字段直接指出该设备的设备号,通过 I/O 接口选择电路中要交换信息的设备。
(2)传送方式
CPU 和 I/O 设备之间的信息传送方式如下。
☆ 并行传送:在同一时刻有 n 位信息同时从 CPU 输出至I/O 设备,或由 I/O 设备输入到 CPU。
☆ 串行传送:在同一时刻只传送一位信息,在不同时刻连续逐位传送一串信息。
(3)联络方式
CPU 和 I/O 设备之间的联络方式如下。
☆ 立即响应方式:只要 CPU 的 I/O 指令一到,便立即响应。常用于速度十分缓慢的 I/O设备。
☆ 异步工作采用应答信号联络:I/O 设备和 CPU 各自完成任务,当出现联络信号时,彼此才开始交换信息,而且采用应答方式。常用于速度与主机不匹配的 I/O 设备。
☆ 同步工作采用同步时标联络:采用统一时钟控制 I/O 操作。常用于与 CPU 工作速度完全同步的 I/O 设备。
(4)I/O 设备与主机的连接方式
I/O 设备与主机的连接方式如下。
☆ 辐射式:每台 I/O 设备有一套控制线路和一组信号线,与主机相关,它们之间互不相连。
☆ 总线式:通过一组总线将所有 I/O 设备与主机连接。
4)I/O 设备与主机信息传送的控制方式
I/O 设备与主机信息传送的控制方式,也就是 CPU通过 I/O 接口对 I/O 设备进行控制的方式,主要有以下几种。
☆ 程序查询方式:由 CPU 通过程序不断查询 I/O 设备是否已做好准备,从而控制 I/O设备与主机交换信息。
☆ 程序中断方式:只在 I/O 设备准备就绪并向 CPU 发出中断请求后才予以响应。
☆ DMA 方式:主存和 I/O 设备之间有一条数据通路,当主存和 I/O 设备交换信息时,无须调用中断服务程序。
☆ 通道方式:在系统中设有通道控制部件,每个通道挂若干 I/O 设备,主机在执行 I/O操作时,只需启动有关通道,通道将执行通道程序,从而完成 I/O 操作。
以上四种控制方式的具体过程在后面介绍,这里不再赘述。
2.I/O 接口
1)什么是 I/O 接口
I/O 接口是主机和 I/O 设备之间的交接界面,通过接口可以实现主机和 I/O 设备之间的信息交换。主机和 I/O 设备各自具有自己的工作特点,它们在信息形式和工作速度上具有很大的差异,I/O 接口正是为了解决这些差异而设置的。
在计算机组成原理课程中,I/O设备与CPU之间的接口是I/O接口(I/O控制器),在操作系统课程中,I/O设备与CPU之间的接口是设备控制器。这两者是指同一个部件。
2)I/O 接口的分类
按照电路和 I/O 设备的复杂程度,I/O 接口的硬件主要分为两大类。
☆ I/O 接口芯片:这些芯片大多是集成电路,通过 CPU 输入不同的命令和参数,并控制相关的 I/O 电路和简单的 I/O 设备作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA 控制器、并行接口等。
☆ I/O 接口控制卡:有若干个集成电路按一定的逻辑组成为一个部件,或者直接与 CPU同在主板上,或是一个插件插在系统总线插槽上。按照接口的连接对象来分,又可以将它们分为串行接口、并行接口、键盘接口和磁盘接口等。
3)总线连接方式的 I/O 接口电路
如图 11.2 所示为总线结构的计算机,每一台 I/O 设备都是通过 I/O 接口挂到系统总线上的,图中的 I/O 总线包括数据线、设备选择线、命令线和状态线。
☆ 数据线:I/O 与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。
☆ 设备选择线:也可称为地址线,用来传送设备码的,它的根数取决于 I/O 指令中设备码的位数。
☆ 命令线:一组单向总线,用以传输 CPU 向设备发出的各种命令信号,如启动清除、读、写等。
☆ 状态线:一组单向总线,将 I/O 设备的状态向主机报告的信号线,如设备是否准备就绪,是否向 CPU 发出中断请求等。
4)I/O 接口的功能
I/O 接口的功能如下。
☆ 选址功能:通过设备选择线上的设备号来确定选择哪个设备。设备选择线上的设备号与本设备号相符时,应发出设备选中信号 SEL,这种功能可通过接口内的设备选择电路来实现。
☆ 传送命令的功能:当 CPU 向 I/O 发出命令时,I/O接口应具备传送命令信息的功能,所以通常在 I/O 接口中设有存放的命令寄存器以及命令译码器。命令寄存器用来存放 I/O 指令中的命令码,它受设备选中信号控制。命令线和接口电路的命令寄存器相连,只有被选中的设备 SEL 信号有效,命令寄存器才可接受命令线上的命令码。
☆ 传送数据的功能:要求接口中具有缓冲能力的数据通路,完成数据传送,接口中通常设有数据缓冲寄存器,它用来暂存 I/O 设备与主机准备交换的信息,它与 I/O 总线中的数据线是相连的。
☆ 反映 I/O 设备工作状态的功能:为使 CPU 能及时了解 I/O 设备的工作状态,接口内必须设置一些反映设备状态的触发器。所有的状态触发器都与I/O 总线中的状态线相连,另外根据需要应增设一些中断屏蔽触发器和出错标志触发器等。