NXP MCU 技术论坛
直播中

杨帆

7年用户 1403经验值
私信 关注
[问答]

求助,SDMA M2M脚本很慢,是不是使用了BURST DMA Unit?

在 i.mx8mn 上使用 ROM SDMA 脚本执行 M2M 传输时,传输带宽似乎非常低。以 400MHz 的 AHB 和 IPG 时钟运行的 SDMA2 和 SDMA3 就是这种情况(默认 AUDIO_IPG 和 AUDIO_AHB 使用默认 EVM 设备树)。
为基准执行的传输被构造为一个描述符数组,每个描述符将 96 个 32 位字从 DDR 中的一个区域传输到 DDR 中的另一个区域。随着我们增加描述符的数量,基准收敛到每个单词 55ns。相比之下,具有完全缓存失效的缓存区域之间的 memcpy 为每个字 3.4ns,而非缓存强有序 DDR 之间的 memcpy 为 55ns 左右。这表示 SDMA 脚本未使用突发 DMA 单元。

回帖(1)

世态薄凉

2023-12-26 18:14:20
对于您的问题,我建议您先确认是否使用了 BURST DMA Unit。您可以在 SDMA 脚本中查找有关 DMA 单元的相关信息,如果找到了突发 DMA 单元的相关信息,则说明您的脚本已经使用了该单元,如果没有找到,则需要进行相应的配置。

另外,您可以尝试通过优化 SDMA 脚本的方式来提高传输带宽。您可以使用更有效的描述符布局,并尝试将多个描述符组合成一次 DMA 传输以减少 DMA 描述符的数量,从而提高传输带宽。

最后,您也可以考虑使用其他 DMA 方案,例如 uDMA 或 DPDMA,以提高传输性能。这些解决方案都具有更高的性能和更好的灵活性,可以满足更高级的数据传输要求。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分