输入输出系统
2023-1-2
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

概述

IO的发展

  • 早期:
    • 分散连接,每一个设备有专门的控制电路(增删麻烦) CPU和IO串行工作:程序查询方式
  • 接口模块和DMA阶段 总线连接,CPU和IO并行工作:中断方式和DMA方式
  • 具有通道结构的阶段:一个小型的处理器,只用来管理IO
  • 具有IO处理机的阶段:甚至当IO不工作,IO处理器可以分担CPU的一部分工作

IO组成

  • I/O软件
    • IO指令:CPU指令的一部分,在CPU中,用来控制IO的指令。分为操作码(表示是IO指令),命令码(具体哪条指令),设备码(IO地址)
      notion image
      通道指令:通道自身的指令,指出数组的首地址、传送字数、操作命令,如IBM/370通道指令为64位
  • I/O硬件

IO和主机之间的联系方式

  • I/O 设备编址方式
    • 统一编址,IO设备地址为内存中的一个,用取数,存数指令就可以完成CPU和IO的交流
    • 单独编址,输入输出指令使用了作用的IO指令
  • 设备选址
    • 使用设备选择电路识别是否被选中
  • 传送方式:串行/并行 也就是说和主机之间是并行还是串行
  • 联络方式
    • 立即响应
    • 异步工作采用应答信号
      • notion image
    • 同步工作采用同步时标
  • I/O 设备与主机的连接方式
    • 辐射式连接
      • notion image
    • 总线连接:便于增删设备
外部设备通过接口和主机连接,接口可以给主机传送控制命令,数据缓存(外部输入时缓存到接口中,完成格式转换等工作),便于增删设备
 
 

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

程序查询方式
由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
notion image
当程序调用IO,CPU一直查询设备的状态字,查看是否准备好了,当准备好了就从IO接口读出字到CPU中。
 
程序中断方式
notion image
IO设备在准备的过程中,CPU不工作,只有在交换数据的时候CPU才打断现行程序开始工作
notion image
 
DMA方式
主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无需调用中断服务程序
 
周期挪用(周期窃取):利用CPU不访问存储器的那些周期来实现DMA操作,此时DMA可以使用总线而不用通知CPU也不会妨碍CPU的工作。
notion image
窃取的是总线的使用权,因为有一些指令被存放入cache中,所以只要执行的指令不需要访存就可以不中断CPU执行,CPU和IO并行工作
 
三种方式的CPU 工作效率比较
notion image
 

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

notion image
 
 

I/O设备

notion image
外部设备大致分三类
  • 人机交互设备 :键盘、鼠标、打印机、显示器
  • 计算机信息存储设备:磁盘、光盘、磁带
  • 机-机通信设备:调制解调器等

输入设备

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

输出设备

  1. 显示器
      • 字符显示:字符发生器
      • 图形显示:主观图像
      • 图像显示:客观图像
  1. 打印机
      • 击打式:点阵式(逐字、逐行)
      • 非击打式:激光(逐页) 喷墨(逐字)

其他

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

多媒体设备

 
 

I/O 接 口

为什么要接口

  • 实现设备选择
  • 实现数据缓冲,达到速度匹配目的
  • 数据串-并格式转化
  • 电平转化
  • 传送控制命令
  • 反映设备的状态(“忙”,“中断请求,“就绪”)
 

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

  • 设备选择线
  • 数据线
  • 命令线
  • 状态线
notion image

接口的功能和组成

功能
组成
选址功能
设备选择电路
传送命令的功能
命令寄存器、命令译码器
传送数据的功能
数据缓冲寄存器
反映设备状态的功能
设备状态标记
  • 完成触发器D
  • 工作触发器B
  • 中断请求触发器INTR
  • 屏蔽触发器MASK
完成触发器用于确定当前设备是否完成了工作;工作触发器用于发出工作命令;中断请求触发器用于对CPU发出中断;屏蔽触发器用于表示的是主机当前的工作比IO的中断工作重要,这时即使IO设备发出中断,接口也不会向主机提出。
 

I/O 接口的基本组成

notion image

接口类型

  • 按数据传送方式分类
    • 并行接口 Intel 8255
    • 串行接口 Intel 8251
  • 按功能选择的灵活性分类类,有:可编程和不可编程接口两种,前者的功能及操作方式可用程序改变或选择(如Intel8255、Intel8251);不可编程接口不能由程序来改变其功能,但可通过硬连线逻辑来实现不同的功能(Inter8212)。
  • 按通用性分类有:通用接口( Intel 8255、 Intel 8251)和专用接口( Intel 8279、 Intel 8275),前者可供多种I/O设备使用;后者是为某类外设或某种用途专门设计的
  • 按数据传送的控制方式分类,有中断接口( Intel 8259)和DMA接口( Intel 8257)
 
 

程序查询方式

程序查询流程

notion image
多个设备按照一定的优先级,查询各个接口
 

