I/O系统之DMA方式


DMA方式的特点

DMA和程序中断的数据通路

主存和DMA接口之间有一条数据通路,因此主存和设备之间进行数据交换时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式高。这一特点十分适合高速I/O或辅存与主存之间的信息交换。

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

  • 停止CPU访问主存

    优点:控制简单

    缺点:CPU处于不工作状态或保持原状态

  • 同期挪用(或周期窃取)

    当I/O设备发出DMA请求时,I/O设备便挪用或窃取一个或几个访存周期,而DAM不请求时,CPU仍然访问主存。

    DMA访问主存由三种可能:

    (1)CPU此时不访存:DMA直接获得总线控制权

    (2)CPU正在访存:CPU在存取周期结束后,将总线控制权给DMA

    (3)CPU与DMA同时访存:此时CPU将总线控制权让给DMA,这相当于在CPU执行访存指令的过程中插入了DMA请求,并挪用了几个存取周期,使CPU延缓了几个存取周期再访存

    注意:DMA每挪用一个周期都要申请总线控制权、建立总线控制权和归还总线控制权,因此尽管传送一个字对主存而言只占用1个存取周期,但对DMA而言,实质要占用2~5个存取周期

  • DMA与CPU交替访问

    这种方式将CPU的工作周期分为两个部分:C1专供DMA访存,C2专供CPU访存。因此不需要总线使用权的建立和归还过程,速度比较快,但实用性不高

DMA接口的功能和组成

DMA接口的功能

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

DMA接口的组成

  • 主存地址寄存器AR:存放主存中需要交换数据的地址。数据传送之前,将数据在主存中的首地址放入AR中,传送过程中,每交换一次数据,AR+1
  • 字计数器WC:记录传送数据的总字数,通常以交换字数的补码值预置,每传送一个字,WC+1,直到WC为0
  • 数据缓冲寄存器BR:暂存每次传送的数据
  • DMA控制逻辑:负责管理DMA的传送过程
  • 中断机构:当WC溢出(全“0”)时,表示数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求
  • 设备地址寄存器DAR:存放I/O设备的设备码或表示设备信息存储区的寻址地址

DMA的工作过程

DMA的传送过程

包括三个阶段:预处理、数据传送和后处理

  • 预处理

    通知DMA控制逻辑传送方向(输入还是输出)

    设备地址——>DMA的DAR

    主存地址——>DMA的AR

    传送字数——>DMA的WC

  • 数据传送

    以输入(写入主存)为例:

  • 后处理

    数据传送结束后,DMA向CPU发出中断请求,CPU响应并执行中断服务程序,做一些DMA的结束工作,包括校验送入主存的数据是否正确、是否继续使用DMA、测试传送过程是否正确,错则转入诊断程序

DMA接口与系统的连接方式

  • 具有公共请求线的DMA请求(链式查询)

  • 独立的DMA请求

DMA与程序中断的比较

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

DMA接口的类型

  • 选择型:在物理上连接多个设备,在逻辑上只允许连接一个设备

  • 多路型:在物理上连接多个设备,在逻辑上允许连接多个设备同时工作


文章作者: likai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 likai !
评论
  目录