2017-04-16 32 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

我的意思是有一個數據傳輸不涉及內存,但像通用寄存器一樣註冊。情況可能如此。 –

相關問題