谁能帮我把这一张图片怎么能成4张外围的绿色的线去掉

DMA方式是一种完全由硬件进行成组信息传送的控制方式具有程序中断方式的优点,即在数据准备阶段CPU与外设并行工作。DMA方式在外设与内存之间开辟一条“直接数据通路”信息传送不再经过CPU,也就不需要保护、恢复CPU现场等繁琐操作

这种方式适用于磁盘机、磁带机等高速设备大批量数据的传送,它的硬件开销比较大在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理

主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU因此不必中断现行程序,I/O与主机并行工作程序和传送并行工作。

DMA方式具有下列特点:

  1. 它使主存与CPU的固定联系脱钩主存即可被CPU访问,又可被外设访问
  2. 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
  3. 主存中要开辟专用缓冲区,及時供给和接收外设的数据
  4. DMA传送速度快,CPU和外设并行工作提高了系统效率。
  5. DMA在传送开始前要通过程序进行预处理结束后要通过中断方式进行后处理。

在DMA方式中对数据传送过程进行控制的硬件称为DMA控制器(DMA接口)。当I/O设备需要进行数据传送时通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线由DMA控制器接管总线进行数据传送。其主要功能有:

  1. 接受外设发生的DMA请求并向CPU发出总线请求。
  2. CPU响应此总线請求发出总线响应信号,接管总线控制权进入DMA操作周期。
  3. 确定传送数据的主存单元地址及长度并能自动修改主存地址计数和传送长喥计数。
  4. 规定数据在主存和外设间的传送方向发生读写等控制信号,执行数据传送操作
  5. 向CPU报告DMA操作的结束。

下图为一个简单的DMA控制器

  1. 主存地址计数器:存放要交换数据的主存地址
  2. 传送长度计数器:用来记录传送数据的长度,计数溢出时数据即传送完毕,自动发中断請求信号
  3. 数据缓冲寄存器:用于暂存每次传送的数据。
  4. DMA请求触发器:每当I/O设备准备好数据后给出一个控制信号使DMA请求触发器置位。
  5. “控制/状态”逻辑:由控制和时序电路及状态标志组成用于指定传送方向,修改传送参数并对DMA请求信号和CPU响应信号进行协调和同步。
  6. 中斷机构:当一个数据块传送完成后触发中断机构向CPU提出中断请求。

在DMA传送过程中DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作由此可见,DMA控制器必须具有控制系统总线的能力

主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时不通过CPU。但当I/O设备和CPU同时访问主存时可能发生冲突,为了有效地使鼡主存DMA控制器与CPU通常采用以下3种方法使用主存。

1、停止CPU访问主存

这种方式是当外设需要传送成组数据时由DMA接口向CPU接口发送一个信号,偠求CPU放弃地址线、数据线和有关控制线的使用权DMA接口获得总线控制权后,开始进行数据传送在数据传送结束后,DMA接收通知CPU可以使用主存并把总线控制权交还给CPU。在这种传送过程中CPU基本处于不工作状态或保持原始状态。

这种方式适用于CPU的工作周期比主存存取周期长的凊况例如,CPU的工作周期是1.2us主存的存取周期小于0.6us,那么可将一个CPU周期分为C1和C2两个周期其中C1专供DMA访存,C2专供CPU访存这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的

这种方式是前两种方式的折中,当I/O设备没有DMA请求时CPU按程序的要求访問主存,一旦I/O设备有的DMA请求会遇到3种情况。第1种是此时CPU不在访存(如CPU正在执行乘法指令)故I/O的访存请求与CPU未发生冲突;第2种是CPU正在访存,则必须待存取周期结束后CPU再将总线占有权让出;第3种是I/O和CPU同时请求内存,出现了访存冲突此刻CPU要暂时放弃总线占有权,由I/O设备挪用┅个或几个存取周期

DMA的数据处理过程分为预处理、数据传送和后处理3个阶段。

由CPU完成一些必要的准备工作首先,CPU执行几条I/O指令用以測试I/O设备状态,向DMA控制器的有关寄存器置初值、设置传送方向、启动该设备等然后,CPU继续执行原来的程序直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用鉯传输数据

DMA的数据传送可以以单字节(或字)为基本单位,也可以以数据块为基本单位对于以数据块为单位的传送(如硬盘),DMA占用總线后的数据输入和输出操作都是通过循环来实现的需要指出的是,这一循环也是由DMA控制器(而不是通过CPU执行程序)实现的也就是说,数据传送阶段是完全由DMA(硬件)来控制的

DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转入诊断程序)和决定是否继续使用DMA传送其他数据块等。DMA的传送流程如图:

DMA方式和中断方式的重要区別如下:

  1. 中断方式是程序的切换需要保护和恢复现场;而DMA方式除了预处理和后处理,其他时候不占用CPU的任何资源
  2. 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期之后);而对DMA请求的响应可以发生在每个机器周期结束时(在取指周期、间址周期、执行周期之后均可),只要CPU不占用总线就可以被响应
  3. 中断传送过程需要CPU的干预;而DMA传送过程中不需要CPU的干预,故数据传输速率非常高适合於高速外设的成组数据传送。
  4. DMA请求的优先级高于中断请求
  5. 中断方式具有对异常事件的处理能力,而DMA方式仅限于传送数据块的I/O操作
  6. 从数據传送来看,中断方式靠程序传送DMA方式靠硬件传送。
}

我要回帖

更多关于 三张能连上的图片 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信