打印
[N32G45x]

多个模块使用同一DMA时是否会影响数据传输效率

[复制链接]
367|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
画个朴昧|  楼主 | 2022-11-30 14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  需要大数据搬移场景下,大家都会首选使用DMA进行数据传输,如果多个模块都在使用DMA传输数据,相互之间会存在影响吗?
  DMA通道呈矩阵式分布,当DMA多通道都在进行数据传输时,首先会根据通道优先级传输高优先级通道数据,此时若有其他通道请求,会在高优先级通道连续采集3~5个长度后再把DMA资源分配给下一个通道,响应会秉承轮询原则进行传输。
  当一些应用中出现ADC、USART、SPI等多个模块都需要使用DMA传输数据,且会存在并行请求情况,此时DMA的效率会有所下降,单位时间内,各模块传输的数据量会有所减少。有些应用场景中有对单位时间传输数据有严格要求,此时可以让有冲突的模块使用两个不同的DMA,例ADC使用DMA1,USART使用DMA2,这种配置下两个DMA传输效率不会有影响。
  同时DMA的传输效率也与CPU任务量有关,CPU任务量越大,分给DMA的带宽会越小,理论是主频的一半。

使用特权

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

本版积分规则

12

主题

47

帖子

4

粉丝