GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la différence entre DMA-Engine et DMA-Controller ?

DMA - Accès direct à la mémoire. L'opération de lecture ou d'écriture de votre pilote depuis/vers votre mémoire matérielle sans que le processeur n'y soit impliqué (le libérant pour faire d'autres choses).

Contrôleur DMA - la lecture et l'écriture ne peuvent pas être faites par magie. si le CPU ne le fait pas, nous avons besoin d'un autre HW pour le faire. Il y a de nombreuses années (à l'époque d'ISA/EISA), il était courant d'utiliser un matériel partagé sur la carte mère qui effectuait cette opération. Ces dernières années, chaque HW a son propre mécanisme DMA HW. Mais dans tous les cas, ce HW spécifique obtient l'adresse source et l'adresse de destination et transmet les données. Déclenche généralement une interruption une fois terminé.

Moteur DMA - Maintenant, je ne suis pas sûr de ce que vous voulez dire. Je crois que vous vous référez probablement au côté SW qui gère le DMA.DMA est un peu plus compliqué que les E/S habituelles puisque toute la mémoire SRC et DST doit être physiquement présente à tout moment pendant l'opération DMA. Si l'adresse DST est permutée sur le disque, le matériel écrira sur une mauvaise adresse et le système plantera. Ceci et d'autres aspects de DMA sont gérés par le pilote avec des sections de code que vous appelez probablement le "moteur DMA"

*Une autre interprétation de ce qu'est le "moteur DMA" peut être une partie de code du micrologiciel (ou HW) qui gère le contrôleur DMA HW du côté HW.


Selon ce document, http://www.asprom.com/application/intel_3.pdf :

Les contrôleurs DMA 82C37 ne doivent pas être confondus avec les moteurs DMA présents dans certains composants MCH (Memory ControllerHub) antérieurs. Ces contrôleurs DMA sont liés au bus ISA/LPC et sont principalement utilisés pour les transferts vers/depuis des périphériques lents tels que les contrôleurs de disquettes.

Il semble donc qu'il s'agisse d'un appareil trouvé sur les plates-formes précédentes qui utilisaient des appareils MCH.


Linux
  1. Quelle est la différence entre InnoDB et MyISAM ?

  2. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  3. Quelle est la différence entre Redhat et centOS ?

  4. Quelle est la différence entre insmod et modprobe

  5. Quelle est la différence entre strtok_r et strtok_s en C ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelle est la différence entre DMA et les E/S mappées en mémoire ?