输入输出系统
1.概述
1.1 I/O的发展概况
-
早期阶段
早期的I/O设备种类少、I/O与主存交换信息必须通过CPU,且每个I/O都有独立的线路和CPU相连,这样不仅线路复杂,CPU的工作效率也极低。 -
接口模块和DMA阶段(本文的讲述重点)
I/O通过接口与主机相连,且采用总线结构。接口有一些特定的功能,如缓存数据,串并转换,提出中断请求等等,能够使CPU与I/O具有一定的并行功能。总线结构就能简化电路,利于增加设备。因为接口模块还是不能完全地实现CPU与I/O的并行工作,所以演化出DMA方式,即I/O与主存直接交换信息,无需经过CPU,CPU只要在一个存取周期内交出总线控制权。
-
具有通道结构的阶段
-
具有I/O处理机的阶段
1.2 输入输出系统的组成
- I/O软件
- 当采用接口模块方式时,需要I/O指令。I/O指令 = 操作码+命令码+设备码。
其中操作码是用来区别I/O指令和其他的指令,如访存指令等等
命令码体现具体操作
设备码体现I/O设备的选择码 - 当采用通道管理方式时,除了I/O指令外,还需要通道指令。
- I/O硬件
- 带有接口的I/O系统中,一般包括接口模块和I/O设备两部分。
- 带有通道的I/O系统中,一般一个通道和多个设备控制器相连,一个设备控制器可以控制多台同类型设备。
1.3 I/O设备与主机的联系方式
- I/O设备编址方式
统一编址:将I/O地址看作存储器地址的一部分
不统一编址:设置专用I/O指令,不占用主存空间 - 设备寻址
- 传送方式
并行传送:多根数据线
串行传送:单根数据线 - 联络方式
立即响应方式:对于工作速度十分缓慢的I/O设备而言,一旦CPU发出I/O指令,它们便立即响应。
异步工作采用应答信号联络:当I/O设备的速度和主机速度不匹配时,就需要采用这种方式,类似于“握手”信号。
同步工作采用同步时标联络:当I/O设备的速度和主机速度完全同步时,有一个统一的时钟控制他们工作。 - I/O设备与主机的连接方式
辐射式:每台I/O都有一套控制线和信号线,扩增设备非常不方便。
总线式:通过一组总线,将所有I/O设备与主机相连。
1.4 I/O设备与主机信息传送的控制方式
这个信息传送的控制方式一共有五种,分别是:程序查询方式,程序中断方式,DMA方式,I/O通道方式,I/O处理机方式。这里主要讲述前三种方式
- 程序查询方式:CPU需要不断地查询I/O设备是否已准备好,从而控制I/O设备和CPU进行信息交换。显然这种会让CPU原地踏步等待的方式限制了CPU的效率。
2.程序中断方式:CPU不再查询I/O的状态,而是I/O准备好后,向CPU发出中断请求,之后CPU在给予响应,开始数据传输。显然这种方法极大地提高了CPU的工作效率
- DMA方式:I/O直接和主存进行数据交换,完全不需要CPU的参与。CPU在整个过程中,只需要把总线使用权让给DMA即可,CPU可以继续地做算逻运算,不能和主存进行数据交换。DMA占用的存取周期又称为窃取周期或挪用周期。
三种传送控制方式的比较:
2. I/O设备
I/O设备可以分为三类:人机交互设备,计算机信息的存储设备,机-机通信设备。
其中人机交互设备又可以分为输入设备,输出设备两种。
常见的输入设备和输出设备这里就不详细讲述了。
3. I/O接口
3.1 概述
I/O设备通常是通过I/O接口与主机获得联系的。
设置I/O接口的理由如下
- 每台I/O设备都有他们自己的设备号,通过I/O接口来选择设备。
- I/O设备种类繁多,速度不一,I/O接口可以实现数据缓冲,从而使速度匹配。
- 进行串并格式的转换
- I/O设备的输入输出电平可能与CPU输入输出电平不同,接口可以实现电平转换。
- 通过接口,CPU可以传送控制命令给I/O
- 通过接口可以监视I/O工作状态,并可以保存状态信息给CPU查询
注意:接口≠端口。端口是指接口电路中的一些寄存器,根据存放信息的不同,可以分为数据端口,控制端口,状态端口。若干个端口加上相应的控制逻辑才能组成接口。
3.2 接口的功能和组成
I/O总线包括:数据线、设备选择线、命令线、状态线
接口的功能和组成:
- 选址功能。这个通过设备选择电路实现。
- 传送命令的功能。CPU通过I/O接口向I/O设备发出命令,所以I/O接口需要命令寄存器和命令译码器。
- 传送数据的功能。I/O接口需要有数据传送和数据缓冲的功能,因此接口需要数据缓冲寄存器。
- 反映I/O工作状态的功能。需要完成触发器D和工作触发器B来实现,用于表示I/O设备的暂停状态、准备就绪、准备状态。
4. 程序查询方式
完成正确的查询需要执行三条指令:
- 测试指令。检查I/O设备是否准备就绪
- 传送指令。若准备就绪,就开始传送数据
- 转移指令。若没有准备就绪,就继续转移到测试指令。
程序查询方式的接口电路:
5. 程序中断方式
中断:
计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理完成后再返回现行程序的间断处。
5.1 程序中断方式的接口电路
首先介绍一些必要的硬件线路:
-
中断请求触发器INTR和中断屏蔽触发器MASK。
-
排队器
以链式排队器为例:
排队器的精髓在于,只要有一个中断源得到了响应,其余设备是不可能得到CPU的响应。
-
中断向量地址形成部件(又叫设备编码器)
中断向量:
状态字或中断服务程序的入口地址
中断向量地址:
状态字或中断服务程序的入口地址的地址
入口地址的寻找可以用软件的方法,也可以用硬件的方法。硬件的方法就是根据排队器的输出,通过中断向量地址形成部件,得到中断向量地址。如下图所示:
注意12H是中断向量地址,200是中断向量。
接口电路的基本组成:
5.2 中断服务程序的流程
流程由以下四大部分组成:
- 保护现场
其有两个含义,第一是保存程序断点,第二十保存通用寄存器和状态寄存器的内容。前者可以用中断隐指令完成,后者可以用中断服务程序完成。 - 中断服务
- 恢复现场
- 中断返回
单重中断服务程序流程图和多重中断服务程序流程图:
6. DMA方式
- DMA方式是主存直接和I/O进行信息传输,不需要CPU的插入。
- 如果高速I/O和CPU同时访问主存,那么CPU需要把总线的占有权给DMA接口视同。
- DMA与主存交换数据的方式有三种:停止CPU访问主存、周期挪用(周期窃取)、DMA与CPU交替访问。
6.1 DMA接口的功能和组成
DMA接口有以下五个功能
- 向CPU申请DMA传送
- 能够处理CPU给DMA接口的总线控制权的转交
- 在DMA期间管理系统总线,控制数据传输
- 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。
- 数据传输完成后,给DMA操作完成的信号。
DMA接口的基本组成:
- 主存地址寄存器AR(Address Register)。存放主存中需要交换数据的内存地址。
- 字计数器WC(Word Counter)。记录传送数据的总字数,通常用补码表示。
- 数据缓冲寄存器BR(Buffer Register)。用于暂存每次传送的数据。
- DMA控制逻辑。负责管理DMA的传送过程。
- 中断机构。通过WC的溢出信号,向CPU提出中断请求,报告一批数据传送结束。
- 设备地址寄存器DAR(Data Address Register)。DAR存放I/O设备的设备码或者表示设备信息存储区的寻址信息。
7. DMA工作过程
DMA传送过程有三步
- 预处理
- 数据传送
- 后处理
DMA接口和系统的连接方式有两种。(这个和系统总线中的总线判优控制类似)
- 公共请求线
- 独立请求
DMA接口的类型:选择型DMA接口、多路型DMA接口