直接内存访问的优点是什么?

法里兹

如果在DMA传输期间CPU无法访问总线,则必须等待总线释放,使用DMA如何带来性能优势?

克利福德

可能存在总线争用,但是它可能比通常由中断驱动的I / O(具有巨大的软件开销)的替代方法更快。通常,DMA传输将不使用最大内存带宽(也许除了内存到内存的传输外),因为外围设备往往比内存慢得多。DMA控制器将交错CPU访问。

此外,总线争用不是给定的,许多微控制器将其内存分段在单独的总线上,因此CPU对一个总线上的内存的访问可以与另一总线上的DMA操作同时发生。例如,哈佛体系结构设备具有用于代码和数据存储器的独立总线,因此可以同时获取操作码和数据,但是减少了数据存储器上的访问负载(因为并非所有指令都需要获取存储操作数),因此具有DMA的优势。

此外,一些微控制器,例如STM32系列中的许多微控制器(Cortex-M,也是哈佛体系结构),将其片上SRAM划分在单独的总线上(以及在单独的总线上的外部存储器接口)。通常,SRAM的某个部分会比其他部分小一些-也许是4K或16K-这是DMA缓冲专用的理想选择。通过避免总线争用,以这种方式使用内存会对性能产生重大影响。

某些STM32部件的另一个功能是内核耦合存储器(CCM),该内核耦合存储器(CCM)不可用于DMA或位带,但如果用于大多数CPU数据处理,则可将其他片上SRAM用于DMA,从而进一步减少了总线争用。

其他微处理器可能具有类似的内存分段。要利用这种内存体系结构,通常需要在代码中使用自定义链接描述文件和可能的链接描述,以识别段并明确为其分配对象。这将是特定于工具链的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

直接内存访问的优点是什么?

来自分类Dev

`rlist`的优点是什么?

来自分类Dev

malloc的优点是什么?

来自分类Dev

imageNamed的优点是什么?

来自分类Dev

ApplicativeBuilder的优点是什么?

来自分类Dev

签名内核的优点是什么?

来自分类Dev

setMaxConcurrentOperationCount = 1的优点是什么

来自分类Dev

匿名对象的优点是什么?

来自分类Dev

C ++中流的优点是什么?

来自分类Dev

__stdcall的优点/用途是什么?

来自分类Dev

签名内核的优点是什么?

来自分类Dev

家用配线架的优点是什么?

来自分类Dev

PC棒的优点是什么?

来自分类Dev

条件语句中逗号的优点是什么?

来自分类Dev

学说中“注释”的优点是什么?

来自分类Dev

语义网格系统的相对优点是什么?

来自分类Dev

微服务:优点和缺点是什么?

来自分类Dev

Java功能接口的优点是什么?

来自分类Dev

“ lambda表达式”的优点是什么?

来自分类Dev

Upstart和systemd的优点/缺点是什么?

来自分类Dev

Unix文件系统结构的优点是什么

来自分类Dev

使用LESS变量的优点是什么

来自分类Dev

JavaScript中异步方法的优点是什么?

来自分类Dev

MySQL联接查询的优点是什么

来自分类Dev

此C结构定义的优点是什么?

来自分类Dev

使用fputcsv的优点/缺点是什么?

来自分类Dev

制作游戏-安全变量的优点是什么?

来自分类Dev

包含在导轨中的优点是什么?

来自分类Dev

相对于直接映射的内存,虚拟内存的性能影响是什么?