第四章 输入输出系统

4.1 输入输出概述

4.1.1 输入输出系统的发展概况

1.早期阶段

早期的I/O设备种类较少,I/O设备与主机交换信息都必须通过CPU,CPU 和 I/O设备 串行 工作

2.接口模块和DMA阶段

这个阶段I/O设备通过接口模块与主机连接,计算机系统采用了总线结构。 通常在接口中都设有数据通路和控制通路。数据经过接口既起到缓冲作用,又可完成串一并变换或并一串变换。控制通路用以传送CPU向I/O设备发出的各种控制命令,或使CPU接受来自I/O设备的反馈信号。许多接口还能满足中断请求处理的要求,使I/O设备与CPU可按并行方式工作,大大地提高了CPU的工作效率。采用接口技术还可以使多台I/O设备分时占用总线使多台I/O设备互相之间也可实现并行工作方式,有利于整机工作效率提高。虽然这个阶段实现了CPU和I/O并行工作,但是在主机与I/O交换信息时,CPU要中断现行程序,也即CPU与I/O还不能做到绝对的并行工作。

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

3.具有通道结构的阶段

通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,它可视为一种具有特殊功能的处理器。通道有专用的通道指令,它能独立地执行用通道指令所编写的输入输出程序,但它不是一个完全独立的处理器,它受CPU的I/O指令启动、停止或改变其工作状态,是从属于CPU的一个专用处理器。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故CPU的资源利用率更高。

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

输入输出系统发展到第四阶段是具有I/O处理机的阶段。I/O处理机又叫做外围处理机( Peripheral Processor Unit或PPU),它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,还可完成码制变换、格式处理、数据块检错、纠错等操作。具有I/O处理机的输入输出系统与CPU工作的并行性更高,这说明I/O系统对主机来说,具有更大的独立性。

4.1.2 输入输出系统的组成

1.I/O软件

输入输出系统软件的主要任务是:

  • 如何将用户编制的程序(或数据)输入至主机内;
  • 如何将运算结果输送给用户;
  • 如何实现I/O系统与主机工作的协调等。

(1)I/O指令

I/O指令是机器指令的一类,其指令格式与其他指令既有相似之处,又有不同之点。I/O指令可以和其他机器指令的字长相等,但它还应该能反映CPU与I/O设备交换信息的各种特点,如它必须反映出对多台I/O设备的选择,以及在完成信息交换过程中,对不同设备应作哪些具体操作等。

I/O指令格式

  • 操作码可作为I/O指令与其他类指令(如访存指令、算逻指令、控制指令等)的判别代码
  • 命令码用来体现I/O的具体操作
  • 设备码是作为对多台LO设备的选择码

(2)通道指令

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

2.I/O硬件

输入输出系统的硬件组成是多种多样的,在带有接口的O系统中,一般包括接口模块及O设备两大部分。

(1)设备-I/O 接口

(2)设备-设备控制器-通道

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

**1. I/O 设备编址方式 **

  • 统一编址

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

  • 不统一编址

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

  • 显然统一编址占用了存储空间,减少了主存容量,但无需专用的I/O指令。不统一编址由于不占用主存空间,故不影响主存容量,但需设I/O专用指令。

2.设备选址

用设备选择电路识别是否被选中。将CPU给出的地址和设备中保存的自己的地址进行比较,如果两者相同,则选中设备。

3.传送方式

  • 串行传输:在同一瞬间只传送一位信息,在不同时刻连续还位传送一串信息

  • 并行传输:在同一瞬间,n位信息同时从CPU输送至I/O设备,或由I/O设备输入到CPU

4.联络方式

(1)立即响应

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

(2)异步工作采用应答信号

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

  • 串行

串行联络

I/O设备与CPU双方设定一组特殊标记,用“起始”和“终了”来建立联系。图中9.09ms的低电平表示“起始”,又用2×9.09ms的高电平表示“终了”。

  • 并行

并行联络

图中示意当CPU将数据输出到I/O接口后,接口立即向I/O设备发出一个“ Ready”(准备就绪)信号,告诉I/O设备可以从接口内取数据。I/O设备收到“ Ready”后,通常便立即从接口中取出数据,接着便向接口回发一个“ Strobe’信号,并让接口转告CPU,接口中的数据已被取走,CPU还可继续向此接口送数。

同理,倘若I/O设备需向CPU传送数据,则先由I/O向接口送数据,并向接口发“ Strobe””信号,表明数据已送出。接口接到联络信号后便通知CPU可以来取数据,一旦CPU取走时,接凵便向O设备发“ Ready”信号,告诉I/O设备,数据已被取走,尚可继续送数。这种一应一答的联络方式,称作异步联络。

