IO设备与主存信息传送控制方式 DMA方式
DMA方式 IO设备 通过DMA接口电路和主存直接通信
DMA和主存数据交换方式
由于DMA和cpu共享主存,可能出现主存争用情况,为了主存分时利用,可以采用以下方式
停止cpu访问主存
IO设备工作时,DMA向cpu发送停止信号,cpu放弃总线控制权,DMA控制总线进行数据传输,传输完毕,通知cpu,cpu重新获取总线控制权。
控制简单
cpu处于不工作状态或者保持状态,为充分发挥cpu对于主存的利用率
适用于数据传输速率很高的IO设备实现成组数据传送
周期挪用
当IO设备发出DMA请求时,IO设备便挪用总线占用权一个或者几个主存周期
当IO设备窃取周期时,此时cpu如果不访存,则不冲突;如果cpu正在访存,待访存周期结束,cpu让出总线控制权;如果cpu和DMA同时访问,IO设备优先级较高,否则会丢失数据
IO设备每挪用一个主存周期都要申请总线控制权,建立总线控制权和归还总线控制权
适用于IO设备读写周期大于主存周期情况
DMA和CPU交替访问
将CPU工作周期分为C1,C2两个周期,C1 DMA访存 C2 CPU访存
不需要申请和建立,归还总线控制权
适用于CPU工作周期比主存存储周期长的情况
DMA接口功能和组成
DMA接口功能
向CPU申请DMA传送
处理总线控制权转交
管理系统总线 控制数据传送
确定数据传送首地址和长度 修正传送过程中数据地址和长度
DMA传送结束 给出操作完成信号
DMA接口组成
主存地址寄存器AR 存放主存中需要交换数据地址
字计数器WC 记录传送数据总字数
数据缓冲寄存器BR 暂存每次传输的数据
DMA控制逻辑 管理DMA传送过程
中断机构 字计数器溢出时,表示数据交换完毕,中断机构向CPU提出中断
设备地址寄存器DAR 存放IO设备的设备码
DMA工作过程
DMA数据传送过程分为预处理,数据传送和后处理
预处理
指明数据传输方向
向DAR中送入设备号,启动设备
向AR中送入交换数据起始地址
向WC中送入交换数据个数
数据传送
数据传送流程如下
以数据输出为例,将主存中一部分数据传输到IO设备中
BR中数据送入设备中,此时BR已空
设备向DMA发出请求DREQ
DMA向CPU申请总线控制权HRQ
CPU发回HLDA信号,表示允许将总线控制权交给DMA接口
将AR中主存地址送入地址线,并命令存储器读
通知设备已被授予一个DMA周期DACK,并为交换下一个字做准备
将数据总线内容送入BR 由BR将数据送入设备中
修改主存地址和字计数值
判断数据是否传输完毕,若传输完毕,则由WC溢出信号,中断机构向CPU提出中断
后处理
由中断服务程序完成以下:
校验送入主存数是否正确
是否继续用DMA
测试传送过程是否出错,如果出错,则转错误诊断和错误处理程序
DMA接口与系统总线连接方式
具有公共请求线的DMA接口
独立的DMA请求
DMA接口类型
选择型
物理上连接多个设备 逻辑上只允许一个设备
由预处理阶段设备地址寄存器决定选中哪个设备
适用于传输速率很高的设备
多路型
物理上连接多个设备 逻辑上允许同时多个设备工作
各个设备通过字节交叉方式向DMA接口传送数据
适用于多个传输速率不高的设备