计算机组成原理 第四章(输入输出系统)—第一节(概述)

本文概述了输入输出系统从早期分散连接到现代具有通道和I/O处理机的演变过程,介绍了接口模块、DMA、通道结构和I/O处理机在提高CPU效率中的作用,以及I/O软件和硬件的组成部分,详细讨论了I/O设备与主机的联系方式和信息传送控制方式,如程序查询、中断、DMA和通道控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面:

  1. 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili

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

1、早期阶段

(1)早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU。

(2)早期阶段的I/O设备有如下特点:

①每个I/O设备都必须配有一套独立的逻辑电路与CPU相连(也就是分散连接),用来实现I/O设备与主机之间的信息交换,因此线路十分散乱、庞杂。

②输入输出过程是穿插在CPU执行程序过程之中进行的,当I/O设备与主机交换信息时PU不得不停止各种运算,因此I/O设备与CPU是按串行方式工作的,很浪费时间。

③每个I/O设备的逻辑控制电路与CPU的控制器紧密构成一个不可分割的整体,它们彼比依赖、相互牵连,因此,欲增添、撤减或更换I/O设备是非常困难的。

2、接口模块和DMA阶段

(1)这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线连接

(2)通常,在接口中都设有数据通路和控制通路,数据经过接口既起到缓冲作用,又可完成串-并变换。控制通路用以传送CPU向I/O设备发出的各种控制命令,或使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。采用接口技术还可以使多台I/O设备分时占用总线,使多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率的提高。

(3)虽然这个阶段实现了CPU和I/O设备并行工作,但是在主机与I/O设备交换信息时,CPU要中断现行程序,即CPU与I/O设备还不能做到绝对的并行工作

(4)为了进一步提高 CPU的工作效率,又出现了直接存储器存取(DMA)技术,其特点是I/O设备与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU在I/O设备与主存交换信息时能继续完成自身的工作,故资源利用率得到了进一步提高。

3、具有通道结构的阶段

(1)在大型计算机中,通常采用I/O通道的方式来进行数据交换。通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可以视为一种具有特殊功能的处理器

(2)通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,但不是一个完全独立的处理器,它依据CPU的I/O指令进行启动、停止或改变工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率。(当然,这也意味着通道的造价不会低)

(3)在大型计算机中I/O设备配置繁多,数据传送频繁,如果选择采用DMA方式进行数据传输,可能会出现一系列问题:

①如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA 接口同时访问主存的冲突问题,会使控制变得十分复杂。

②CPU需要对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率。

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

        输入输出系统发展到第四阶段,出现了I/O处理机。I/O处理机又称为外围处理机,它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错等操作。

        具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说具有更大的独立性。

二、输入输出系统的组成

1、I/O软件

(1)输入输出系统软件的主要任务如下:

①将用户编制的程序(或数据)输入主机内。

②将运算结果输送给用户。

③实现输入输出系统与主机工作的协调等。

(2)I/O软件包括驱动程序、用户程序、管理程序、升级补丁等。

(3)一般而言,当采用接口模块方式时,应用机器指令系统中的I/O指令及系统软件中的管理程序便可使I/O设备与主机协调工作;当采用通道管理方式时,除I/O指令外,还必须有通道指令及相应的操作系统。

(4)I/O指令:

I/O指令是机器指令的一类(CPU指令的一部分),它能反映CPU与I/O设备交换信息的各种特点,比如它必须反映出对多台I/O设备的选择,以及在完成信息交换的过程中,对不同设备应做哪些具体操作等。

②下图所示的是I/O指令的一般格式,图中的操作码字段可作为I/O指令与其它指令(如访存指令、算逻指令、控制指令等)的判别代码,命令码体现I/O设备的具体操作,设备码是多台I/O设备的选择码(各台I/O设备应有不同的编号)

③I/O指令的命令码一般可表述如下几种情况:

[1]将数据从I/O设备输入主机。例如将某台设备接口电路的数据缓冲寄存器中的数据读入CPU中的某个寄存器(如累加器ACC)。

[2]将数据从主机输出至I/O设备。例如将CPU的某个寄存器中的数据写入某台设备接口电路的数据缓冲寄存器内。

[3]状态测试。利用命令码检测各个I/O设备所处的状态是“忙”还是“准备就绪”,以便决定下一步是否可进入主机与I/O设备交换信息的阶段。

[4]形成某些操作指令(多条简单指令组成一条复杂指令)。不同I/O设备与主机交换信息时需要完成不同的操作,例如磁带机需要正转、反转、读、写、写文件结束等,磁盘驱动器需要读扇区、写扇区、找磁道、扫描记录标识符等。