(3)同步工作采用同步时标

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

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

1.辐射式连接

辐射式连接

2.总线连接

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

1.程序查询方式

程序查询方式

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

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

2.程序中断方式

程序中断方式

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

由图可见,CPU启动I/O后仍继续执行原程序,在第K条指令执行时I/O准备好了数据并向CPU发出中断请求,当第K条指令执行结束后,CPU中断当前运行的程序并保存现场,然后响应I/O的请求,转至中断服务程序,待处理完后又返回到原程序断点处,继续从第K+1条指令往下执行。

  • 程序中断方式流程

程序中断方式流程

CPU向I/O设备发出读命令后,仍在处理其他程序,当设备向CPU发出请求后,CPU才从I/O接口读一个字经CPU送至主存。如果I/O设备的一批数据(一个数据块的全部数据)尚未传送结束时,CPU再次启动I/O设备,命令I/O设备再作准备,一旦又接收到I/O设备中断请求时,CPU又重复上述中断服务过程,这样周而复始,直至一批数据传送完毕

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

3.DMA方式

DMA方式

在DMA方式中,主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,无需处理中断服务程序。若出现DMA和CPU同时访问主存,CPU总是将总线占有权让给DMA,通常把DMA的这种占有叫做“窃取”或“挪用”。窃取的时间一般为一个存储周期,故又把DMA占用的存取周期叫做“窃取周期”或“挪用周期”。而且,在DMA窃取存取周期时,CPU尚能继续作内部操作(如乘法运算)。可见,DMA方式与程序查询和程序中断方式相比,又进一步提高了CPU的资源利用率。CPU和I/O可以并行工作。

CPU在运行主程序的过程中遇到了I/O指令,要进行输入或输出,CPU此时发出启动I/O的指令,之后继续执行自己的操作。I/O设备在DMA控制器的控制下完成数据的准备工作,当数据准备好后要进行数据传输时,由DMA控制器发出DMA请求占用总线的使用权,占用一个存取周期,利用这一个存储周期进行I/O设备和内存之间的交互,而在这一个存取周期CPU不能使用总线对内存进行访问。窃取周期结束后I/O设备继续准备,CPU继续执行程序。在窃取周期中CPU虽然不能使用总线访问内存,但是由于采用预取指令(在指令执行之前若干条指令可能已经预取到CPU指定缓冲之中),仍然可以执行非访问内存的指令。

4.2 外部设备

4.2.1 概述

IO设备

4.2.2 输入设备

1.键盘

   按键
   判断哪个键按下
   将此键翻译成 ASCII 码 (编码键盘法)

2.鼠标

   机械式   金属球 电位器
   光电式   光电转换器

3.触摸屏

4.2.3 输出设备

1.显示器

(1)字符显示   字符发生器
(2)图形显示   主观图像
(3)图像显示   客观图像

2.打印机

(1)击打式   点阵式(逐字、逐行)
(2)非击打式  激光(逐页)喷墨(逐字)

4.2.4 其它

1.A/D、D/A  模拟/数字(数字/模拟)转换器
2.终端    由键盘和显示器组成由键盘和显示器组成由键盘和显示器组成,完成显示控制与存储、键盘管理及通信控制
3.汉字处理   汉字输入、汉字存储、汉字输出

4.3 I/O接口

4.3.1 概述

为什么要设置接口?

  1. 实现设备的选择
  2. 实现数据缓冲达到速度匹配
  3. 实现数据串-并格式转换
  4. 实现电平转换
  5. 传送控制命令
  6. 反映设备的状态(“忙”、“就绪”、“中断请求”)

4.3.2 接口的功能和组成

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

IO总线和接口部件

(1)设备选择线

设备选择线是用来传送设备码的,它的根数取决于IO指令中设备码的位数。如果把设备码看作是地址号,那么设备选择线又可称为地址线。

(2)数据线

数据线是I/O与主机之间数据代码的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向的,也可以是单向的。

(3)命令线

命令线主要用以传输CPU向设备发出的各种命令信号,如启动、清除屏蔽、读、写等等。它是一组单向总线,其根数与命令信号多少有关。

(4)状态线

状态线是将I/O设备的状态向主机报告的信号线,如设备是否准备就绪是否向CPU发出中断请求等等。它也是一组单向总线。

2.接口的功能和组成

