[X]关闭

关于DMA的时间消耗的分析

文档创建者:瞌睡来登了
浏览次数:4450
最后更新:2020-03-04
  最近在做ADC采集,采用AXI FIFO +DMA的方式将采集数据发给PS端DDR做缓存,目前DMA采用的64bit位宽传输,max burst size为16,每次传输字节数为42194B,在PS端设置MAX_PKT_LEN(一次传输长度)为50000,AXI FIFO深度设置为8192,现在每次传输数据时间消耗为300us,但我每帧采集数据通过前级FIFO缓存后为间隔20us来一帧,现在功能要求必须将每一帧都要传上去,因此DMA传输太慢了,不能满足,我通过ila去抓取AXI fifo输出,感觉两次DMA传输之间间隔确实会等很久。  后面我在考虑是不是DMA位宽用得不够,就将位宽改为256bit,max burst size改为128,这样去测试,速度改善不是很明显。这是我目前分析的思路,不知道是不是我DMA用法不对,按理论来说这速度差很多吧。

发表评论已发布 2

uisrc

发表于 2020-3-4 09:51:09 | 显示全部楼层

目前时间的消耗主要消耗在了软件和驱动发起DMA传输上,增加每次DMA传输数据的数量,通过增加FIFO的深度,或者用DDR缓存,这样每次DMA传输的时候多传输一些数据,
越努力越幸运!加油!

瞌睡来登了

发表于 2020-3-4 19:26:06 来自手机 | 显示全部楼层

就是不知道如何下手了,该改的都改了,离目标带宽还差得远咯,FIFO深度指的是Axi FIFO哈?DDR我们也是用了的,用data move会不会高效一点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则