【笔记】输入输出系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cbwem/article/details/79341295

一、概述

1.输入输出系统的组成

  输入输出系统由I/O软件和I/O硬件两部分组成。

I/O软件

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

  • 将数据从I/O设备输入主机。
  • 将数据从主机输出至I/O设备。
  • 状态测试。
  • 形成某些操作命令。

(2)通道指令
  通道指令是对具有通道的I/O系统专门设置的指令,这类指令一般用以指明参与传送的数据组在主存中的首地址;指明需要传送的字节数或所传送数据组的末地址;指明所选设备的设备码及完成某种操作的命令码。
  通道指令又称为为通道控制字(CCW),它是通道用于执行I/O操作的指令, 可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行。通道程序即由通道指令组成,它完成某种外围设备与主存之间传送信息的操作。
  通道指令是通道自身的指令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等。

I/O硬件

  输入输出系统的硬件组成是多种多样的,在带有接口的I/O系统中,一般包括接口模块及I/O设备两大部分。一个通道可以和一个以上的设备控制器相连,一个设备控制器又可以控制若干台同一类型的设备。

2.设备与主机的联系方式

I/O设备编址方式

  通常将I/O设备码看作地址码,对I/O地址码的编址可采用两种方式:统一编址不统一编址。统一编址就是将I/O地址看作是存储器地址的一部分。
当设备通过接口与主机相连时,CPU可以通过接口地址来访问I/O设备。

传送方式

  在同一瞬间,n位信息同时从CPU输出至I/O设备,或由I/O设备输入到CPU,这种传送方式称为并行传送。其特点是传送速度较快,但要求数据线多。
  若在同一瞬间只传送一位信息,在不同时刻连续逐位传送一串信息,这种传送方式称为串行传送。其特点是传送速度较慢,但它只需一根数据线和一根地线。

联络方式

(1)立即响应方式
  对于一些工作速度十分缓慢的I/O设备,只要CPU的I/O指令一到,它们边立即响应,故这种设备无需特殊连络信号,称为立即响应方式
(2)异步工作采用应答信号联络
  当I/O设备与主机工作速度不匹配时,通常采用异步工作方式。这种方式在交换信息前,I/O设备与CPU各自完成自身的任务,一旦出现连络信号,彼此才准备交换信息。I/O设备与CPU双方设定一组特殊标记,用“起始”和“终止”来建立联系。
(3)同步工作采用同步时标联络
  同步工作要求I/O设备与CPU的工作速度完全同步。这种联络互相之间还得配有专门电路,用以产生同步时标来控制同步工作。

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

  I/O设备与合租记的连接方式通常有两种辐射式总线式
  采用辐射式连接方式时,要求每台I/O设备都有一套控制线路和一组信号线,因此所用的器件和连线较多,对I/O设备的增删都比较困难。这种连接方式大多出现在计算机发展的初级阶段。

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

  I/O设备与合租记交换信息时,共有5种控制方式:程序查询方式、程序中断方式、直接存储器存取方式(DMA)、I/O通道方式、I/O处理机方式

程序查询方式

  程序查询方式是由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息。可见这种方式使CPU和I/O设备处于串行工作状态,CPU的工作效率不高。


这里写图片描述

程序中断方式

  CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行自身程序,只是当I/O设备准备就绪并向CPU发出中断请求后才予以响应。


这里写图片描述

  采用程序中断方式,CPU和I/O接口不仅在硬件方面需增加相应的电路,而且在软件方面还必须编制中断服务程序。

DMA方式

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


这里写图片描述

二、I/O接口

1.概述

  I/O接口通常是指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。主机与I/O设备之间设置接口的原因:

  1. 一台机器通常配有多台I/O设备,它们各自有其设备号(地址),通过接口可实现I/O设备的选择。
  2. I/O设备种类繁多,速度不一,与CPU速度相差可能很大, 通过接口可实现数据缓冲,达到速度匹配。
  3. 有些I/O设备可能串行传送数据,而CPU一般为并行传送,通过接口可实现数据串-并格式的转换。
  4. I/O设备的输入输出电平可能与CPU的输入输出电平不同,通过接口可实现电平转换。
  5. CPU启动I/O设备工作,要向I/O设备发各种控制信号,通过接口可传送控制命令。
  6. I/O设备需将其工作状态及时向CPU报告,通过接口可监视设备的工作状态,并可保存状态信息,供CPU查询。

  端口是指接口电路中的一些寄存器,这些寄存器分别用来存放数据信息、控制信息和状态信息,相应的端口分别称为数据端口、控制端口和状态端口。若干个端口加上相应的控制逻辑才能组成接口。

2.接口的功能和组成

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

  I/O总线包括数据线、设备选择线、命令线和状态线。
