输入输出系统

Posted 计算机小白的爬坑之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入输出系统相关的知识,希望对你有一定的参考价值。

输入输出系统

一、概述

1、输入输出系统的组成

(1) I/O 软件
  1. I/O 指令:CPU 指令的一部分。

    操作码: I/O 指令标志。
    命令码:指出对I/O 设备做什么操作。
    设备码:给出 I/O 设备地址或 I/O 设备中某一寄存器的地址。

  2. 通道指令:实现I/O设备和主机直接信息传送,通道自身的指令。
    指出数组的首地址、传送字数、操作命令。

(2) I/O 硬件

设备、I/O 接口:设备通过接口,连接在总线上,和主机完成信息交换。
通道方式:设备——设备控制器——子通道——通道

2、I/O 设备与主机的联系方式

(1) I/O 设备编址方式
  1. 统一编址:取部分内存地址作为 I/O 设备地址,用取数、存数指令对 I/O 设备进行控制,不需要专门的 I/O 指令。
  2. 不统一编址:在内存地址外,设置一个专门的地址空间对 I/O 设备进行编址,输入输出有专门的 I/O 指令。
(2) 设备选址

设备选择电路识别是否被选中。

(3) 传送方式
  1. 串行
  2. 并行
(4) 联络方式
  1. 立即响应
  2. 异步工作,采用应答信号方式,分并行,串行两种

  3. 同步工作,采用同步时标
(5) I/O 设备与主机的连接方式

辐射式连接:每台设备都配有一套控制线路和一组信号线,不便于增删设备。

总线连接:外部设备通过接口和主机进行连接,接口能够向外部设备传送主机的控制命令,可以向主机传送设备的状态信息。便于增删设备。

3、I/O设备与主机信息传送的控制方式

(1) 程序查询方式

内存——CPU——外设
CPU和外设采用串行方式进行工作。CPU效率低。

(2) 程序中断方式

内存——CPU——外设
CPU实现和 I/O设备部分并行工作,I/O设备 进行数据准备时,CPU还可以执行自己的程序。

程序中断方式流程

(3) DMA 方式:周期挪用(周期窃取)

内存——DMA控制器——外设
由 DMA 控制器/接口,获取CPU的总线控制权,在一个存取周期中,直接控制外部设备和内存之间进行数据交换。不中断CPU的现行程序,但是在数据交换过程中,CPU不能使用系统总线,不能对内存进行访问。

(4) 三种方式的 CPU 工作效率比较


二、外部设备

1、概述


外部设备大致分三类

  1. 人机交互设备:键盘、鼠标、打印机、显示器
  2. 计算机信息存储设备:磁盘、光盘、磁带
  3. 机——机通信设备:调制解调器等

2、输入设备

  1. 键盘:判断哪个键按下,将此键翻译成 ASCII 码 (编码键盘法)
  2. 鼠标:
    机械式 金属球 电位器
    光电式 光电转换器
  3. 触摸屏

3、输出设备

  1. 显示器
    (1) 字符显示:字符发生器
    (2) 图形显示:主观图像
    (3) 图像显示:客观图像

  2. 打印机
    (1) 击打式
    (2) 非击打式
    点阵式(逐字、逐行)
    激光(逐页)喷墨(逐字)

4、其他

  1. A/D、D/A:模拟/数字(数字/模拟)转换器;
  2. 终端:由键盘和显示器组成,完成显示控制与存储、键盘管理及通信控制;
  3. 汉字处理:汉字输入、汉字存储、汉字输出;

5、多媒体设备

三、I/O接口

1、概述

接口的功能:

  1. 实现设备的选择
  2. 实现数据缓冲达到速度匹配
  3. 实现电平转换
  4. 传送控制命令
  5. 反映设备的状态(“忙”、“就绪”、 “中断请求”)
  6. 实现数据串 并格式转换

2、接口的功能和组成

(1) 总线连接方式的 I/O 接口电路

