2017-04-16 8 views

Répondre

0

1 - CPU plus rapide que DMA

CPU est inactif. Aucune tâche n'est en cours sauf la vôtre (ou votre tâche a la priorité la plus élevée et la planification est la planification prioritaire) et l'interruption de noyau est désactivée (Cela arrêtera même la planification car il n'y aura pas d'interruption de temporisation). Dans ce cas, le transfert de CPU sera nettement plus rapide que le DMA, car la CPU obtient généralement une horloge plus rapide que l'horloge du bus (AHB en ARM) qui fournit l'horloge au DMA.

2 - DMA plus rapide que CPU

Dans le système normal où il y a toujours quelques processus en cours et les interruptions sont activées qui peuvent entraîner un retard que le processeur sera en cours d'exécution souvent ISR et sera saut contexte de processus en raison de la planification.

+0

Merci Shaibal! J'ai également trouvé une autre réponse: CPU est plus rapide que DMA lorsque les données sont transférées entre les registres internes. Ce cas ne nécessite pas de DMA pour prendre le contrôle sur le bus et contourner le processeur. –

+0

Que voulez-vous dire par registres internes? – Shaibal

+0

Je veux dire qu'il y a un transfert de données qui n'implique pas de mémoire mais qui s'inscrit comme des registres à usage général. ça pourrait être le cas. –