(1)数据线
  数据线是I/O设备与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。
(2)设备选择线
  设备选择线是用来传送设备码的,它的根数取决于I/O指令中设备码的位数。如果把设备码看作是地址号,那么设备选择线又可称为地址线。设备选择线可以有一组,也可以有两组。
(3)命令线
  命令线主要用以传输CPU向设备发出的各种命令信号。它是一组单向总线,其根数与命令信号多少有关。
(4)状态线
  状态线是将I/O设备的状态向主机报告的信号线。它也是一组单向总线。现代计算机中大多采用三态逻辑电路来构成总线。

接口的功能和组成

  (1)选址功能
  (2)传送命令的功能
  命令寄存器用来存放I/O指令中的命令码,它受设备选中信号控制。命令线和所有接口电路的命令寄存器相连,只有被选中设备的SEL信号有效,命令寄存器才可接受命令线上的命令码。
  (3)传送数据的功能
  接口中通常设有数据缓冲寄存器(DBR),它用来暂存I/O设备与主机准备交换的信息,与I/O总线中的数据线是相连的。
  (4)反映I/O设备工作状态的功能
  为了使CPU能及时了解各I/O设备的工作状态,接口内必须设置一些反映设备工作状态的触发器。

3.接口类型


这里写图片描述

  1. 按数据传送方式分类,有并行接口和串行接口两类。并行接口是将一个字节(或一个字)的索有为同时传送;串行接口是在设备与接口间一位一位传送。由于接口与主机之间是按字节或字并行传送,因此对串行接口而言,其内部还必须设有串-并转换装置。
  2. 按功能选择的灵活性分类,有可编程接口和不可编程接口量两种。
  3. 按通用性分类有通用接口和专用接口。
  4. 按数据传送的控制方式分类,有程序型接口和DMA型接口。

三、程序查询方式

1.程序查询流程

  通常要执行如下3条指令:

  1. 测试指令,用来查询I/O设备是否准备就绪。
  2. 传送指令,当I/O设备已准备就绪时,执行传送指令。
  3. 转移指令,若I/O设备未准备就绪,执行转移指令,转至测试指令,继续测试I/O设备的状态。


这里写图片描述

四、程序中断方式

1.中断的概念

  计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,继续执行原程序,这就是“中断”。

2.程序中断方式的接口电路

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

  每台外部设备都必须配置一个中断请求触发器INTR,当其为“1”时,表示该设备向CPU提出中断请求。但是设备欲提出中断请求时,其设备本身必须准备就绪,即接口内的完成触发器D的状态必须为1.
  凡能向CPU提出中断请求的各种因素统称为中断源。在I/O接口中需设置一个屏蔽触发器MASK,当其为“1时,表示被屏蔽,即封锁其中断源的请求。中断请求触发器和中断屏蔽触发器在I/O接口中是成对出现的。
  CPU总是在统一的时间,即每条指令执行阶段的最后时刻,查询所有的设备是否有中断请求。
  仅当社别准备就绪(D=1),且该设备未被屏蔽(MASK=0)时,CPU的中断查询信号可将中断请求触发器置为“1”(INTR=1)。

排队器

  速度越高的I/O设备,优先级越高,因为若CPU不及时响应高速 I/O 的请求,其信息可能会立即丢失。
  每个接口中有一个反相器和一个“与非”门,它们之间犹如链条一样串接在一起,故称为链式排队器
  当各中断源均无中断请求时,各个 I N T R i ¯ 为高电平,其 I N T P 1 ¯ I N T P 2 ¯ I N T P 3 ¯ 均为高电平。一旦某个中断源提出中断请求时,就迫使比起优先级低的中断源 I N T P i ¯ 变为低电平,封锁其发中断请求。

中断向量地址形成部件(设备编码器)

  所谓硬件向量法,就是通过向量法,就是通过向量地址来寻找设备的中断服务程序入口地址,而且向量地址是由硬件电路产生的。中断向量地址形成部件的输入是来自排队器的输出 I N T P 1 ¯ I N T P 2 ¯ I N T P n ¯ ,它的输出是中断向量,其位数与计算机可以处理中断源的个数有关,即一个中断源对应一个向量地址。在I/O接口中的编码器又称为设备编码器

3.I/O中断处理过程

CPU响应中断的条件和时间

  CPU响应I/O设备提出中断请求的条件是必须满足CPU中的允许中断触发器EINT为“1”。该触发器可用开中断指令置位(称为开中断);也可用关中断指令或硬件自动使其复位(称为关中断)。CPU响应中断的时间一定是在每条指令执行阶段的结束时刻。

I/O中断处理过程

  可将一次中断处理过程简单地归纳为**中断请求、中断判优、中断响应、中断服务、中断返回**5个阶段。