(5)通道指令:

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

②通道指令又称通道控制字(CCW),它是通道用于执行I/O操作的指令,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。

③通道程序即由通道指令组成的程序,它完成某种外围设备与主存之间传送信息的操作。

(6)通道指令是通道自身的指令,用来执行I/O操作,而I/O指令是CPU指令系统的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。在具有通道结构的计算机中,I/O指令不实现I/O数据传送(数据传送由通道指令实现),主要完成启、停I/O设备,查询通道和I/O设备状态及控制通道所做的其它操作。具有通道指令的计算机,一旦CPU执行了启动I/O设备的指令,就由通道来代替CPU对I/O设备的管理。

2、I/O硬件

(1)输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括接口模块及I/O设备两大部分,下图所示的接口电路实际上包含许多数据传送通路和有关数据,还包含控制信号通路及相应的逻辑电路。

(2)下图所示的是具有通道的I/O系统示意图,一个通道可以和一个以上的设备控制器相连,一个设备控制器又可以控制若干台同一类型的设备。

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

1、I/O设备编址方式

(1)通常将I/O设备码看作地址码,对I/O地址码的编址可采用统一编址或不统一编址两种方式。

统一编址就是将I/O地址看作存储器地址的一部分,例如在64K地址的存储空间中,划出8K地址作为I/O设备的地址,凡是在这8K地址范围内访问,就是对I/O设备的访问,所用的指令与访存指令相似

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

(2)统一编址方式将会占用存储空间,减少主存容量,但无需有专用的I/O指令,不统一编址方式则相反,设计机器时需根据实际情况权衡考虑选取哪种编址方式。

(3)当设备通过接口与主机相连时,CPU可以通过接口地址来访问I/O设备。

2、设备寻址

由于每台设备都被赋予一个设备号,因此,当要启动某一设备时,可由I/O指令的设备码字段直接指出该设备的设备号,通过接口电路中的设备选择电路便可选中要交换信息的设备

3、传送方式

(1)若在同一瞬间,n位信息同时从CPU输出至I/O设备,或由I/O设备输入CPU,这种传送方式称为并行传送,其特点是传送速度快,但要求的数据线数量多。

(2)若在同一瞬间只传送一位信息,在不同时刻连续逐位传送一串信息,这种传送方式称为串行传送,其特点是传送速度较慢,但只需一根数据线和一根地线。

(3)不同的传送方式需配置不同的接口电路,如并行传送接口、串行传送接口或串并联用的传送接口等,用户可按需要选择合适的接口电路。

4、联络方式

(1)不论是串行传送还是并行传送,I/O设备与主机之间必须互相了解彼此当时所处的状态,如相互是否可以传送,传送是否已结束等等,这就是I/O设备与主机之间的联络问题。

(2)按I/O设备工作速度的不同,可分为三种联络方式:

立即响应方式

        对于一些工作速度十分缓慢的I/O设备,如指示灯的亮与灭、开关的通与断、A/D转换器缓变信号的输入等等,当它们与CPU发生联系时,通常都已使其处于某种等待状态,因此,只要CPU的I/O指令一到,它们使立即响应,故这种设备无需特殊联络信号,称作立即响应方式。

