计算机组成原理学习笔记(5):I/O

第五章 I/O

5.1 概述

5.1.1 输入输出系统的发展概况

外部设备的独立性越来越强

计算机组成原理学习笔记(5):I/O

5.1.2 输入输出系统的组成

I/O软件部分分为I/O指令和通道指令

I/O指令

属于CPU指令

操作码相当于一个标志,指明I/O设备

命令码相当于普通指令的操作码,指出对I/O做出什么操作

设备码给出某一个I/O设备的编码或者具体某个I/O寄存器的位置(这些寄存器也就是I/O的端口)

计算机组成原理学习笔记(5):I/O

通道指令

通道是一种小型的DMA处理器,能够实现小型的I/O设备和主机之间直接进行信息传送。通道有自己的处理器,有的通道也有自己的存储器,通道能执行通道自身的指令。

通道指令就是通道自身的指令。

一般情况下,编程人员在应用程序当中为了调用外部设备使得外部设备能够工作,应用程序需要增加广义I/O指令(包含所使用的I/O设备,数据传输主存的首地址,传输数据长度,传输数据方向),操作系统根据广义I/O指令和设置的参数,编写对应的通道程序,有了通道程序之后就可以控制通道完成I/O操作

计算机组成原理学习笔记(5):I/O

I/O硬件

计算机组成原理学习笔记(5):I/O

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

I/O设备编址方式

  • 统一编址 直接和内存进行统一编址,可以直接使用取数、存数的操作进行I/O的操作。评价:CPU的指令集会比较简单。如果内存空间的编址空间比较大的话我们就可以采用统一编址。

  • 不统一编址(单独编址)独立于内存编址之外,位数等不一样,输入输出不能采用CPU原有的取数存数指令,使用专用的I/O指令

设备选址

用设备选择电路识别是否被选中(比较CPU给出的设备地址和设备中自己保存的设备地址)

传送方式

串行:适合远程传输,传输速度较慢

并行:同时传输的数据比较多

联络方式

立即响应

异步工作采用应答信号

计算机组成原理学习笔记(5):I/O

同步工作采用同步时标

连接方式

辐射式连接

计算机组成原理学习笔记(5):I/O

总线连接(便于增删设备)

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

程序查询方式

原地检查原地踏步状态较多,对CPU的浪费较大,CPU还需要连接内存和I/O更加增大了时间浪费

计算机组成原理学习笔记(5):I/O

程序中断方式

内存和外设之间想要通信还是需要CPU的参与

当传输数据量非常小的时候保护现场进入中断的程序可能都有十几条这个情况下,进入中断就显得得不偿失

可以做到I/O与cpu并行工作

计算机组成原理学习笔记(5):I/O

计算机组成原理学习笔记(5):I/O

DMA方式

程序查询方式、中断方式的终端还是需要CPU链接内存和I/O进行信息传输,通过执行程序的方式完成数据传输

DMA控制器建立了主存和I/O之间的直接数据通道

不中断现行程序(只需要在数据存取的时候申请一次数据和地址总线占用一个存取周期就可以了)

周期挪用(周期窃取)

计算机组成原理学习笔记(5):I/O

三种方式的比较

计算机组成原理学习笔记(5):I/O

计算机组成原理学习笔记(5):I/O

5.2 I_O设备

5.2.1 概述

计算机组成原理学习笔记(5):I/O

5.2.2 输入设备

计算机组成原理学习笔记(5):I/O

5.2.3 输出设备

计算机组成原理学习笔记(5):I/O

5.2.4 其它

计算机组成原理学习笔记(5):I/O

5.2.5 多媒体设备

5.3 I_O接口

5.3.1 概述

为什么要设置接口?(接口的功能)

实现设备的选择

实现数据缓冲达到速度匹配(接口之间的速度不一样)

实现数据串一并格式转换(有的外部设备是通过串行传输的需要在接口中完成转换,在进行传输)

实现电平转换

传送控制命令

反映设备的状态(“忙”、“就绪”、“中断请求”)

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

计算机组成原理学习笔记(5):I/O

5.3.2 接口的功能和组成

计算机组成原理学习笔记(5):I/O

五部分电路

计算机组成原理学习笔记(5):I/O

5.3.3 接口类型

计算机组成原理学习笔记(5):I/O

5.4 程序查询方式

5.4.1 程序流程

计算机组成原理学习笔记(5):I/O

进行I/O通信时可能需要使用到CPU中的某个寄存器,需要对这个寄存器进行预先的处理(将它保存到内存中或者压入到堆栈中或者保存到cpu其他空闲的寄存器中)