4.中断服务程序的流程

  一般中断服务程序的流程分四大部分:保护现场、中断服务、恢复现场、终端返回

保护现场

  保护现场有两个含义:其一是保存程序的断点;其二是保存通用寄存器和状态寄存器的内容。前者由中断隐指令完成,后者由中断服务程序完成。可在中断服务程序的起始部分安排若干条存数指令,将寄存器的内容存至存储器中保存,或用进栈指令(PUSH)将各寄存器的内容推入堆栈保存,即将程序中断时的“现场”保存起来。

中断服务(设备服务)

  是中断服务程序的主体部分,对于不同的中断请求源,其中断服务操作内容是不同的。

恢复现场

  通常可用取数指令或出栈指令(POP),将保存在存储器(或堆栈)中的信息送回到原来的寄存器中。

中断返回

  最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。如果CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为中断嵌套,或多重中断。倘若CPU在执行中断服务程序时,对新的中断请求不予理睬,这种中断称为单重中断。区别在与“开中断”的设置时间不同。
  如果不用“开中断”指令将EINT置“1”,则意味着CPU不能再响应其他任何一个中断源的中断请求。对于单重中断,开中断指令设置在最后“中断返回”之前,意味着在整个中断服务处理过程中,不能再响应其他中断源的请求。对于多重中断,开中断指令提前至“保护现场”之后,意味着在保护现场后,若有级别更高的中断源提出请求,CPU也可以响应,即再次中断现行的服务程序,转至新的中断服务程序,这是单重中断与多重中断的主要区别。


这里写图片描述

  从宏观上分析,程序中断方式克服了程序查询方式中的CPU“踏步”现象,实现了CPU与I/O的并行工作,提高了CPU 资源利用率。但从微观操作分析,发现CPU在处理中断服务程序时仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需不断地打断CPU执行主程序而执行中断服务程序。


这里写图片描述

五、DMA方式

1.DMA方式的特点

  若出现高速I/O和CPU同时访问主存,CPU必须将总线占有权让给DMA接口使用,即DMA采用周期窃取的方式占用一个存取周期。通常DMA与主存交换数据时采用如下三种方法:

停止CPU访问主存

  这种方式的优点是控制简单,适用于数据传输率很高的I/O设备实现成组数据的传送。缺点是DMA接口在访问主存时,CPU基本上处于不工作状态或保持原状态。在DMA接口中,一般设有一个小容量存储器,使I/O设备首先与小容量存储器交换数据,然后由小容量存储器与主存交换数据,这便可减少DMA传送数据时占用总线的时间,即可减少CPU的暂停工作时间。

周期挪用(或周期窃取)

  在这种方法中,每当I/O设备发出DMA请求时,I/O设备边挪用或窃取总线占用权一个或几个主存周期,而DMA不请求时,CPU仍继续访问主存。
  I/O设备请求DMA传送会遇到三种情况。一种是CPU此时不需要访问主存,故I/O设备与CPU不发生冲突。第二种情况是I/O设备请求DMA传送时,CPU正在访问主存,此时必须待存取周期结束,CPU采能将总线占有权让出。第三种情况是I/O设备要求访问主存时,CPU也要求访问主存,这就出现了访问冲突。此时I/O访存优先于CPU访问主存,因为I/O不立即访问主存就可能丢失数据,这时I/O要窃取第一、二个存取周期,意味着CPU在执行访问主存指令过程中插入了DMA请求,并挪用了一、二个存取周期,使CPU延缓了一、二个存取周期再访问主存。

  这种方式既实现了I/O传送,又较好地发挥了主存与CPU的效率,是一种广泛采用的方法。I/O设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权。尽管传送一个字对主存而言只占用一个主存周期,但对DMA接口而言,实质上还要占2~5个主存周期。因此周期挪用的方法比较合适于I/O设备的读/写周期大于主存周期的情况。

DMA与CPU交替访问

  这种方法适合于CPU的工作周期比主存存取周期长的情况。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过 C 1 C 2 分别控制的。CPU与DMA接口各自有独立的访存地址寄存器、数据寄存器和读/写信号。在这种工作方式下,CPU既不停止主程序的运行也不进入等待状态,即完成了DMA的数据传送。


这里写图片描述

2.DMA接口的功能和组成

DMA接口的功能

  利用DMA方式传送数据时,数据的传输过程完全是由DMA接口电路控制,故DMA接口又有DMA控制器之称。DMA接口应该具有如下功能:

  1. 向CPU申请DMA传送。
  2. 在CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争。
  3. 在DMA期间管理系统总线,控制数据传送。
  4. 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度。
  5. 在数据块传送结束时,给出DMA操作完成的信号。

DMA接口基本组成


这里写图片描述

