我想知道 DMA 在 Pandaboard 中的工作原理。我已经阅读了 Pandaboard 中使用的 OMPA4460 的 TRM,DMA 系统一次可以管理总共 128 个请求,最多 32 个逻辑通道和 4 个中断请求。当 DMA 正在进行时,CPU 是否有机会一次执行另一个任务?
user1705581
问问题
678 次
1 回答
1
但我想知道当 DMA 工作时,熊猫板的 CPU 是否有机会一次执行另一项任务???
DMA 的目的是专门在 I/O 设备和主存储器之间传输数据。按照设计,这是为了减轻 CPU 执行这种传输的工作,这就是所谓的编程 I/O。一旦 CPU 设置了 DMA 控制器来执行此数据传输,CPU 就可以自由地执行用于任何其他目的的指令。所以答案是“是的,100% 的机会”。
由于 PandaBoard 的 SoC 具有多通道 DMA 控制器,因此可以同时执行多个 I/O 操作。对性能和吞吐量的限制是内存带宽。请注意,由于指令和数据缓存,现代 CPU 倾向于使用更少的内存带宽(或以更突发的方式使用内存)。通常,当 CPU 和 DMA 控制器都争用内存时,CPU 会获得对内存的优先访问权。
请注意,这些特性都不是 PandaBoard 独有的。
于 2012-10-26T01:49:22.703 回答