微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 链式DMA什么意思

链式DMA什么意思

时间:10-02 整理:3721RD 点击:
RT,小白刚入门

链式DMA其结构允许其传输一大片碎片化的存储器中数据,每块存储器访问时无需再次访问DMA寄存器。相当于一个数据链表,链式DMA称为描述符表,表内由若干个描述符组成,每个描述符描述了一块DMA的长度,目的地址和源地址信息等。在进行一次DMA读或写操作时,可通过描述符表连续取得若干块DMA内存信息,保证DMA过程连续不间断的进行,提高效率。



   2楼解释的很详细了。链式DMA相当于多个普通DMA连起来跑,简单链式DMA可以通过软件一次性把多次DMA的源地址目的地址数据长度等配置好后,启动DMA完成所有数据传输;复杂点的链式DMA,可以做到先完成一次源地址到目的地址的数据传输后,DMA自动去某个地址空间获取下一次DMA传输需要的源地址目的地址数据长度等信息,然后再次自动启动DMA传输,如此循环



  感谢



   那块DMA传输,就是对一整块存储空间进行访问,而不是碎片化的存储空间,这样理解多吗



   大牛,请教一下,我现在实现的是你说的第一种方式,不会重新启动的。我想问的的是以你的经验,每个描述符对应一个DMA传的的数据量能到多少?我用windriver发的上层,一个描述符只能分配4KB的数据空间,就是一个页。



  我怎么记得我做WINDRIVER最大划过1M的空间?划的时候必须设置为物理地址也连续。虚拟地址连续物理地址未必连续。如果物理地址不连续,DMA就错了。

DMA 20年前就是 based on descriptor了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top