输入输出系统——DMA方式
DMA方式的特点
DMA和程序中断两种方式的数据通路
DMA与主存减缓数据的三种方式
停止CPU访问主存
总线的控制权,内存的访问权交给了DMA接口
优点:
控制简单
适合大量数据传送
缺点:
未充分发挥CPU对主存的利用
周期挪用(周期窃取)
DMA访问主存的三种情况:
- CPU此时不访存
- CPU正在访存
- CPU与DMA同时请求访存,此时CPU将总线控制权交给DMA
DMA与CPU交替访问
CPU工作周期:
C1:专供DMA访存
C2:专供CPU访存
特点:
不需要申请建立和归还总线的使用权
DMA接口的功能和组成
DMA接口功能
- CPU申请DMA传送
- 处理总线控制权的转交
- 管理系统总线,控制数传送
- 确认数据传送的首地址和长度,修正传送过程中的数据地址和长度
- DMA传送结束是,给出操作完成信号
DMA接口组成
AR:地址寄存器
WC:计数器
DAR:设备地址寄存器
BR:数据缓存器
HRQ:总线使用请求信号
HLDA:应答信号
DREQ:设备请求信号
DACK:控制信号
DMA的工作过程
DMA传送过程
预处理、数据传送、后处理
预处理
- 输入输出
- 设备地址—DMA的DAR(设备地址寄存器)
- 主存地址—DMA的AR(地址寄存器)
- 传送字数—DMA的WC(计数器)
DMA传送过程的示意
CPU
数据传送
数据传送过程(输入)
图片
- 设别向BR(数据缓冲器)送数据
- 设别向DMA控制逻辑发送DREQ(设备请求信号)
- DMA控制逻辑电路向总线发送HRQ(总线占用请求)
- CPU通过总线向DMA发送HLDA(应答信号)总线由DMA控制
- AR(地址寄存器)给出地址信号
- 设备发送控制信号
- BR(数据缓冲器)发送数据(通过数据线)给主存(AR+1、WC+1、判断是否溢出)
- 中断请求
数据输出过程
图片
- BR—设备(数据)
- 设备—DMA控制逻辑(请求信号)
- DMA控制逻辑—CPU(主存、总线控制权请求信号)
- CPU—DMA控制逻辑(应答信号)
- AR—主存(内存地址)
- DMA控制逻辑—设备(传送数据控制信号)
- 主存—BR(传送数据)
注:通过总线;AR、WC设值并修改 - WC—中断机构(溢出信号)
- 中断机构—CPU(后处理信号)
后处理
- 校验送入主存的数据是否正确
- 是否继续使用DMA
- 传送传送过程是否正确,错误则转诊断程序
- 由中断服务程序完成
DMA接口与系统的连接方式
具有公共请求线的DMA
独立的DMA请求
DMA方式与程序中断方式的比较
程序中断方式 | DMA | |
---|---|---|
数据传送 | 程序 | 硬件 |
相应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
DMA接口类型
选择型
物理上连接多个设备,逻辑上只允许连接一个设别
多路型
物理上连接多个设备,逻辑上连接多个设别,数据准备多个,数据传送一个;