(2) 接口的功能和组成

(3) I/O 接口的基本组成

3、接口类型

  1. 按数据传送方式分类:并行接口;串行接口
  2. 按功能选择的灵活性分类:可编程接口;不可编程接口
  3. 通用性分类:通用接口;专用接口
  4. 数据传送的控制方式分类:中断接口;DMA 接口

四、程序查询方式

1、程序查询流程

(1) 单个设备

(2) 多个设备

(3)程序流程

2、程序查询方式的接口电路

  1. 首先是设备选择电路,由他来判断设备是否是参加这次传输的设备。
  2. CPU通过地址线给出外部设备的地址,设备选择电路把自己的设备地址或者是端口号和地址线上的地址相比较,若相同,说明这次启动就是连接在这个接口电路上的设备,SEL信号有效。
  3. 启动命令和SEL都有效的情况下,对两个状态进行复位。标记D为0,表示数据还没有准备好,标记B为1,表示设备开始工作。
  4. 准备好的数据保存在DBR中。
  5. 送入设备工作结束信号。此时,D标记为1,B标记为0.。
  6. 准备就绪信号被送出。

五、程序中断方式

1、中断的概念

中断指的是CPU在执行程序的时候出现了某些异常突发情况,需要紧急处理,CPU必须暂停当前的任务去处理紧急突发事件,处理完之后又返回原程序被打断的地方去继续执行。

2、I/O中断的产生

3、程序中断方式的接口电路

(1) 配置中断请求触发器和中断屏蔽触发器

(2) 排队器

(3) 中断向量地址形成部件

由 硬件 产生 向量地址,再由 向量地址 找到 入口地址。

(4) 程序中断方式接口电路的基本组成

4、I/O 中断处理过程

(1) CPU 响应中断的条件和时间

条件
允许中断触发器 EINT = 1

  1. 用 开中断 指令将 EINT 置 “1”
  2. 用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位
    响应中断时间
    当 D = 1(随机)且 MASK = 0 时
    在每条指令执行阶段的结束前,CPU查询是否有中断请求,进行中断响应。CPU 发 中断查询信号,通过查询信号,把每一个接口中有中断请求的接口中中断触发器 INTR 置“1”。
(2) I/O 中断处理过程

  1. 首先是设备选择电路,由他来判断设备是否是参加这次传输的设备。
  2. CPU通过地址线给出外部设备的地址,设备选择电路把自己的设备地址或者是端口号和地址线上的地址相比较,若相同,说明这次启动就是连接在这个接口电路上的设备,SEL信号有效。
  3. 启动命令和SEL都有效的情况下,对两个状态进行复位。标记D为0,表示数据还没有准备好,标记B为1,表示设备开始工作。
  4. 准备好的数据保存在DBR中。
  5. 送入设备工作结束信号。此时,D标记为1,B标记为0.。
  6. 如果接口提出的中断请求没有被屏蔽,则MASK输出为1。D触发器输出为1,经过与非门、非门,将值送给INTR中,CPU在执行一条指令,执行阶段结束以后,发出中断查询信号,将接口中中断请求触发器置为“1”,同时启动排队器进行排队,经过排队器排队,排队器输出信号只有一个为1,其他均为0。CPU发出中断响应信号,形成向量地址,地址经过数据线传给CPU,传给PC,CPU利用地址取出中断服务程序的入口地址,完成中断服务程序。

5、中断服务程序流程

(1) 中断服务程序的流程
  1. 保护现场
    程序断点的保护:中断隐指令完成
    寄存器内容的保护:进栈指令
  2. 中断服务
    对不同的 I/O 设备具有不同内容的设备服务
  3. 恢复现场:出栈指令
  4. 中断返回:中断返回指令
(2) 单重中断和多重中断

单重中断:允许中断现行的中断服务程序;
多重中断:允许级别更高的中断源中断现行的中断服务程序,也称为中断嵌套。

(3) 单重中断和多重中断的服务程序流程

