打印

转:DMA技术

[复制链接]
1412|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
6019赵文|  楼主 | 2011-5-21 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       DMA的全称是Direct Memory Access,译为直接内存存取。DMA传送方式是让存储器与外设、或外设与外设之间直接交换数据,不需经过CPU的累加器中转,减少了这个中间环节,并且内存地址的修改、传送完毕的结束报告都是由硬件电路实现的,因此大大地提高了数据的传输速度。一个DMA传送只需要执行一个DMA周期,相当于一个总线读写周期。


    DMA传送主要用于需要高速大批量数据传送的系统中,以提高数据的吞吐量。如磁盘存取、图像处理、高速数据采集系统、同步通信中的收/发信号等方面应用甚广。


    DMA传送的优点是以增加系统硬件的复杂性和成本为代价的,因为DMA是用硬件控制代替软件控制的。另外,DMA传送期间CPU被挂起,部分或完全失去对系统总线的控制,这可能会影响CPU对中断请求的及时响应与处理。因此,在一些小系统或速度要求不高、数据传输量不大的系统中,一般并不用DMA方式。


    DMA传送虽然脱离CPU的控制,但并不是说DMA传送不需要进行控制和管理。通常是采用DMA控制器来取代CPU,负责DMA传送的全过程控制。目前DMA控制器都是可编程的大规模集成芯片,且类型很多,如Z-80DMA、Intel 8257、8237。


DMA传送的过程:




   1、当外设有DMA需求,并且准备就绪,就向DMAC控制器发出DMA请求信号DREQ

2
DMAC接到DMA请求信号后向CPU发出总线请求信号HRQ。该信号连接到CPUHOLD信号。


3
CPU接到总线请求信号以后,如果允许DMA传输,则会在当前总线周期结束后,发出DMA响应信号HLDA。一方面CPU将控制总线、数据总线和地址总线置高阻态,即放弃对总线的控制权;另一方面CPU将有效的HLDA信号送给DMAC,通知DMACCPU已经放弃了对总线的控制权。


4
DMAC获得对总线的控制权,并且向外设送出DMAC的应答信号DACK,通知外设可以开始进行DMA传输了。


5
DMAC向存储器发送地址信号和向存储器及外设发出读/写控制信号,控制数据按初始化设定的方向传送,实现外设与内存的数据传输。


6
、数据全部传输结束后,DMACCPUHOLD信号,要求撤销总线请求信号。CPU收到该信号以后,使HLDA无效,同时收回对总线的控制权。



DMA的四种传送方式:


1、单字节传输方式:每次DMA传送时仅传送一个字节的数据,效率略低。在数据的传送过程中,CPU有机会重新获得对总线的控制权。



2、数据块传输方式:数据以数据块的方式进行传输。只要DREQ启动就会连续地传送数据块。一次请求传送一个数据块,效率高。在数据的传送期间,CPU长时间无法控制总线。


3、请求传输方式:DREQ信号有效就连续传输数据,否则不能进行数据的传输。


4、级联传输方式:用于通过多个Intel 8237、8257级联以扩展通道。第一级只起优先权网络的作用,实际的操作由第二级芯片完成。还可由第二级到第三级等。
DMA控制器级联图:

DMA的传送类型:
Ø
DMA把数据由存储器传送到外设。
Ø
DMA写:把外设输入的数据写入存储器。
Ø
DMA检验(控操作):DMAC不进行任何检验,外设可以进行DMA校验,存储器和 I/O 控制线保持无效,不进行传送。
Ø
存储器到存储器传输:多数情况下,DMAC进行的是外设接口和内存之间的传输。除此之外,DMAC还可以实现内存区域到内存区域的传输。

相关帖子

沙发
huzixian| | 2011-5-21 19:29 | 只看该作者
看看DMA控制器会对内置控制器有一个很清晰的了解啊!

使用特权

评论回复
板凳
相见欢喜| | 2011-5-23 23:34 | 只看该作者
很受启发啊,对了解DSP内部集成的DMA很有帮助啊!

使用特权

评论回复
地板
wowewo| | 2011-5-24 13:31 | 只看该作者
了解了

使用特权

评论回复
5
思行合一| | 2011-5-24 17:08 | 只看该作者
受教了

使用特权

评论回复
6
kakio| | 2011-5-25 10:34 | 只看该作者
这个不错i

使用特权

评论回复
7
dolido| | 2011-5-25 10:37 | 只看该作者
DMA的四种传送方式  受教了

使用特权

评论回复
8
dolido| | 2011-5-25 10:37 | 只看该作者
多谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

350

主题

1515

帖子

1

粉丝