(1)主存地址寄存器(AR)
  AR用于存放主存中需要交换数据的地址。在DMA传送过程中,美交换一次数据,将地址寄存器内容加1,指导一批数据传送完毕为止。

(2)字计数器(WC)
  WC用于记录传送数据的总字数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加1,直到计数器为0,即最高为产生进位时,表示该批数据传送完毕(若交换字数以源码值预置,则每传送一个字,字计数器减1,直到计数器为0时,表示该批数据传送结束)。于是DMA接口向CPU发中断请求信号。

(3)数据缓冲寄存器(BR)
  BR用于暂存每次传送的数据。通常DMA接口与主存之间采用字传送,而DMA与设备之间可能是字节或位传送。DMA接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等。

(4)DMA控制逻辑
  DMA控制逻辑负责管理DMA的传送过程,由控制电路、时序电路及命令状态控制寄存器等组成。每当设备准备好一个数据字(或一个字传送结束),就向DMA接口提申请(DREQ),DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)。待收到CPU发出的响应信号HLDA后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对主存地址寄存器和字计数器的修改、识别总线地址、识别总线地址、指定传送类型以及哦他能根治设备已经被授予一个DMA周期(DACK)等。

(5)中断机构
  当字计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理。中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一批数据传送结束。它们是I/O系统中不同的中断事件。

(6)设备地址寄存器(DAR)
  DAR存放I/O设备的设备码或表示红色倍信息存储区的寻址信息,如磁盘数据所在的区号、盘面号、柱面号。

3.DMA工作过程

DMA传送过程

  DMA的数据传送过程分为**预处理、数据传送或后处理**3个阶段。
(1)预处理
  在DMA接口开始工作之前,CPU必须给它预置如下信息:

  • 给DMA控制逻辑指明数据传送方向是输入还是输出。
  • 向DMA设备地址寄存器送入设备号,并启动设备。
  • 向DMA主存地址寄存器送入交换数据的主存起始地址。
  • 对字计数器赋予交换数据的个数。

  当I/O设备准备好发送的数据或准备接受的数据已经处理完毕时,它便通过DMA接口向CPU提出占用总线的申请,若有多个DMA同时申请,则按轻重缓急由硬件排队判优逻辑决定优先等。待I/O设备得到主存总线的控制权后,数据的传送便由该DMA接口进行管理。

(2)数据传送
  DMA方式是以数据块为单位传送的。


这里写图片描述

(3)后处理
  包括校验送入主存的数据是否正确;决定是否继续用DMA传送其他数据块, 若继续传送,则又要对DMA接口进行初始化,若不需要传送,则停止外设;测试在传送过程中是否发生错误,若出错,则转错误诊断及处理错误程序。

DMA接口与系统的连接方式

  具有公共请求线的DMA请求方式,若干个DMA接口通过一条公用的DMA请求线向CPU申请总线控制权。CPU发出响应信号,用链式查询方式通过DMA接口,首先选中的设备获得总线控制权,即可占用总线与主存传送信息。
  独立的DMA请求方式,每一个DMA接口各有一对独立的DMA请求线和DMA响应线,它由CPU的优先级判别结构裁决首先响应哪个请求,并在响应线上发出响应信号,被获得响应信号的DMA接口便可控制总线与主存传送数据。

DMA小结

  DMA方式如下特点:

  1. 从数据传送看,程序中断方式靠程序传送,DMA方式靠硬件传送。
  2. 从CPU响应时间看,程序中断方式是在一条指令执行结束时响应,而DMA方式可在指令周期内的任一存取周期结束时响应。
  3. 程序中断方式有处理异常事件的能力,DMA方式没有这种能力,主要用于大批数据的传送。
  4. 程序中断方式需要中断现行程序,故需保护现场;DMA方式不中断现行程序,无须保护现场。
  5. DMA的优先级比程序中断的优先级高。

4.DMA接口的类型

  通常选择型多路型两类。

选择型DMA接口

  主要特点是在物理上可连接多个设备,在逻辑上只允许连接一个设备,即在某一段时间内,DMA接口只能为一个设备服务,关键是在预处理时将所选设备的设备号送入设备地址寄存器。选择型DMA接口特别适用于数据传输率很高的设备。

多路型DMA接口

  多路型DMA接口不仅在物理上可以连接多个设备,而且在逻辑上也允许多个设备同时工作,各个设备采用字节交叉的方式通过DMA接口进行数据传送。在多路型DMA接口中,为每个与它连接的设备都设置了一套寄存器,分别存放各自的传送参数。这类接口特别适合于同时为多个数据传输率不十分高的设备服务。


这里写图片描述

猜你喜欢

转载自blog.csdn.net/cbwem/article/details/79341295
今日推荐