一、DMA 方式的特点
1. DMA 和程序中断两种方式的数据通路
程序中断方式 和程序查询方式 数据通路是相同的
我们采用程序中断方式的话、要利用CPU当中的某一个寄存器(如:ACC寄存器)、作为数据传输的中介
2. DMA 与主存交换数据的三种方式
(1)停止 CPU 访问主存
控制简单,适合大量数据的传输
CPU处于不工作的状态或保持状态
未能充分发挥CPU对主存的利用率
(2)周期挪用(或周期窃取)
占用一个或者多个内存访问周期,来完成数据的传输
DMA访问主存的三种可能:
CPU此时不访存, 主存和总线的使用权可以直接给DMA
CPU正在访存,DMA需要进行等待
CPU与DMA同时请求访存,DMA优先获得总线控制权和主存访问权
(3) DMA 与 CPU 交替访问
不需要DMA提出申请,建立总线的控制权和内存的使用权。
二、DMA 接口的功能和组成
接口的组成是由接口的功能确定的、根据功能需求来确定、接口的组成
1.DMA接口的功能
想象一下、使用DMA接口进行数据传输的过程
(1)向CPU申请DMA请求
(2)处理总线控制权的转交
(3)管理系统总线、控制数据传送
(4)确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
(5)DMA传送结束时,给出操作完成信号
2.DMA接口的组成
AR:地址寄存器,用来表识数据在主存当中存放或者写入的地址。
WC:计数器,完成传输数据量的计数。使用补码存放负N。
BR:数据缓冲器,外部设备输入的数据或者是存储单元当中输出的数据要暂时存储到接口的数据缓冲器当中。
DAR:设备地址寄存器,供设备选择电路使用。
DMA控制逻辑:控制接口内部的工作,控制在给定的时序给出给定的信号。
DREQ:设备请求信号。
DACK:对设备给出的应答信号。
HRQ:总线使用请求信号。
HLDA:CPU向DMA发出的应答信号。
中断机构:向CPU发出中断信号,用于数据传输完之后对后续工作进行处理,WC=0时会向中断机构发出信号。
三、DMA 的工作过程
1. DMA 传送过程
预处理、数据传送、后处理
(5) 后处理
校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
2. DMA 接口与系统的连接方式
(1) 具有公共请求线的 DMA 请求
(2) 独立的 DMA 请求
3. DMA 方式与程序中断方式的比较
四、DMA 接口的类型
选择型 在 物理上 连接 多个 设备
在 逻辑上 只允许连接 一个 设备
多路型 在 物理上 连接 多个 设备
在 逻辑上 允许连接 多个 设备同时工作