1. 概述
输入输出系统的发展
-
分散连接:
cpu 和io设备串行工作, 程序查询方式 -
接口模块 和DMA阶段
io 接口,DMA控制器,与主机,和cpu 相互配合,完成数据的输入和输出操作。
总线连接:
io设备通过接口, 连接在总线上。 一个总线连接多个设备,总线另外一段和主机相联。
总线连接的情况下,CPU和I/O设备并行工作方式包括:中断方式和DMA方式。
并且在中断方式,和DMA方式中, 信息传输过程中,或者信息传输完成后,cpu也需要参加部分信息传输中的处理工作;
- 具有通道结构的阶段;
为了是cpu和 io 两者的工作可以并行起来,
或者是输入输出系统,他的数据输入,输出,或者管理 尽可能的从主机中脱离出来,出现具有通道结构的 IO阶段;
通道可以看成是一个小型的 DMA控制器,能够执行通道程序,
通道有自身的指令系统。
通过执行通道程序,可以控制连接在通道上的io设备,和主机之间直接进行信息传输。
- 具有io 处理机的阶段
io处理机可以是专用的处理机,
在大型计算机中,可以使用现代微处理器 直接作为io处理机来使用, 控制io 设备的工作。
在没有io设备工作的时候, 此时io处理器可以当做主机的备用处理器, 完成相应的计算任务。
随着,输入输出系统的发展, 数据的输入输出操作逐渐从
cpu中分离出来,外部设备的独立性越高。
1.1输入输出系统的组成
1.1.1 io 软件:
- io 指令,
是主处理器或者cpu 指令集中的一部分,
程序员使用这些io 指令,将他们编写到应用程序中;
cpu 通知执行这些io指令,控制外部设备。
是外部设备,和cpu ,主机三者之间能够协调工作
包含 操作码,命令码, 设备码;
操作码:是io指令的一个标志, 表明这是io指令
命令码:相当于cpu指令集中,普通指令的一个操作码。 表明对io 设备操作,进行查询, 输入,输出,以及其他控制。
设备码:给出io 设备的编码,io设备的地址, 或者是io设备中,某一个寄存器它的地址, 这些寄存器称为io的端口.
- 通道指令
通道指令是自身的指令, 通道有自己的控制器,通道是一种小型的DMA处理机,能够实现io设备和主机之间直接进行信息传送。
通道自身的指令
指出数组的首地址, 传送字数, 操作命令;
如ibm/370通道指令为64位;
通道能够执行,由通道指令组成的通道程序。
编程人员在应用程序中,为了调用外部设备,让外部设备能够工作。
应用程序中,需要增加广义io指令,广义io指令需要指出参加数据传输的io 设备, 数据传输主存的首地址,传输数据的长度, 传输方向(是向io设备传输,还是向主存传输)
操作系统根据广义io指令,给出的参数,以及要求的操作,编写一个由通道指令组成的通道程序。
并将通道程序放在内存,或者放在通道自身内存 中指定的位置
, 然后启动,通道并工作。
通道根据通道程序的首地址后,开始工作,控制io设备,完成相应的输入和输出的工作。
1.1.2 io 硬件
输入输出设备+ io接口,
设备通过接口连接在总线上,和主机完成信息交换。
若采用通道方式:
设备连接设备控制器, 设备控制器连接子通道, 子通道连接通道。
1.2 主机和io设备之间的通信方式
1.2.1 io 设备编址方式
-
统一编址: 将io设备的地址当做是内存地址的一部分, 将内存中的一部分地址取出,当做io设备的地址,此时cpu可以使用取数, 存数指令 来控制io设备。
-
不统一编址:
也称单独编址, 在内存地址空间之外,对外部设备专门设置一个地址空间。
为了区分是对内存操作, 还是io设备操作, 输入输出指令便不能在使用计算机系统中原始的取数, 存数指令。
有专门的io 指令,进行控制。
设备选址: 使用设备选择电路识别是否被选中。
传送方式: 串行,并行。
1.2.2 联络方式
外部设备接受或者发送 数据时的响应情况:
立即响应: 适用于结构简单的设备
异步工作: 采用应答信号
并行方式: io设备接受数据,io端口将数据准备好后, 发送ready信号,告诉io设备,端口中的数据已经准备好。
此时,io设备对端口中的数据进行读取,并且给出应答信号。
同步工作:采用同步时标
设备与主机之间,如果要同步工作的话,
必须有一个定宽,定距的指标, 规定某个时间点必须开始规定的工作, 并且在另一时间点,该工作必须结束。
1.3 io设备与主机之间的连接方式
辐射式 连接
每台设备都配有一套,控制线路和一组信号线。 不便于增删设备。
总线连接: 便于增删设备
外部设备通过接口和主机进行连接。
接口能够向外部设备传送主机的控制命令,
可以向主机传送外部设备的状态信息。
并且接口,也可以完成数据缓冲,外部设备的输入数据可以先缓存到接口当中,完成数据的格式转换等操作,然后输入到主机当中。
或者是主机中的数据,在接口中进行缓冲,经过格式的变换,传送给外部设备。
2. io设备与主机信息传送的控制方式
2.1 程序查询方式
cpu 和外设是采用串行方式进行工作的,
在这种方式下,数据想要在io设备和内存之间实现信息交换的话,必须要通过cpu,
而cpu的处理速度远远大于io设备, 导致cpu会有较长的时间处于等待状态,而没有工作。
数据准备好之后, 将数据送到io接口当中的数据缓冲, 将状态置为数据准备好。
在这个过程中,cpu除了读取数据, 还起到了一种数据中转的角色,即数据先放到cpu的寄存器中, 然后再从cpu的寄存器中放到内存中
程序查询的方式: 在数据准备过程中, cpu 一致处于等待状态。
2.2 程序中断方式
cpu和io设备之间实现了部分的并行工作,
即io设备在进行数据准备过程中,cpu可以运行自己的程序。
程序中断方式 对 程序查询方式进行了改进。
io工作可以分为两个阶段:
- 自身准备阶段: cpu 不查询;
- 与主机交换信息阶段: cpu 暂停现行程序;
在发出启动设备的指令后, cpu继续执行原来的程序。
当外部设备准备好接受数据或者发出数据后,会向cpu提出中断请求,cpu停止当前的执行程序,从而和io设备进行数据交换。
在执行中断时候,要保存现场,保存程序断点。
程序返回时,需要恢复现场,恢复程序断点。
程序查询执行方式, 程序中断方式; 这两种方式仍然是cpu 必须需要参与的。 内存和io设备在两端,cpu在中间,相当于一个中转站,并且也负责处理数据
。
那么,能否有一种方式,数据的输入,输出工作,不需要 cpu 参与工作。
2.3 DMA方式
DMA 控制器:在主存和io 之间有一条直接数据通道。
- cpu交出总线控制权, DMA 借用一个存取周期
DMA控制器, 控制主存和外设之间进行信息交换时,一定会使用到总线,包括数据线, 地址线, 控制线。 这个时候,需要cpu将总线的控制权交出来,让DMA使用, 交出的时间是一个存取周期。在该存取周期中, dma 直接在内存和io设备之间,进行数据交换,并且此时cpu不能使用总线.
使得cpu不再参与数据的输入,输出工作。
使得外部设备和内存之间,建立直接的连接,由DMA 控制器和DMA接口直接控制外部设备和内存之间,进行数据交换。
2.4 三种方式比较
从程序查询方式–> 程序中断方式 —> DMA 方式
io系统的自治能力越来越强
3. 外部设备
外部设备通过io接口与主机之间进行数据交换。
主机则通过io接口,获取外部设备的当前状态。
外部设备大致分类:
- 人机交互设备: 键盘, 鼠标, 打印机, 显示器
- 计算机信息存储设备: 磁盘, 光盘, 磁带
- 计算机与计算机之间的通信设备, 调制解调器
3.1 输入设备
按键, 判断哪个键按下, 将此键翻译成ascii 码,
鼠标:
机械式, 金属球, 电位器
光电式, 光电转换器;
触摸屏
3.2 输出设备
显示器:
- 字符显示, 字符发生器
- 图形显示, 主观图形, 人工自己画出的。
- 图像显示, 客观图像
打印机
- 击打式, 点阵式 (逐字, 逐行)
- 非击打式, 激光,逐页显示, 喷墨 逐字
3.3 小模块
A/D, D/A 模拟,数字, 数字模拟 转换器;
终端: 由键盘和显示器组成
完成 显示控制, 与存储, 键盘管理以及通信控制;
汉字处理: 汉字输入, 汉字存储, 汉字输出。
多媒体技术