计算机组成原理——输入输出系统

输入输出系统

5.1 概述

一、输入输出系统的发展概况

  1. 早期
  • 分散连接
  • CPU 和 I/O设备串行工作 程序查询方式
  1. 接口模块和 DMA 阶段
  • 总线连接
  • CPU 和 I/O设备 并行 工作
    • 中断方式
    • DMA 方式
  1. 具有通道结构的阶段
  2. 具有 I/O 处理机的阶段

二、输入输出系统的组成

1. I/O 软件
(1) I/O 指令

CPU 指令的一部分
在这里插入图片描述

(2) 通道指令

通道自身的指令

指出数组的首地址、传送字数、操作命令

2. I/O 硬件

设备 I/O 接口
设备 设备控制器 通道

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

1. I/O 设备编址方式

(1) 统一编址 用取数、存数指令
(2) 不统一(单独)编址 有专门的 I/O 指令

2. 设备选址

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

3. 传送方式

(1) 串行
(2) 并行

4. 联络方式

(1) 立即响应
(2) 异步工作采用应答信号

在这里插入图片描述

(3) 同步工作采用同步时标

5. I/O 设备与主机的连接方式

(1) 辐射式连接

在这里插入图片描述

(2) 总线连接

便于增删设备

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

1. 程序查询方式

在这里插入图片描述

我们来看下图这部分:

在这里插入图片描述

CPU运行速度快IO设备运行速度慢,那么CPU大部分时间都会处于一个踏步等待的状态

2. 程序中断方式

在这里插入图片描述

CPU发出启动IO设备的指令,IO设备启动工作自身准备,数据准备,在准备的过程中CPU会去干其他的事情,IO设备尊卑完成后向CPU发出中断信息,CPU接受信息中断程序,然后专门去处理IO设备的请求

此方式CPU 和 I/O 部分的并行工作,没有踏步等待现象和中断现行程序

在这里插入图片描述

在这里插入图片描述

3. DMA 方式

主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作

在这里插入图片描述

与程序中断方式相比,将CPU与IO设备数据传输接到中释放出来

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

在这里插入图片描述

在这里插入图片描述

5.2 I/O设备(非重点)

一、概述

在这里插入图片描述

外部设备大致分三类

  • 人机交互设备 键盘、鼠标、打印机、显示器
  • 计算机信息存储设备 磁盘、光盘、磁带
  • 机—机通信设备 磁盘、光盘、磁带

二、输入设备

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

三、输出设备

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

四、其他

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

五、多媒体技术

5.3 I/O接口

一、概述

为什么要设置接口?

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

二、接口的功能和组成

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

在这里插入图片描述

  • 设备选择线(单向):参与本次信息交换的设备码,端口号,设备地址
  • 数据线(双向):数据的输入与输出
  • 命令线(单向):传输命令信号
  • 状态线(单向):传输状态信号
2. 接口的功能和组成
功能组成
选址功能设备选择电路
设备选择电路命令寄存器、命令译码器
传送数据的功能数据缓冲寄存器
反映设备状态的功能设备状态标记

在这里插入图片描述

3. I/O 接口的基本组成

在这里插入图片描述

三、接口类型

  1. 按数据 传送方式 分类

    并行接口

    串行接口

  2. 按功能 选择的灵活性 分类

    可编程接口

    不可编程接口

  3. 通用性 分类

    通用接口

    专用接口

  4. 按数据传送的 控制方式 分类

    中断接口

    DMA 接口

5.4 程序查询方式

一、程序查询流程

1. 查询流程

单个设备

在这里插入图片描述

多个设备

在这里插入图片描述

2. 程序流程

在这里插入图片描述

其中设置计数值的目的是控制传输数据量

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

以输入为例

在这里插入图片描述

当有多个设备的时候要按优先级进行查询

5.5 程序中断方式

一、中断的概念

CPU在执行程序的过程当中,如果发生意外或特殊事件,CPU要中断当前程序的处理,转而去处理特殊事件,中断结束后要返回之前的断点,继续执行之前的程序

二、I/O 中断的产生

CPU与设备是并行的工作的

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

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

在这里插入图片描述

中断屏蔽触发器的作用是当CPU正在处理一项非常重要的事情时不能被中断,此时中断请求就会被屏蔽

2. 排队器

当有多个设备设,要按优先级进行排队,一般速度快的优先级高,因为一般速度快的存储时间相对较短

排队功能的实现常见的由链式排队器

在这里插入图片描述

设备 1#、2#、3#、4# 优先级按 降序排列

INTR = 1 有请求

3. 中断向量地址形成部件

确认了选择哪个中断源的中断请求后,下一步就是找到中断服务程序的入口地址

中断号:中断编号
中断向量:中断服务程序的入口地址,包括中断地址,偏移量,状态信号
向量地址:中断向量的地址

