计算机组成原理(4)IO

目录

4.1.概述

4.2.组成

4.3.编址

4.4.IO接口

4.5.传输控制

4.5.1.程序查询方式

4.5.2.程序中断方式

4.5.3.DMA方式


4.1.概述

IO,input output的缩写,即计算机的输入输出系统。这里我们要明确输入输出的边界是哪里。向主机内部送称为输入,向主机外部送称为输出,直白且笼统的来说的话向磁盘或者网络里送称为输出,向内存里送称为输入。

整个IO的发展经历了以下几个阶段:

  • 分散连接
  • IO总线
  • 通道
  • IO处理机

分散链接:

早期主机和IO设备分散直连,IO的控制由CPU来负责,因此整个IO期间IO和CPU需要一直保持联络,由于速率的不对等,因此一个IO周期中CPU大部分时间处于是停等状态。

IO总线:

为了提高效率,出现了IO接口和DMA控制器。IO设备通过IO接口连入IO总线,DMA控制器专门负责IO的控制,从而解放出CPU,使得CPU在IO周期间不必停等。CPU和IO之间是并行的。此方式中IO的控制均交给DMA控制器来完成(指令交给控制器来负责),但是控制器不具备数据的处理功能(如读数、写数),因此数据的处理功能仍然要走CPU。

通道:

通道,一种简单的处理器,比起DMA多了数据处理功能,使得IO的控制、数据处理完全从CPU中剥离出来,为CPU减负。一个通道可以连接多个IO设备,即一条通道供多个IO设备“行走”。

IO处理机:

通道技术的升级版,直接采用和主机CPU结构相同的小型CPU来完全负责IO的控制和数据处理。

4.2.组成

IO系统由软件、硬件两部分组成:

  • 软件
    • IO指令
    • 通道指令
  • 硬件

IO指令:

CPU指令集中的一部分

操作码,IO指令的标志,标识该指令为IO指令。

命令码,指出对IO指令做什么操作。

设备吗,标识所要操作的IO设备是哪个。

通道指令:

由于通道本质上是一个简单的处理器因此有自己的一套指令集。通道指令中指出要传输的成块数据的首地址、传输的长度、操作指令。

硬件:

IO系统中的硬件包括:设备、IO接口、通道、设备控制器。

4.3.编址

IO设备接入以后会被分配一个设备地址,主机根据设备地址找到相应的IO设备。分配设备地址的方式有如下几种:

  • 统一编址
  • 非统一编址

统一编址:

内存中留出一块来作为IO地址,也就是说使用内存地址为IO设备编址,只要寻址时,地址落在IO地址中则说明是一次IO操作。IO操作沿用CPU的指令集,直接向该地址进行读写,即可实现输入输出。

非统一编址:

在内存之外设计一块存储空间用来为设备进行编址,IO操作有专门的IO指令,对IO设备进行输入输出操作。

4.4.IO接口

IO接口,用于IO设备接入主机的接口,IO接口的作用主要是:

  • 数据转换
  • 速度适配

数据转换:

由于不同外设的协议可能不同,IO接口要设配各种外设。

速度适配:

不同的IO设备速度不同,如键盘,输入的速度较慢,数据量较小,及时传输,但如硬盘,输入的速度较快,输入的量也较大,可能来不及及时传输,就需要先缓存起来。总的来说就是做一个速度的适配。

4.5.传输控制

IO中因为数据是来自外部,数据不是主机随叫随到的,有一个等待数据输入的过程,CPU怎样去感知IO是否完成,数据是不是准备好了?这就要CPU和IO设备之间打交道,进行信息传递了,IO设备和主机之间的信息传送方式由如下几种:

  • 程序查询方式
  • 程序中断方式
  • DMA方式

4.5.1.程序查询方式

在程序查询方式中,CPU和IO设备是串行执行的。每次CPU遇到IO指令时,都要去主动询问IO,数据是否准备好,准备好,开始读写IO,没有准备好的话,CPU会等待并且循环发送信息去询问IO——是否准备好?

由于CPU和IO速率存在级差,CPU会大量时间处于空转等待,浪费了CPU资源。

计算机组成原理(4)IO_第1张图片

4.5.2.程序中断方式

程序中断方式是对程序查询方式的一种改进,在程序中断方式中,CPU和IO并发执行。CPU执行到IO指令后,启动IO,但不等待,直接转而执行其他任务。IO自己准备好以后发送中断信号给CPU,CPU再转而执行IO。

4.5.3.DMA方式

程序查询方式、程序中断方式,本质上都是CPU来管理IO,IO和内存之间想要传输数据,都必须通过CPU。无论如何进行优化,只要CPU参与了IO操作、内存读写操作,对于CPU来说都会有不小的时间浪费。

DMA的出现就是为了彻底将CPU从IO、内存之间的交互中拿掉。DMA方式中,主存和IO之间存在一条直接的数据通道,两者之间直接进行交互。DMA控制IO和内存交互的方式叫做——“周期窃取”,即一个IO周期中,从CPU手中获取到系统总线的使用权,沿用总线控制的方式来控制整个IO周期,这个周期内CPU对系统总线无使用权,但是并不意味着CPU就停下等待、无法工作。现代计算机系统中CPU有指令缓存器,一般会准备多条待执行指令,总线使用权被DMA窃取后,CPU可以继续执行后面的,不需要访存的指令。

你可能感兴趣的:(计算机组成原理,网络)