DMA的特点
DMA和程序中断方式的数据通路
DMA与主存交换数据的三种工作方式
1、停止CPU访问主存
CPU放弃了对总线的控制权,放弃了对主存的访问。
控制简单
CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率
2、周期挪用(周期窃取)
周期指访存周期,占用一个或几个内存访问周期完成数据的传输
DMA访问主存有三种可能
- CPU此时不访存
- CPU正在访存
- CPU与DMA同时请求访存:此时CPU将总线控制权让给DMA
3、DMA与CPU交替访问
CPU工作周期:C1专供DMA访存,C2专供CPU访存
不需要申请、建立和归还总线的使用权
DMA接口的功能和组成
DMA接口功能
- 向CPU申请DMA传送
- 处理总线控制权的移交
- 管理系统总线、控制数据传送
- 确定数据传送的首地址和长度,修正传送过程中的数据地址和长度
- DMA传送结束后,给出操作完成信号
利用DMA方式传送数据时,数据的传送过程完全由DMA接口电路控制
DMA接口组成
DMA方式的接口电路中有程序中断部件,其作用是向CPU提出传输结束
DMA的工作过程
DMA传送过程
预处理、数据传送、后处理
1、预处理
通过几套输入输出指令预置如下信息
通知DMA控制逻辑传送方向(入\出)
设备地址——DMA的DAR
主存地址——DMA的AR
传送字数——DMA的WC
2、DMA传送过程示意
3、数据传送过程(输入)
4、数据传送过程(输出)
DMA方式是以数据块为单位传送的。
5、后处理
校验送入主存的数是否正确
是否继续用DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成
DMA接口与系统的连接方式
具有公共请求线的DMA请求
串行连接方式
约靠近CPU的DMA接口优先级越高。
独立的DMA请求
DMA方式和程序中断方式的比较
中断方式 | DMA方式 | |
---|---|---|
数据传送 | 程序 | 硬件 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
DMA接口类型
选择型
在物理上连接多个设备
在逻辑上只允许连接一个设备
多路型
在物理上连接多个设备
在逻辑上允许连接多个设备同时工作
多个外部设备可同时进行数据准备,不同设备的数据传输是串行执行。