设置计数器是用来控制通信数据的大小,每传输完一个数据,计数值迭代一次

计算机组成原理学习笔记(5):I/O

5.4.2 程序接口电路

计算机组成原理学习笔记(5):I/O

以输入为例

初始化状态(设备工作结束后)

计算机组成原理学习笔记(5):I/O

设备工作结束后,更改状态

计算机组成原理学习笔记(5):I/O

5.5 程序中断方式

5.5.1 中断的概念

CPU在执行程序的过程中,如果发生意外事件或者特殊事件,CPU要中断当前程序的处理,(通过中断服务或程序的方式)转而处理特殊事件或者意外事件,处理结束后,要返回到被中断的程序断点

计算机组成原理学习笔记(5):I/O

5.5.2 I/0中断的产生

计算机组成原理学习笔记(5):I/O

5.5.3 程序中断方式的接口电路

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

计算机组成原理学习笔记(5):I/O

排队器

计算机组成原理学习笔记(5):I/O

中断向量地址形成部件

中断向量:程序状态字,中断服务程序的入口地址

向量地址:中断向量保存的内存地址

根据排队器的输出(只有一个1其他全是0)作为输入进行转换生成向量地址(指出中断服务的入口地址,或者是跳转到中断服务的那条跳转指令)

计算机组成原理学习笔记(5):I/O

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

计算机组成原理学习笔记(5):I/O

5.5.4 I/O中断处理过程

计算机组成原理学习笔记(5):I/O

计算机组成原理学习笔记(5):I/O

计算机组成原理学习笔记(5):I/O

计算机组成原理学习笔记(5):I/O

5.5.5 中断服务程序流程

中断服务程序的流程

保护现场

  • 程序断点的保护:中断隐指令完成

  • 寄存器内容的保护:进栈指令

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

恢复现场:出栈指令

中断返回:中断返回指令

单重中断和多重中断

单重中断:不允许中断现行的中断服务

多重中断:允许级别更高的中断源中断现行的中断服务程序

计算机组成原理学习笔记(5):I/O

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

计算机组成原理学习笔记(5):I/O

5.6 DMA方式

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

计算机组成原理学习笔记(5):I/O

5.6.2 DMA与主存交换数据的三种方式

停止CPU访问主存

计算机组成原理学习笔记(5):I/O

周期挪用(或周期窃取)

计算机组成原理学习笔记(5):I/O

DMA与CPU交替访问

使用权决定于时序

计算机组成原理学习笔记(5):I/O

5.6.3 DMA接口的功能和组成

接口组成是由接口功能确定的

DMA的接口功能

向CPU申请DMA传送

处理总线控制权的转交

管理系统总线、控制数据传送

确定数据传送的首地址和长度

修正传送过程中的数据地址和长度

DMA传送结束时,给出操作完成信号

接口组成

BR基址寄存器

DREQ设备请求

DACK控制信号

HRQ总线请求信号

HLDA总线应答信号

WC计数器(标记传输的个数)

计算机组成原理学习笔记(5):I/O

DMA的工作过程

DMA传送过程

计算机组成原理学习笔记(5):I/O

预处理

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

数据传送

计算机组成原理学习笔记(5):I/O

  • 执行主程序

  • 完成数据传输

  • 以数据输入为例

计算机组成原理学习笔记(5):I/O

  • 以数据输出为例

计算机组成原理学习笔记(5):I/O

后处理

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

DMA接口与系统的连接方式

  • 具有公共请求线的DMA请求

计算机组成原理学习笔记(5):I/O

  • 独立的DMA请求

计算机组成原理学习笔记(5):I/O

DMA方式与程序中断方式的比较

中断方式 DMA方式
数据传送 通过程序实现 通过硬件实现
响应时间 中断发生时候当前指令执行结束进行中断响应 CPU本次存取周期结束进行DMA的响应
在程序执行过程中能否用于处理异常情况 可以 不可以
在过程中都有使用到中断请求,其中中断请求的作用 用于传送数据 用于后处理
优先级

5.6.4 DMA接口类型

选择型

计算机组成原理学习笔记(5):I/O

多路型

因为有子通道,每次使用一个子通道的时候单独设置所需要地址、控制等参数,多个设备可以并行着准备数据,准备好后通过子通道向通道提出数据传输请求

计算机组成原理学习笔记(5):I/O

多路型工作原理

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

计算机组成原理学习笔记(5):I/O