其他分享
首页 > 其他分享> > I/O设备——DMA方式

I/O设备——DMA方式

作者:互联网

DMA方式:设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。
主存和DMA接口之间有一条数据通露,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序屮断方式的工作速度高。这一特点特别适合于高速I/O或辅存与主存之间的信息交换。因为高速IO设备若每次申请与主机交换信息时,都要等待CPU做出中断响应后再进行,很可能因此使数据丢失。值得注意的是,若出现高速IO设备(通过DMA接口)和CPU同时访问主存,CPU必须将总线(如地址线、数据线)占有权让给DMA接口使用,即DMA采用周期窃取的方式占用一个存取周期。

主要功能有:
传送前:
1.接受外设发出的DMA请求,并向CPU发出总线请求。
2.CPU响应此总线请求,发出总线响应信号,接管总制权,进入DMA操作周期。
传送时:
3.确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
4.规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
传送后:
5.向CPU报告DMA操作的结束。

组成:
1.主存地址计数器AR:存放要交换数据的主存地址
2.传送长度计数器WC:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
3.数据缓冲寄存器:暂存每次传送的数据
4.DMA请求触发器:每当设备准备好数据后给出一个控制信号,使DMA请求触发器置位。
5.控制/状态逻辑:由控制和时序电路及状态标志组成,用于指定传送万向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步
6.中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。
注:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。

DMA方式中CPU的工作:
1.预处理:
主存起始地址→AR
I/O设备地址→DAR
传送数据个数→WC
启动I/O设备
2.数据传送:
继续执行主程序同时完成一批数据的传送
3.后处理:
中断服务程序做DMA结束处理

DMA的数据传送阶段:
1.预处理:DMA请求
2.数据传送:主存起始地址送总线;数据送I/O设备(或主存);修改主存地址;修改字计数器
3.后处理:向CPU申请程序中断

以数据输人为例,具体操作如下。
1.当设备准备好一个字时,发出选通信号,将该字读到DMA的数据缓冲寄存器(BR)中,表示数据缓冲寄存器“满"
2.与此同时设备向DMA接囗发请求(DREQ)。
3.DMA接囗向CPU申请总线控制权(HRQ)。
4.CPU发回HLDA信号,表示允许将总线控制权交给DMA接囗。
5.将DMA主存地址寄存器中的主存地址送地址总线,并命令存储器写。
6.通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备。
7.将DMA数据缓冲寄存器的内容送数据总线。
8.主存将数据总线上的信息写至地址总线指定的存储单元中。
9.修改主存地址和字计数值。
10.判断数据块是否传送结束,若未结,则继续传送;若已结,(字计数器溢出),则向CPU申请程序中断,标志数据块传送结束。

若为输出数据,则应完成以下操作:
1.当DMA数据缓冲寄存器已将输出数据送至IO设备后,表示数据缓冲寄存器已“空"
2.设备向DMA接冂发请求(DREQ)。
3.DMA接口向CPU申请总线控制权(HRQ)。
4.CPU发回HLDA信号表示允许将总线控制权交给DMA接口使用。
5.将DMA主存地址寄存器中的主存地址送地址总线,并命令存储器读。
6.通知设备已被授予一个DMA周期(DACK),并为交换下一个字做准备。
7.主存将相应地址单元的内容过数据总线读入到DMA的数据缓冲寄存器中。
8.将DMA数据缓冲寄存器的内容送到输出设备
9.修改主存地址和字数值。
10.判断数据块是否已传送完毕,若未完毕,继续传送;若已传送完毕,则向CPU申请程序中断。

DMA的传送方式:
主存和DMA控制器之间有一条数据通路,因此主存和设备之间交换信息时,不通过CPU。但当设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
1.停止CPU访问主存:控制简单,CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率
2.DMA与CPU交替访存:一个CPU周期分为两个周期,分别共二者使用,不需要总线使用权的申请、建立和归还过程,硬件逻辑更为复杂
3.周期窃取(存储周期):DMA访问主存有三种可能:
CPU此时不访存(不冲突)
CPU正在访存(存取周期结束让出总线)
CPU与DMA同时请求访存(I/0访存优先)

DMA特点:
主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,IO与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点:
1.它使主存与CPU的固定联系脱钩,主存既可被CPU问,又可被外设访问。
2.在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
3.主存中要开辟专用缓冲区,及时供给和接收外设的数据。
4.DMA传送速度快,CPU和外设并行工作,提高了系统效率。
5.DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。











标签:DMA,传送,方式,主存,总线,数据,CPU,设备
来源: https://www.cnblogs.com/LXZYZDCZL/p/16089977.html