(4) 主程序和服务程序抢占 CPU 示意图


宏观 上 CPU 和 I/O 并行 工作
微观 上 CPU 中断现行程序 为 I/O 服务

六、DMA方式

1、DMA 方式的特点

(1) DMA 和程序中断两种方式的数据通路

DMA不需要CPU作为媒介进行数据传输。

(2) DMA 与主存交换数据的三种方式
  1. 停止 CPU 访问主存

    控制简单,CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率。

  2. 周期挪用(或周期窃取)
    周期挪用是指利用CPU不访问 存储器的那些周期来实现DMA操作,此时DMA可以使用总线而不用通知CPU也不会妨碍CPU的工作。周期挪用并不减慢CPU的操作,但可能需要复杂的时序电路,而且 数据传送过程是不连续的和不规则的。

DMA 访问主存有三种可能:
• CPU 此时不访存,存储器和总线的使用权分配给DMA。
• CPU 正在访存,DMA等待。
• CPU 与 DMA 同时请求访存,DMA优先,CPU 将总线控制权让给 DMA。

  1. DMA 与 CPU 交替访问
    不需要 申请建立和归还 总线的使用权

CPU 工作周期:
C1 专供 DMA 访存
C2 专供 CPU 访存

2、DMA 接口的功能和组成

(1) DMA 接口功能
  1. 向 CPU 申请 DMA 传送;
  2. 处理总线 控制权的转交;
  3. 管理 系统总线、控制 数据传送;
  4. 确定 数据传送的 首地址和长度,修正 传送过程中的数据 地址 和 长度;
  5. DMA 传送结束时,给出操作完成信号;
(2) DMA 接口组成

AR:主存地址寄存器
WC:字计数器
BR:数据缓冲寄存器
DAR:设备地址寄存器

3、DMA 的工作过程

(1) DMA 传送过程
  1. 预处理
    通过几条输入输出指令预置如下信息
    • 通知 DMA 控制逻辑传送方向(入/出)
    • 设备地址 DMA 的 DAR
    • 主存地址 DMA 的 AR
    • 传送字数 DMA 的 WC

  2. 数据传送

数据传送过程(输入):
1、数据从外部设备缓存到BR中,通知DMA接口,数据已准备好,设备通过DREQ信号通知DMA控制逻辑,然后通过总线向CPU和总线提出控制请求,CPU在允许的情况下给出应答,CPU放弃对主存和总线的占用。
2、AR寄存器通过地址线给出内存单元地址,使系统总线上地址有效。然后,DMA控制器给设备一个应答信号DACK,通知设备可以进行传输。
3、DMA发出对内存的对写控制指令,同时BR将数据通过数据线送到总线上,每传输一个数据,AR+1,WC+1。
4、然后判断是否传输完,没有则继续;若传输完成,WC值发生溢出,溢出信号送入中断机构,使中断机构中的中断触发器置 1,参加中断排队。

图示为数据输出;
5. 后处理
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成

(2) DMA 接口与系统的连接方式
  1. 具有公共请求线的 DMA 请求
  2. 独立的 DMA 请求
(3) DMA 方式与程序中断方式的比较

4、DMA 接口的类型

(1) 选择型

在 物理上 连接 多个 设备,在 逻辑上 只允许连接 一个 设备。

(2) 多路型

在 物理上 连接 多个 设备,在 逻辑上 允许连接 多个 设备同时工作,但在传输时只允许一个设备进行传输。

(3) 多路型 DMA 接口的工作原理

同时发出DMA请求,速度越高的设备优先级越高。

以上是关于输入输出系统的主要内容,如果未能解决你的问题,请参考以下文章

存储中断总线及输入输出系统

第1课 操作系统概论

(计算机组成原理)第七章输入和输出系统-第四节3:I/O方式之DMA方式

20155304 《信息安全系统设计基础》第十三周学习总结

linux-1-10

7-2输入/输出系统-I/O方式