计算机组成原理知识总结——输入输出系统篇

1.概述

1.1 I/O的发展概况

  1. 早期阶段
    早期的I/O设备种类少、I/O与主存交换信息必须通过CPU,且每个I/O都有独立的线路和CPU相连,这样不仅线路复杂,CPU的工作效率也极低。

  2. 接口模块和DMA阶段(本文的讲述重点
    I/O通过接口与主机相连,且采用总线结构。接口有一些特定的功能,如缓存数据,串并转换,提出中断请求等等,能够使CPU与I/O具有一定的并行功能。总线结构就能简化电路,利于增加设备。

    因为接口模块还是不能完全地实现CPU与I/O的并行工作,所以演化出DMA方式,即I/O与主存直接交换信息,无需经过CPU,CPU只要在一个存取周期内交出总线控制权。

  3. 具有通道结构的阶段

  4. 具有I/O处理机的阶段

1.2 输入输出系统的组成

  1. I/O软件
  • 当采用接口模块方式时,需要I/O指令。I/O指令 = 操作码+命令码+设备码。
    其中操作码是用来区别I/O指令和其他的指令,如访存指令等等
    命令码体现具体操作
    设备码体现I/O设备的选择码
  • 当采用通道管理方式时,除了I/O指令外,还需要通道指令。
  1. I/O硬件
  • 带有接口的I/O系统中,一般包括接口模块和I/O设备两部分。
  • 带有通道的I/O系统中,一般一个通道和多个设备控制器相连,一个设备控制器可以控制多台同类型设备。

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

  1. I/O设备编址方式
    统一编址:将I/O地址看作存储器地址的一部分
    不统一编址:设置专用I/O指令,不占用主存空间
  2. 设备寻址
  3. 传送方式
    并行传送:多根数据线
    串行传送:单根数据线
  4. 联络方式
    立即响应方式:对于工作速度十分缓慢的I/O设备而言,一旦CPU发出I/O指令,它们便立即响应。
    异步工作采用应答信号联络:当I/O设备的速度和主机速度不匹配时,就需要采用这种方式,类似于“握手”信号。
    同步工作采用同步时标联络:当I/O设备的速度和主机速度完全同步时,有一个统一的时钟控制他们工作。
  5. I/O设备与主机的连接方式
    辐射式:每台I/O都有一套控制线和信号线,扩增设备非常不方便。
    总线式:通过一组总线,将所有I/O设备与主机相连。

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

这个信息传送的控制方式一共有五种,分别是:程序查询方式,程序中断方式,DMA方式,I/O通道方式,I/O处理机方式。这里主要讲述前三种方式

  1. 程序查询方式:CPU需要不断地查询I/O设备是否已准备好,从而控制I/O设备和CPU进行信息交换。显然这种会让CPU原地踏步等待的方式限制了CPU的效率。

    2.程序中断方式:CPU不再查询I/O的状态,而是I/O准备好后,向CPU发出中断请求,之后CPU在给予响应,开始数据传输。显然这种方法极大地提高了CPU的工作效率
    好
  2. DMA方式:I/O直接和主存进行数据交换,完全不需要CPU的参与。CPU在整个过程中,只需要把总线使用权让给DMA即可,CPU可以继续地做算逻运算,不能和主存进行数据交换。DMA占用的存取周期又称为窃取周期或挪用周期。
    在这里插入图片描述
    三种传送控制方式的比较:
    在这里插入图片描述

2. I/O设备

I/O设备可以分为三类:人机交互设备,计算机信息的存储设备,机-机通信设备。
其中人机交互设备又可以分为输入设备,输出设备两种。
常见的输入设备和输出设备这里就不详细讲述了。

3. I/O接口

3.1 概述

I/O设备通常是通过I/O接口与主机获得联系的。
设置I/O接口的理由如下

  1. 每台I/O设备都有他们自己的设备号,通过I/O接口来选择设备。
  2. I/O设备种类繁多,速度不一,I/O接口可以实现数据缓冲,从而使速度匹配。
  3. 进行串并格式的转换
  4. I/O设备的输入输出电平可能与CPU输入输出电平不同,接口可以实现电平转换。
  5. 通过接口,CPU可以传送控制命令给I/O
  6. 通过接口可以监视I/O工作状态,并可以保存状态信息给CPU查询

注意:接口≠端口。端口是指接口电路中的一些寄存器,根据存放信息的不同,可以分为数据端口,控制端口,状态端口。若干个端口加上相应的控制逻辑才能组成接口。

3.2 接口的功能和组成

I/O总线包括:数据线、设备选择线、命令线、状态线
接口的功能和组成:

  1. 选址功能。这个通过设备选择电路实现。
  2. 传送命令的功能。CPU通过I/O接口向I/O设备发出命令,所以I/O接口需要命令寄存器命令译码器
  3. 传送数据的功能。I/O接口需要有数据传送和数据缓冲的功能,因此接口需要数据缓冲寄存器
  4. 反映I/O工作状态的功能。需要完成触发器D工作触发器B来实现,用于表示I/O设备的暂停状态、准备就绪、准备状态。
    在这里插入图片描述

4. 程序查询方式

完成正确的查询需要执行三条指令:

  1. 测试指令。检查I/O设备是否准备就绪
  2. 传送指令。若准备就绪,就开始传送数据
  3. 转移指令。若没有准备就绪,就继续转移到测试指令。
    在这里插入图片描述
    程序查询方式的接口电路:
    在这里插入图片描述

5. 程序中断方式

中断:计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理完成后再返回现行程序的间断处。

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

首先介绍一些必要的硬件线路:

  1. 中断请求触发器INTR和中断屏蔽触发器MASK。
    在这里插入图片描述

  2. 排队器
    以链式排队器为例:
    排队器的精髓在于,只要有一个中断源得到了响应,其余设备是不可能得到CPU的响应。
    在这里插入图片描述

  3. 中断向量地址形成部件(又叫设备编码器)
    中断向量:状态字或中断服务程序的入口地址
    中断向量地址:状态字或中断服务程序的入口地址的地址
    入口地址的寻找可以用软件的方法,也可以用硬件的方法。硬件的方法就是根据排队器的输出,通过中断向量地址形成部件,得到中断向量地址。如下图所示:
    在这里插入图片描述
    注意12H是中断向量地址,200是中断向量。

接口电路的基本组成:
在这里插入图片描述

5.2 中断服务程序的流程

流程由以下四大部分组成:

  1. 保护现场
    其有两个含义,第一是保存程序断点,第二十保存通用寄存器和状态寄存器的内容。前者可以用中断隐指令完成,后者可以用中断服务程序完成。
  2. 中断服务
  3. 恢复现场
  4. 中断返回

单重中断服务程序流程图和多重中断服务程序流程图:
在这里插入图片描述

6. DMA方式

  1. DMA方式是主存直接和I/O进行信息传输,不需要CPU的插入。
  2. 如果高速I/O和CPU同时访问主存,那么CPU需要把总线的占有权给DMA接口视同。
  3. DMA与主存交换数据的方式有三种:停止CPU访问主存、周期挪用(周期窃取)、DMA与CPU交替访问。

6.1 DMA接口的功能和组成

DMA接口有以下五个功能

  1. 向CPU申请DMA传送
  2. 能够处理CPU给DMA接口的总线控制权的转交
  3. 在DMA期间管理系统总线,控制数据传输
  4. 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。
  5. 数据传输完成后,给DMA操作完成的信号。

DMA接口的基本组成:
在这里插入图片描述

  1. 主存地址寄存器AR(Address Register)。存放主存中需要交换数据的内存地址
  2. 字计数器WC(Word Counter)。记录传送数据的总字数,通常用补码表示。
  3. 数据缓冲寄存器BR(Buffer Register)。用于暂存每次传送的数据。
  4. DMA控制逻辑。负责管理DMA的传送过程。
  5. 中断机构。通过WC的溢出信号,向CPU提出中断请求,报告一批数据传送结束。
  6. 设备地址寄存器DAR(Data Address Register)。DAR存放I/O设备的设备码或者表示设备信息存储区的寻址信息。

7. DMA工作过程

DMA传送过程有三步

  1. 预处理
  2. 数据传送
  3. 后处理

DMA接口和系统的连接方式有两种。(这个和系统总线中的总线判优控制类似)

  1. 公共请求线
    在这里插入图片描述
  2. 独立请求
    在这里插入图片描述
    DMA接口的类型:选择型DMA接口、多路型DMA接口
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值