计算机组成——第五章 输入输出系统(1)

输入输出系统的发展概况

1、早期阶段
早期的I/O设备较少,I/O设备与主存交换信息必须通过CPU。
2、接口和DMA阶段
这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线的结构。(图片参考计算机组成原理157页图)
通常,在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可以完成串-并变化。
控制通路用以传送CPU向I/O设备发出各种控制命令。

问题:这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要终端先现行程序,即CPU与I/O设备还不能做到绝对的并行工作

实现:为了提高CPU工作效率,又出现了直接存取(Direct Memory Access,DMA),其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换信息时能继续完成自身工作。

总结:CPU和I/O并行工作有两种方式:
1、中断方式
2、DMA方式(适用于高速I/O设备)

3、具有通道结构的阶段(小型DMA处理机)
问题:1、如果每台I/O设备都配置专用的DMA接口,增加了硬件成本,而且为了解决众多DMA接口同时访问主存的冲突问题,会使控制变得十分复杂。
2、CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁进入周期挪用阶段,也会影响CPU整体工作效率。

解决:在大中型计算机系统中,采用I/O通道的方式来进行数据交换。
通道:用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可以视为一种具有特殊功能的处理器。
通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器。它依据CPU的I/O指令进行启动、停止或改变状态。

输入输出系统的组成

输入输出系统由I/O软件和I/O硬件两部分组成
1、I/O软件
输入输出系统软件的主要任务如下:

  • 将用户编制的程序(或数据)输入主机内
  • 将运算结果输送给用户
  • 实现输入输出系统与主机之间的协调工作

不同结构的输入输出系统采用的软件技术差异很大。一般而言采用接口模块方式时,应用机器指令系统中的I/O指令及系统软件中的管理程序便可使I/O设备与主机协调工作。

(1)I/O指令
I/O指令是机器指令的一类,其指令格式与其他指令又有相似之处,又有所不同。可以和其他机器指令字长相等,但它还可以反映CPU与I/O设备交换信息的特点。

(2)通道指令
通道指令是对具有通道的I/O系统专门设置的指令,这类指令一般用以指明参与传送(写入或读取)的数据组在主存中的首地址;指明需要传送的字节数或所传送数据组的末地址;指明所选设备的设备码及完成某种操作的命令码。

通道指令又称为通道控制字,它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。

通道指令是通道自身的命令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等

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

1、I/O设备编制方式
通常将I/O设备码看作地址码,对I/O地址码的编制可采用两种方式:
1、统一编制
2、不统一编址

统一编址:将I/O地址看作存储器地址的一部分。例:在64K地址的存储空间中划出8K地址作为I/O设备的地址,凡是在这8K地址范围的访问,就是对I/O设备的访问。

不统一编址:I/O地址和存储器地址是分开的,所有对I/O设备的访问必须有专用的I/O指令。

2、设备寻址
由于每台设备都赋予一个设备号,因此当要启动某一设备,可由I/O指令的设备码字段直接指出该设备的设备号。

3、传送方式

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

1、程序查询方式
程序查询方式是由CPU通过程序不断查询I/O设备是否已经做好准备,从而控制I/O设备与主机交换信息。采用这种方式实现主机和I/O设备交换信息,要求I/O接口内设置一个能反映I/O设备是否准备就绪的状态标记,CPU通过对此标记的检测,可得知I/O设备的准备情况。

在这里插入图片描述
CPU启动I/O设备后便开始对I/O设备的状态进行查询。若查得I/O设备未准备就绪,就继续查询,若查得I/O设备准备就绪,就将数据从I/O接口送至CPU,再由CPU送至主存。这样一个字一个字传送,直至这个数据块的数据全部传送结束,CPU又重新回到原现行程序。

值得关注的是:只要一启动I/O设备,CPU便不断查询I/O设备的准备情况,从而终止了原程序的执行。
cpu在反复查询的过程中,就好像“原地踏步”。另一方面,I/O设备准备就绪后,CPU要一个字一个字地从I/O设备中取出,经CPU送至主存,此刻CPU也不能执行原程序,可以看出 CPU和I/O处于串行的工作状态。

程序中断方式(CPU和I/O设备并行工作)

倘若CPU启动I/O设备后,不查询I/O设备是否准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应,大大提高了CPU的工作效率。
在这里插入图片描述
可以看出CPU在启动I/O设备后仍继续执行原程序,在第K条指令执行结束后,CPU响应了I/O设备的请求,中断了现行程序,转至中断服务程序,待处理完后又返回原程序断点处,继续从第K+1指令往下继续执行。
在这里插入图片描述
可以看出在I/O设备未准备就绪的时候,CPU向I/O设备发读指令后,仍在处理其他事情(继续算题),当I/O设备向CPU发出请求后,CPU才从I/O接口读出一个字经CPU送至主存(这是通过执行中断服务程序),cpu不必等待I/O设备是否准备就绪,可以充分利用cpu资源。

DMA方式

问题背景:虽然程序中断方式消除了程序查询方式的“踏步”的现象,提高了CPU的资源利用率,但是CPU在响应中断请求后,必须停止现行程序而进入中断服务程序,并且完成了I/O设备与主存交换信息,还不得不占用CPU内部的一些寄存器,同样是对CPU资源的消耗。

实现:如果I/O设备能直接与主存交换信息而不占用CPU,那么,CPU的资源利用率显然又可以进一步提高。所以就引出了DMA直接存储器方式

在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无须调用中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA这种占有称为窃取或挪用。

窃取的时间一般是一个存取周期,故又把DMA占用的存取周期…在DMA窃取存取周期时,CPU尚能继续作内部操作(乘法运算)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值