(1)选址功能

每个接口都必须具有选址功能,即当设备选择线上的设备码与本设备码相符时,应发出设备选中信号SEL,这种功能可通过接口内的设备选择电路来实现。

(2)传送命令的功能

通常在I/O接口中设有存放命令的命令寄存器以及命令译码器实现传送命令的功能。命令寄存器用来存放I/O指令中的命令码,它受设备选中信号控制。命令线和所有接口电路的命令寄存器相连,只有被选中的设备SEL信号有效,命令寄存器才可接受命令线上的命令码。

(3)传送数据的功能

接口中通常设有数据缓冲寄存器DBR( Data Buffer Register),它用来暂存I/O设备与主机准备交换的信息,它与I/O总线中的数据线是相连的。

(4)反映设备状态的功能

为了使CPU能及时了解各I/O设备的工作状态,接口内必须设置一些反映设备工作状态的触发器。例如用完成触发器D和工作触发器B来标志设备所处的状态。

  1. 完成触发器D和工作触发器B
    • 当D=0,B=0时,表示I/O设备处于暂停状态
    • 当D=1,B=0时,表示I/O设备已经准备就绪
    • 当D=0,B=1时,表示I/O设备正处于准备状态
  2. 中断请求触发器INTR:当其为“1”时,表示该I/O设备向CPU发出中断请求
  3. 屏蔽触发器MASK:当其为“1”时,即使I/O设备完成了工作,仍然不能向CPU发出中断请求

3.I/O接口的基本组成

I/O接口的基本组成

4.3.3 接口类型

(1)按数据传送方式分类,有并行接口和串行接囗两类。并行接口是将个字节(或一个字)的所有位同时传送(如 Intel8255);串行接口是在设备与接口间一位一位传送(如 Intel8251)。
(2)按功能选择的灵活性分类,有可编程接口和不可编程接口两种。可编程接口的功能及操作方式,可用程序来改变或选择(如 Intel8255、8251)。不可编程接口不能由程序来改变其功能,但可通过硬连线逻辑来实现不同的功能(如 Intel8212)。
(3)按通用性分类有通用接口和专用接囗。通用接口可供多种外设使用,如 Intel8255、8212:专用接口是为某类外设或某种用途专门设计的,如 Intel8279可编程键盘/显示器接口;
(4)按数据传送的控制方式分类,有程序型式接口和DMA式接口。程序型式接口用于连接速度较慢的JO设备,如显示终端、键盘、打印机等。DMA型接口是用于连接髙速IO设备,如磁盘、磁带等,常用 Intel8257。

4.4 程序查询方式

4.4.1 程序查询流程

1.设备查询流程

程序查询方式的核心问题在于每时每刻需不断查询I/O设备是否准备就绪。当I/O设备较多时,CPU需按各个I/O设备在系统中的优先级别进行逐级查询。

设备查询流程

2.设备查询程序流程

设备查询程序流程

当CPU需启动外设前,必须做如下的准备工作:

(1)由于这种方式传送数据时要占用CPU中的寄存器,故首先需将寄存器原内容保护起来(若该寄存器中存有有用信息)
(2)由于传送往往是一批数据,因此需先设置设备与主机交换数据的计数值
(3)设置欲传送数据在内存缓冲区的首地址

然后CPU启动设备,接着以下步骤操作

(4)启动外部设备 (5)将I/O接口中的设备状态标记取至CPU并测试I/O是否准备就绪。如果未准备就绪,则踏步等待,直到准备就绪为止。当准备就绪时,接着可实现传送
(6)CPU执行I/O指令,或从I/O接口的数据缓冲寄存器中读出一个数据,或把一个数据写入到I/O接口中的数据缓冲寄存器内,同时把接口中的状态标记复位
(7)修改内存地址
(8)修改计数值,若原设置计数值为原码,则依次减1;若原设置计数值为负数补码,则依次加1
(9)判断计数值。若计数值不为0,表示一批数据尚未传送完,重新启动外设继续传送;若计数值为0,则表示一批数据已传送完毕
(10)结束I/O传送,继续执行其他程序

4.4.2 程序查询方式的接口电路

程序查询方式的接口电路

图中设备选择电路用以识别本设备地址,当地址线上的设备号与本设备号相符时,SEL有效,可以接收命令。DBR是数据缓冲寄存器,用以存放欲传送的数据D、B是反映设备工作状态的标记触发器.

以输入设备为例,本接口的工作过程如下:

