DMA方式
概念
主存和DMA接口之间有一条数据通路,使得主存和设备交换信息时,不需要通过CPU,因此工作速度比程序中断更高。
常用于主存与高速I/O设备之间的大批量数据、信息交换。
DMA接口类型
- 选择性DMA接口:适用于为高数据传输率的设备服务
- 多路型DMA接口:适用于同时为多个数据传输率不高的设备服务
DMA&CPU冲突
由于DMA和CPU共享主存,可能出现两者争夺主存的冲突,为了有效分时处理,有以下3种方法:
- 停止CPU访问主存
- 周期挪用(周期窃取)
当I/O设备发出DMA请求时,设备窃取需要的总线占用权
- DMA和CPU交替访问
DMA接口组成
- 主存地址寄存器(AR)
- 字计数器
- 数据传冲寄存器(BR)
- DMA控制逻辑
- 中断机构
- 设备地址寄存器(DAR)
DMA接口与系统连接方式
- 公共请求:若干个DMA接口通过一条公用的DMA请求线向CPU申请总线控制权,之后链式查询
- 独立请求:每个DMA接口有一对独立的DMA请求线和DMA响应线,由CPU的优先级判别机构裁决响应哪个请求
DMA接口功能
- 向CPU申请DMA传送
- 处理总线控制权的转交
- 在DMA期间管理系统总线、控制数据传送
- 确定数据传送的起始地址和数据长度,修正数据传送过程中的差错
- 在数据块传送结束时,给出DMA操作完成的信号
DMA工作流程
- 预处理:DMA开始前,CPU必须预置以下信息:
- 给DMA控制逻辑指明,数据传送方向是输入还是输出
- 给DMA设备地址寄存器送入设备号,并启动设备
- 向DMA主存地址寄存器送入交换数据的主存起始地址
- 数据传送:以数据块为单位传送
- 后处理:DMA结束工作,如校验数据正确性,决定是否继续DMA等