ch5_1输入输出系统

1. 概述

输入输出系统的发展

  1. 分散连接:
    cpu 和io设备串行工作, 程序查询方式

  2. 接口模块 和DMA阶段

io 接口,DMA控制器,与主机,和cpu 相互配合,完成数据的输入和输出操作。
总线连接:
io设备通过接口, 连接在总线上。 一个总线连接多个设备,总线另外一段和主机相联。

总线连接的情况下,CPU和I/O设备并行工作方式包括:中断方式和DMA方式。
并且在中断方式,和DMA方式中, 信息传输过程中,或者信息传输完成后,cpu也需要参加部分信息传输中的处理工作;

  1. 具有通道结构的阶段;
    为了是cpu和 io 两者的工作可以并行起来,
    或者是输入输出系统,他的数据输入,输出,或者管理 尽可能的从主机中脱离出来,出现具有通道结构的 IO阶段;

通道可以看成是一个小型的 DMA控制器,能够执行通道程序,
通道有自身的指令系统。

通过执行通道程序,可以控制连接在通道上的io设备,和主机之间直接进行信息传输。

  1. 具有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 设备编址方式

  1. 统一编址: 将io设备的地址当做是内存地址的一部分, 将内存中的一部分地址取出,当做io设备的地址,此时cpu可以使用取数, 存数指令 来控制io设备。

  2. 不统一编址:
    也称单独编址, 在内存地址空间之外,对外部设备专门设置一个地址空间。

为了区分是对内存操作, 还是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  模拟,数字,  数字模拟 转换器;
终端: 由键盘和显示器组成
完成 显示控制, 与存储, 键盘管理以及通信控制;

汉字处理:  汉字输入, 汉字存储, 汉字输出。

多媒体技术

猜你喜欢

转载自blog.csdn.net/chumingqian/article/details/129809231