(1)地址线上的设备号与I/O设备号比较,选择对应设备
(2)由CPU发出启动外设命令,将工作触发器B置“1”,完成触发器D置“0” (3)启动外设开始工作 (4)输入设备将数据送入DBR
(5)外设工作完成,向接口发“设备工作结束”信号,将D置“1”B置“0
(6)D触发器以“准备就绪”状态通知CPU,表示“数据缓冲满”
(7)CPU执行输入指令,将输入数据送至CPU的通用寄存器,再存入主存相关单元

4.5 程序中断方式

4.5.1 中断的概念

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

4.5.2 I/O中断的产生

中断的产生

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

1.配置中断请求触发器和中断屏蔽触发器

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

2.排队器

排队器

图中下面的一排门电路是链式排队器的核心。每个接口中有一个非门和个与非门,它们之间犹如链条一样串接在一起,故有链式排队器之称。该电路中级别最高的中断源是1号,其次是2号,3号,4号。不论是哪个中断源(个或多个)提出中断请求,排队器输出端$INTP_{i}^{/} $,只有一个高电平。

当各中断源均无中断请求时,各个$\overline{INTP_{i}}$为高电平,其$INTP_{1}^{/} $、$INTP_{2}^{/} $、$INTP_{2}^{/} $…均为高电平。一旦某个中断源提出中断请求时,就迫使比其优先级低的中断源之$INTP_{i}^{/}$变低电平,封锁其发中断请求。如当2号和3号中断源同时有请求时($INTP_{2}^{/} $=0,$INTP_{3}^{/} $=0),经分析可知$INTP_{1}^{/}$和$INTP_{2}^{/}$均为高电平,$INTP_{3}^{/}$及往后各级的$INTP_{i}^{/}$均为低电平。各个$INTP_{i}^{/}$再经图中上面一排两个输入头的与非门,便可保证排队器只有$INTP_{2}$为高,表示2号中断源排上队。

3.中断向量地址形成部件

  • 中断号:中断的编号。例如8086支持256个中断,这256个中断被编号成0-255,0-255就是中断号。
  • 中断向量:中断服务程序的入口地址。在x86系列中可以理解为中断服务程序的段地址和偏移量组成的一个向量。有的时候也指程序状态字。
  • 程序状态字:一段包含被操作系统和潜在硬件使用的程序状态信息的内存或硬件区域。一般用一个专门的寄存器来指示处理器状态。
  • 中断服务程序的入口地址:可以由中断向量生成。
  • 向量地址:中断向量在内存单元的地址。或者使用一条跳转指令跳转到中断服务程序,这时向量地址指跳转指令在内存中的地址。

中断向量地址形成部件

4.程序中断方式接口电路的基本组成

程序中断方式接口电路的基本组成

4.5.4 I/O中断处理过程

