2017-04-16 33 views

回答

0

1 - 比CPU快DMA

CPU处于空闲状态。除您的任务外,没有任何任务正在运行(或者您的任务具有最高优先级并且调度是优先级调度)并且禁用核心中断(由于不存在计时器滴答中断,因此它甚至会停止调度)。在这种情况下,CPU传输肯定会比DMA更快,因为CPU通常比DMA提供时钟的总线(ARM中的AHB)时钟更快。

2 - DMA比CPU

在总有几个进程在运行,同时允许中断这可能会导致延迟CPU会经常运行ISR和会跳进程上下文普通系统快由于调度。

+0

谢谢Shaibal! 我还发现了另一个答案:当数据在内部寄存器之间传输时,CPU比DMA快。这种情况不需要DMA来接管总线和旁路CPU的控制。 –

+0

你的内部寄存器是什么意思? – Shaibal

+0

我的意思是有一个数据传输不涉及内存,但像通用寄存器一样注册。情况可能如此。 –

相关问题