在这里插入图片描述

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

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

在这里插入图片描述

四、I/O 中断处理过程

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

允许中断触发器 EINT = 1
用 开中断 指令将 EINT 置 “1”
用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位

(2) 时间

当 D = 1(随机)且 MASK = 0 时
在每条指令执行阶段的结束前
CPU 发 中断查询信号(将 INTR 置“1”)

2. I/O 中断处理过程

在这里插入图片描述

五、中断服务程序流程

1. 中断服务程序的流程
(1) 保护现场
  • 程序断点的保护 中断隐指令完成
  • 寄存器内容的保护 进栈指令
(2) 中断服务

对不同的 I/O 设备具有不同内容的设备服务

(3) 恢复现场

出栈指令

(4) 中断返回

中断返回指令

2. 单重中断和多重中断
  • 单重中断 不允许中断现行的中断服务程序
  • 多重中断 允许级别更高的中断源中断现行的中断服务程序
3. 单重中断和多重中断的服务程序流程

在这里插入图片描述

中断周期要做三件事:保护断点、幸存中断服务程序的入口地址、关中断
保护现场由入栈指令完成
恢复现场由出栈指令完成

单重与多重的区别在于多次将开中断任务提前了

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

5.6 DMA 方式

直接访问存储器方式

一、DMA 方式的特点

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

在这里插入图片描述

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

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

在这里插入图片描述

(2) 周期挪用(或周期窃取)

DMA 访问主存有三种可能
• CPU 此时不访存:DMA可以访存,CPU继续执行不访存的指令
• CPU 正在访存:DMA等待 CPU访存
• CPU 与 DMA 同时请求访存 同时请求访存,DMA优先
此时 CPU 将总线控制权让给 DMA

在这里插入图片描述

(3) DMA 与 CPU 交替访问(哒咩)

不需要 申请建立和归还 总线的使用权

在这里插入图片描述

二、DMA 接口的功能和组成

1. DMA 接口功能

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

2. DMA 接口组成

在这里插入图片描述

地址寄存器AR:CPU要告诉DMA接口传输的数据的位置,故用一个地址寄存器来存储

计数器WC:需要知道传输数据的量的多少,由计数器寄存器存储

每完成一个数据的传输AR和WC都会+1

设备地址寄存器DAR:用于存储外部设备的地址

数据缓冲器BR用于暂存外部设备的数据

输入输出过程需要DMA控制逻辑,控制在给定时刻给出给定的信号外部设备如果要进行DMA传输,外部设备向DMA控制器发出请求信号DREQ,DMA向外部设备发出反馈信息DACK,DMA控制器向CPU发出请求信号HRQ,CPU向DMA控制器发出放会信号HCDA

中断机构用于WC=0时中断DMA

三、DMA 的工作过程

1. DMA 传送过程

预处理、数据传送、后处理

在这里插入图片描述

(1)预处理

数据传输前需要的一些处理

  • 通知DMA 控制逻辑传送方向(入/出)
  • 设备地址DMA 的DAR
  • 主存地址DMA 的AR
  • 传送字数DMA 的WC
(2)数据传送

在这里插入图片描述

数据传送过程以输出为例

在这里插入图片描述

  1. 将BR中的数据传入设备当中,此时BR没数据了
  2. 设备发出DREQ信号给DMA控制逻辑,相当于设备对DMA控制逻辑说我BR没数据了,你快点开始干活
  3. DMA控制逻辑通过总线向CPU提出总线和存储器的占用请求HRQ
  4. CPU在允许的情况下给出应答HLDA,CPU放弃总线和存储器的占用权
  5. 进行数据传输就要给出主存的地址,通过AR得到
  6. 由DMA控制器发出DACK通知设备已经可以开始设备传输了
  7. 主存将数据通过数据线存到BR中,AR和WC的数据+1
  8. WC判断数据是否传输完,如果WC计数为0WC向中断机构发出溢出信号
  9. 中断机构向CPU发出中断请求
(5)后处理

校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成

2. DMA 接口与系统的连接方式(可以类比总线)
(1) 具有公共请求线的 DMA 请求(类比总线判优的链式查询方式)

在这里插入图片描述

(2) 独立的 DMA 请求(类比总线判优的独立请求方式)

在这里插入图片描述

3. DMA 方式与程序中断方式的比较
中断方式DMA 方式
数据传送程序硬件
响应时间指令执行结束存取周期结束
处理异常情况不能
中断请求传送数据后处理
优先级

四、DMA 接口的类型

1. 选择型

物理上 连接 多个 设备

在 逻辑上 只允许连接 一个 设备

在这里插入图片描述

2. 多路型

物理上 连接 多个 设备

数据准备阶段 允许连接 多个 设备同时工作

但在 数据传输阶段 还时只能有 一个 设备

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值