IO中断处理过程

  1. 由CPU发启动外设命令,将接口中B置“1”,D置“0”
  2. 接口启动输入设备开始工作
  3. 输入设备将数据送入DBR
  4. 输入设备向接口发“设备工作结束”信号,使D置“1”,B置“0”,标志设备准备就绪
  5. 当设备准备就绪(D=1),且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由CPU发中断查询信号
  6. 设备中断请求触发器INTR被置“1”,标志设备向CPU提出中断请求与此同时,INTR送至排队器,进行中断判优
  7. 若CPU允许中断(EⅠNT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址
  8. 向量地址送至PC,作为下一条指令的地址
  9. 由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段
  10. 中断服务程序的最后一条指令执行结束,即中断返回至原程序的断点处。至此,个完整的程序中断处理过程即告结束

4.5.5 中断服务程序流程

一、中断服务程序的流程

  1. 保护现场
    • 程序断点的保护—中断隐指令完成
    • 寄存器内容的保护—进栈指令
  2. 中断服务:对不同的 I/O 设备具有不同内容的设备服务
  3. 恢复现场—出栈指令或出栈指令
  4. 中断返回—中断返回指令

二、单重中断和多重中断

  • 单重中断:不允许中断现行的中断服务程序
  • 多重中断:允许级别更高的中断源中断现行的中断服务程序

三、单重中断和多重中断的服务程序流程

单重中断和多重中断

四、主程序和服务程序抢占 CPU

主程序和服务程序抢占CPU示意图

4.6 DMA方式

4.6.1 DMA方式的特点

一、DMA和程序中断两种方式的数据通路

DMA和程序中断两种方式的数据通路

二、DMA与主存交换数据的三种方式

(1)停止CPU访问主存

停止CPU访问主存

当外设要求传送一批数据时,由DMA接口向CPU发一个停止信号,要求CPU放弃地址线、数据线和有关控制线的使用权。DMA接口获得总线控制权后,开始进行数据传送,在数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交回给CPU。在数据间隔和数据准备阶段DMA仍然占用内存的使用权和总线的占用

优点:控制简单,适用于数据传输率很高的I/O设备实现成组数据的传送
缺点:DMA接口在访存时,CPU基本上处于不工作状态或保持原状态

(2)周期窃取

周期挪用

在这种方法中,每当I/O设备发出DMA请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期,在数据间隔和数据准备阶段DMA放弃对内存的使用权放弃对总线的占用,而DMA不请求时,CPU仍继续访问主存。

I/O设备要求DMA传送会遇到三种情况:

  • 此时CPU不需访问主存:如CPU正在执行乘法指令,由于乘法指令执行时间较长,此时CPU不需访问主存,故I/O设备访存与CPU不发生冲突
  • CPU正在访存:此时必须待存取周期结束时刻,CPU才能将总线占有权让出
  • 访存冲突:I/O设备要求访存时,CPU也要求访存。此刻I/O访存优先于CPU访存,因为I/O不立即访存就可能丢失数据,这时I/O要窃取一、二个存取周期,意味着CPU在执行访存指令过程中插入了DMA请求,并挪用了一、二个存取周期,使CPU延缓了一、二个存取周期再访存

(3)DMA与CPU交替访问

DMA与CPU交替访问

这种方法适合于CPU的工作周期比主存存取周期长的情况。例如CPU的工作周期为1.2μs,主存的存取周期小于0.6μs,那么可将一个CPU周期分为$C_{1}$和$C_{2}$两个分周期,其中$C_{1}$专供DMA访存,$C_{2}$专供CPU访存

4.6.2 DMA接口的功能和组成

一、DMA接口功能

  1. 向CPU申请DMA传送
  2. 处理总线控制权的转交
  3. 管理系统总线、控制数据传送
  4. 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
  5. DMA传送结束时,给出操作完成信号

二、DMA接口组成

DMA接口组成

  • AR(主存地址寄存器):用于存放主存中需要交换数据的地址。传送前存放数据在主存中的首地址,传送过程中,每交换一次数据,将地址寄存器内容加1,直到一批数据传送完毕为止
  • WC(字计数器):用于记录传送数据的总字数,通常以交换字数的补码值预置。
  • BR(数据缓存寄存器):用于暂存每次传输的数据
  • DMA控制逻辑:管理DMA传送过程
  • 中断机构:当字计数器溢出(全“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作的后处理。中断的目的是为了报告一批数据传送结束。
  • DAR(设备地址寄存器):存放I/O设备的设备码或表示设备信息存储区的寻址信息,如磁盘数据所在的区号、盘面号和柱面号。

4.6.3 DMA的工作过程

一、DMA的传送过程

DMA的过程

(1) 预处理

通过几条输入输出指令预置如下信息

  • 通知 DMA 控制逻辑传送方向(入/出) • 设备地址 DMA 的 DAR
  • 主存地址——DMA 的 AR
  • 传送字数——DMA 的 WC

(2) 数据传送

(3) 后处理

  • 校验送入主存的数是否正确
  • 是否继续用 DMA
  • 测试传送过程是否正确,错则转诊断程序

二、DMA接口与系统的连接方式

1.具有公共请求线的DMA请求

具有公共请求线的DMA请求

若千个DMA接口通过一条公用的DMA请求线向CPU申请总线控制权。CPU发出响应信号用链式查询方式通过DMA接口,首先选中的设备获得总线控制权,即可占用总线与主存传送信息。

2.独立的DMA请求

独立的DMA请求

每一个DMA接口各有一对独立的DMA请求线和DMA响应线,它由CPU的优先级判别机构裁决首先响应哪个请求,并在响应线上发出响应信号,被获得响应信号的DMA接口便可控制总线与主存传送数据

三、DMA方式与程序中断方式的比较

 中断方式DMA 方式
数据传送程序硬件
响应时间指令执行结束存取周期结束
处理异常情况不能
中断请求传送数据后处理
优先级

4.6.4 DMA接口的类型

一、选择型

选择型

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

二、多路型

多路型

多路型DMA接口不仅在物理上可以连接多个设备,而且在逻辑上也允许多个设备同时工作,真正传输的时候只能有一个设备和内存进行数据传输,但是数据准备阶段可以由多个设备同时数据准备。