系列文章目录
前言
哈工大计组网课笔记,教材是《计算机组成原理》(唐朔飞)
(一)概述:
1.输入输出系统的发展概述
1.1.早期(外设少,计算机少)
分散连接:每一个设备都有专门的控制线路,这些控制线路甚至和CPU的控制线路设计在一起,紧耦合,此时增加和删除外部设备都非常难。
外部设备和主机的连接主要采用程序查询方式,CPU和I/O设备串行工作,I/O在进行输入输出的时候,CPU必须运行相应的程序或者等待。
1.2.接口模块和DMA阶段
总线连接:I/O设备通过接口连接在总线上,一个总线可以连接多个设备,总线另外一端与主机相连。
外部设备和主机的连接主要采用中断方式和DMA方式,使CPU和I/O设备并行工作。
在信息传输过程中或信息传输完成之后,CPU仍要参与部分信息传输的处理工作,为了使CPU的工作和I/O的工作并行起来,或者是输入输出系统数据输入输出的管理控制尽可能的从主机当中独立出来,出现了具有通道结构的输入输出系统。
1.3.具有通道结构的阶段
通道看作一种简单的处理器,或者小型的,功能更强的DMA控制器,能够执行通道程序,有自己的指令系统,通过执行通道程序,可以控制连接在通道上的I/O设备与主机之间直接进行信息传输。
1.4.具有I/O处理机的阶段
在大型计算机当中,可以直接用微处理器当作I/O处理机来用,控制I/O设备工作。在某些大型计算机中,直接用与主机当中完全相同的处理器当作I/O设备,此时I/O处理器非常强大,甚至在没有I/O设备工作时,I/O处理机可以作为主机的处理器,完成相应的计算任务。
随着I/O系统发展,数据的输入输出操作,逐渐的被从CPU当中分离出来,外部设备独立性越来越强。
通道补充:
通道是一种小型的DMA处理器,能够实现小型的I/O设备和主机之间直接进行信息传送。通道有自己的处理器,有的通道也有自己的存储器,通道能执行通道自身的指令。
具有通道的计算机系统通常采用主机、通道、I/O设备控制器、I/O设备四级连接方式。
通道结构具有较大的变化和扩展余地,对较小的系统,可将设备控制器与I/O设备合并在一起,将通道与CPU合并在一起。对较大的系统,则可单独设置通道。对更大的系统,可将通道发展为专门的I/O处理机,甚至更强功能的前端机。
2.输入输出系统的组成
2.1.I/O软件
2.1.1.I/O指令
CPU指令集当中的I/O指令
- 操作码:标识,表示这是一个I/O指令。
- 命令码:相当于CPU指令集当中的普通指令的操作码,指出了对I/O设备进行的操作。
- 设备码:给出I/O设备的编码,即设备的地址,或者是I/O设备当中某一个寄存器的地址,这些寄存器称为I/O的端口
2.1.2.通道指令
通道指令就是通道自身的指令。
通道有自己的控制器,有的通道还有自己的存储器,通道能够执行由通道指令组成的通道程序。
一般情况下,编程人员在应用程序当中为了调用外部设备使得外部设备能够工作,应用程序需要增加广义I/O指令(包含所使用的I/O设备,数据传输主存的首地址,传输数据长度,传输数据方向),操作系统根据广义I/O指令和设置的参数,编写对应的通道程序,有了通道程序之后就可以控制通道完成I/O操作
通道指令的参数需要指出数组的首地址、传送字数、操作命令。
2.2.I/O硬件
- 设备----I/O接口----总线----CPU
- 通道:设备----设备控制器----子通道----通道
3.I/O设备与主机的联系方式
3.1.I/O设备的编址
- 统一编址:直接和内存进行统一编址,可以直接使用取数、存数的操作进行I/O的操作。
CPU的指令集会比较简单。如果内存空间的编址空间比较大的话就可以采用统一编址。
不统一编址(单独编址):独立于内存编址之外,位数等不一样,输入输出不能使用CPU原有的取数存数指令,使用专用的I/O指令
3.2.I/O设备的选址
用设备选择电路识别是否被选中,比较CPU给出的设备地址和设备中自己保存的设备地址
3.3.传送方式
- 串行:数据一位一位进行传输,传输速度较慢,但适合远距离传输。
- 并行:同时有多位数据进行传输,所有数据线有多条。
3.4.联络方式
外部设备接受或发送数据的响应情况。
- 立即响应:对一些结构简单,状态数量比较少的设备,接受或输入数据后可直接显示。
- 异步工作采用应答信号:CPU与接口之间一般都是并行传输,异步工作应答信号主要是在I/O接口和I/O设备之间采用,为了进行并行工作,I/O接口和I/O设备之间需要有多条的类使总线结构的数据线,来完成数据并行的输入输出,双方之间还要采用应答信号。
同步工作采用同步时标
3.5.I/O设备与主机的连接方式
辐射式连接(分散连接)
总线连接:外部设备通过接口和主机进行连接,接口可以向外设传送主机控制命令,也可以向主机传送外设状态信息,还可以完成数据缓存。
4.I/O设备与主机信息传送的控制方式
4.1.程序查询方式
CPU和I/O串行工作
CPU一手托两家,原地检查原地踏步状态较多,对CPU的浪费较大,CPU还需要连接内存和I/O更加增大了时间浪费。
4.2.程序中断方式
可以做到I/O与cpu并行工作
程序中断方式的流程
CPU解放得并不彻底,内存和外设之间想要通信还是需要CPU的参与,而且要保证程序被中断之后返回能正确的执行,中断时要保护现场,保存程序断点,程序返回时要恢复现场,回复程序断点,这些都需要一定的指令完成,会消耗一定的时间。当传输数据量非常小时,保护现场进入中断的程序可能仍然有十几条指令,此时,进入中断就显得效率低下。
在中断方式中,如果要从外设传输信息到内存,仍然需要将数据先写入CPU,从CPU将数据写入到内存,内存和I/O设备的连接关系依然是CPU在中间。
4.3.DMA方式
在内存和I/O之间建立了直接的通路,内存和I/O通过DMA控制器,可以直接进行数据交换。这样I/O与主机数据交换时,将CPU进一步从输出输入工作中解放出来,不中断现行程序。
- 周期挪用(周期窃取):DMA控制器控制主存和外设之间进行数据交换,一定会使用到总线,包括地址线,数据线,控制线。如果DMA利用这些总线进行数据交换的话,那么CPU需要把总线控制权让出来,让出的时间就是一个存取周期,在这个存取周期内,DMA需要完成I/O和内存的数据交换。与此同时,CPU不能使用总线对内存进行访问。
通道、I/O处理机的方式,感兴趣可自行阅读计算机系统结构的教材。
4.4.三种方法的CPU效率的比较
(二)外部设备
1.概述
1.1.外设分类
- 人机交互设备----键盘、鼠标、打印机、显示器
- 计算机信息存储设备----磁盘、光盘、磁带
- 机-机通信设备----调制解调器、网卡
2.输入设备
3.输出设备
4.其他
5.多媒体设备
关键技术:虚拟现实技术,数据压缩解压缩、编码技术、语音图像的识别等等
(三)I/O接口
1.概述
为什么要设置接口?
实现设备的选择
实现数据缓冲达到速度匹配:外部设备之间的工作速度不一样。
实现数据串----并格式转换:接口和主机之间采用并行传输,外部设备与接口之间可能采用串行传输,数据需要在接口中完成组装或拆解做格式转化,再进行传输。
实现电平转换:主机和外设工作电平不一致,通过I/O接口完成电平转化,使主机与I/O协调工作。
传送控制命令:CPU将控制命令传输到接口当中,由这个命令控制外部设备进行工作
反映设备的状态:“忙”、“就绪”、“中断请求”。
2.接口的功能和组成
2.1.总线连接方式的I/O接口电路
主机通过I/O总线和设备选择线连接
- 设备选择线:传输的是参与本次信息交换的设备的设备码或者是端口号,即设备的地址,这个地址传输到I/O接口进行匹配,判断是否是这个接口上的设备要参与信息传输,所以此线为单向线。
- 数据线:完成数据的输入输出,条数与接口类型有关,为双向线。
- 命令线:将来自主机的命令传输到I/O接口当中,命令经过缓冲和译码后控制设备完成相应操作,也是单向线。
- 状态线:将外设工作状态从I/O接口送到I/O总线,进而送到主机,也是单向线。
2.2.接口的功能和组成
各种标记反应的状态
完成触发器D:标记设备是否准备好,数据是否准备好。
工作触发器B:标记外部设备工作状态,是否忙。
中断请求触发器INTR:外设完成准备后主动向主机提出中断请求,因此接口需要有中断请求触发器。
屏蔽触发器MASK:设备可以向接口发出中断请求,但是否允许接口将其发给主机,还要看设备中断请求的重要性,即尽管设备已经完成准备,依然不能向主机发出中断请求,因为当前主机处理的工作比这次输入输出操作重要性要高。
2.3.I/O接口的基本组成
此图加上格式和电平的转化功能,会更加复杂