实现程序查询的过程

  1. 保存寄存器内容
  1. 设置计数值,控制传输数据量 每完成一个字的传输就-1
  1. 设置主存缓冲区地址
  1. 启动外设
  1. 询问IO是否准备好,否持续查询,是下一步
  1. 传送下一个数据
  1. 修改主存地址
  1. 修改计数器值,判断是否传输完,没有则循环到启动外设步骤
 
notion image

程序查询方式的接口电路

notion image
notion image
设备选择电路通过将自己的设备地址和地址线上的地址比较,这里主要是地址线
当被选中和被启动命令线
标记D为0,表示数据未准备好,标记B为1,表示设备被启动
CPU开始不断查询D信号
设备准备好数据,将数据输入DBR中
设备工作结束信号被送入
标记D被改为1,标记B为0
 
 

程序中断方式

中断的概念

notion image

I/O 中断的产生

notion image

程序中断方式的接口电路

  • 配置中断请求触发器和中断屏蔽触发器
    • notion image
      当只有D为正逻辑(IO完成工作),MASK为负逻辑(中断未被屏蔽),且当收到CPU的查询信号是,中断请求才发出
  • 排队器
    • 可以通过硬件和软件实现,硬件放在CPU或接口电路中(链式排队器)
      notion image
      notion image
      notion image
      紫色为低电平,黄色为高电平
      当通过非门为低电平表示前面没有需要中断的接口,当intp的输出为高电平表示这个设备发出了中断。
  • 中断向量地址形成部件
    • 可以通过软件和硬件方式
    • 硬件向量法,由硬件产生向量地址(中断向量地址),再有向量地址找到入口地址中断向量:中断服务程序的开始地址,同时还有一些准备工作,例如执行该中断时需要的一些非体系寄存器的值
    •  
      notion image
      notion image
      只有一个输入,表示是哪个中断,输出为一个地址值
  • 程序中断方式接口电路的基本组成
    • notion image
      当一个设备发出中断经过排队后,设备排队器根据输入来的中断发出一个中断地址
 
 

I/O 中断处理过程

CPU 响应中断的条件和时间
  • 条件
    • 允许中断触发器 EINT = 1
    • 用 开中断 指令将 EINT 置 “1”
    • 用 关中断 指令将 EINT 置“ 0” 或硬件自动复位
  • 时间
    • 当D = 1(随机)且 MASK = 0 时
    • 在每条指令执行阶段的结束前
    • CPU发中断查询信号(将 INTR 置“1” )
 
I/O 中断处理过程
notion image
 
notion image
 

中断服务程序流程

中断服务程序的流程
  • 保护现场:程序断点的保护(中断隐藏指令完成)和寄存器的保护(进栈指令)
  • 中断服务: 对不同的I/O 设备具有不同内容的设备服务
  • 恢复现场:出栈指令
  • 中断返回:中断返回指令
单重中断和多重中断
  • 单重中断: 不允许现行的中断服务程序被中断
  • 多重中断: 可以允许现行的中断服务程序被更高级别的中断中断
 
单重中断和多重中断的服务程序流程
notion image
区别在于开中断的位置不同,单重中断不能再被中断,所以EINT开启时间晚
 
notion image
 
 
 
主程序和服务程序抢占CPU 示意图
notion image
 

DMA 方式

DMA方式的特点

DMA 和程序中断两种方式的数据通路
notion image
DMA 与主存交换数据的三种方式
  • 停止 CPU 访问主存:控制简单,CPU 处于不工作状态或保持状态,未充分发挥 CPU 对主存的利用率
    • notion image
  • 周期挪用(或周期窃取)
    • DMA 访问主存有三种可能
    • CPU 此时不访存
    • CPU 正在访存
    • CPU 与 DMA 同时请求访存
    • 此时 CPU 将总线控制权让给 DMA
      notion image
  • DMA 与 CPU 交替访问
    • notion image

DMA 接口的功能和组成

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

DMA 的工作过程

DMA传送过程
notion image
  • 预处理
    • notion image
  • 数据传送
    • notion image
      notion image
      notion image
      notion image
  • 后处理
    • 校验送入主存的数是否正确
    • 是否继续用DMA
    • 测试传送过程是否正确,错则转诊断程序
    • 由中断服务程序完成
 
DMA 接口与系统的连接方式
  • 具有公共请求线的 DMA 请求
    • notion image
  • 独立的 DMA 请求
    • notion image
 
DMA 方式与程序中断方式的比较
中断方式
DMA方式
数据传送
程序
硬件
响应时间
指令执行结束
存取周期结束
处理异常情况
不能
中断请求
传送数据
后处理
优先级
 

DMA 接口的类型

选择型
在物理上连接多个设备,在逻辑上只允许连接一个设备
notion image
 
多路型
在物理上连接多个设备,在逻辑上允许连接多个设备同时工作
notion image
 
 
多路型 DMA 接口的工作原理
notion image
  • 计算机基础
  • 计算机组成原理
  • 存储器计算机的运算方法
    目录