异步工作采用应答信号联络

        当I/O设备与主机工作速度不匹配时,通常采用异步工作方式,这种方式在交换信息前,I/O设备与CPU各自完成自身的任务,一旦出现联络信号时,彼此才准备交换信息

        下图所示的是并行传送的异步联络方式当CPU将数据输出到I/O接口后,接口立即向I/O设备发出一个Ready”(准备就续信号,告诉I/O设备可以从接口内取数据I/O设备收到Ready后,通常便立即从接口中取出数据,接着便向接口回发一个Strobe信号,并让接口转告CPU,接口中的数据已被取走,CPU还可继续向此接口送数同理,倘若I/O设备需向CPU传送数据,则先由I/O向接口送数据,并向接口发Strobe信号,表明数据已送出接口接到联络信号后便通知CPU可以来取数,一旦CPU取走时,接口便向I/O设备发Ready信号,告诉I/O设备,数据已被取走,尚可继续送数。这种一应一答的联络方式称作异步联络。

        下图所示的是串行传送的异步联络方式I/O设备与CPU双方设定一组特殊标记,用“起始”和“终了”来建立联系,下图中9.09ms的低电平表示“起始”,2×9.09ms的高电平表示“终了”。

同步工作采用同步时标联络

        同步工作要求I/O设备与CPU的工作速度完全同步,例如在数据采集过程中,若外部数据以2400位/秒速率传送至接口,则CPU也必须以1/2400秒的速率接收每一位数,这种联络互相之间还得配有专用电路,用以产生同步时标来控制同步工作。

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

(1)辐射式连接:每台I/O设备都有一套控制线路和一组信号线,所用的器件和连线较多,对I/O设备的增删都比较困难,这种连接方式大多出现在计算机发展的初期阶段。

(2)总线式连接:通过一组总线(包括地址线、数据线、控制线等)将所有的I/O设备与主机连接,对I/O设备的增删比较简单,这种连接方式是现代大多数计算机系统所采用的方式。

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

1、程序查询方式

(1)程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O与主机交换信息

(2)采用这种方式实现主机和I/O交换信息,要求I/O接口内设置一个能反映设备是否准备就绪的状态标记,CPU通过对此标记的检测,可得知设备的准备情况。

(3)下图示意了CPU欲从某一外设读数据块(例如从磁带上读一记录块)至主存的查询方式流程

①当现行程序需启动某设备工作时,即将此程序流程插入到运行的程序中。

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

(4)由这个查询过程可见,只要CPU启动I/O设备,CPU便不断查询I/O的准备情况,从而终止了原程序的执行,CPU在反复查询过程中,犹如就地“踏步”。另一方面,I/O准备就绪后,CPU要一个字一个字地从I/O设备取出,经CPU送至主存,此刻CPU也不能执行原程序,可见这种方式使CPU和I/O处于串行工作状态,CPU的工作效率不高

2、程序中断方式

(1)倘若CPU在启动I/O设备后,对设备是否已准备就绪不加过问,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予理睬,这将大大提高CPU的工作效率,这种方式就是程序中断方式。

(2)采用程序中断方式时,CPU启动I/O后仍继续执行原程序,在第K条指令执行结束后,CPU响应了I/O的请求,中断了现行程序,转至中断服务程序,等处理完后又返回到原程序断点处,继续从第K+1条指令往下执行。由于这种方式使原程序中断了运行,故叫程序中断方式。

(3)下图是采用程序中断方式从外设读数据块到主存的程序流程示意图

CPU向I/O设备发出读命令后,仍在处理其一些事情(这时I/O设备应该还没准备好需要传送的数据

当设备向CPU发出请求后(这时I/O设备已经准备好了需要传送的数据),CPU才从I/O接口读一个字经CPU送至主存(这是通过执行中断服务程序完成的)

如果I/O设备的一批数据(一个数据块的全部数据)尚未传送结束时,CPU再次启动I/O设备,命令I/O设备再作准备,一旦又接收到I/O设备中断请求时,CPU又重复上述中断服务过程,这样周而复始,直至一批数据传送完毕

(4)程序中断方式在I/O进行准备时,CPU不必时刻查询I/O的准备情况,不会出现“踏步”现象,即CPU执行程序与I/O设备做准备是同时进行的,这种方式和CPU与I/O是串行工作的程序查询方式相比,其CPU的资源得到了充分的利用

(5)CPU执行中断服务程序是需要暂停现行程序的,而且为了完成I/O设备与主存之间的信息交换,CPU的一些寄存器还要被占用,这同样是对CPU资源的消耗。对于快速I/O设备,如果每准备好一个字就给CPU发送一次中断请求,这样CPU将会花费大量时间来处理中断服务程序,以至于CPU的利用率严重下降,为此还需要另寻解决方案。

3、DMA方式

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

(2)在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时无需处理中断服务程序

(3)若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA的这种占有叫做“窃取”或“挪用”,窃取的时间一般为一个存储周期,故又把DMA占用的存取周期叫做“窃取周期”或“挪用周期”。另外,在DMA窃取存取周期时,CPU尚能继续做内部操作,可见DMA方式与程序查询和程序中断方式相比,又进一步提高了CPU的资源利用率

4、通道控制方式

(1)通道可以识别并执行一系列通道指令(通道指令的种类、功能通常比较单一)。

(2)下图所示的是采用通道控制方式的I/O系统结构(简图)及其工作流程。

①CPU向通道发出I/O指令,指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备,之后CPU可以去做其它事情。

②通道执行存储在内存中的通道程序(由通道指令组成),控制I/O设备完成一系列任务。

③通道执行完成规定的任务后向CPU发送中断请求,之后CPU对中断进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值