Il y a quatre méthodes principales pour transférer des données via le bus PCI : Accès direct à la mémoire (DMA), Requête d'interruption (IRQ), E/S programmées et USB en bloc.

Accès direct à la mémoire (DMA)

Le DMA est un mécanisme qui permet de transférer les données entre le périphérique et la mémoire de l'ordinateur sans utiliser le processeur. De ce fait, le DMA est le mécanisme de transfert de données le plus rapide. NI utilise la technologie matérielle et logicielle DMA pour obtenir de hauts débits de transfert et augmenter l'utilisation du système. Le DMA est la méthode de transfert de données par défaut pour les périphériques DAQ qui le supportent.

Remarque Les périphériques USB et DAQCard ne supportent pas le DMA.

Requête d'interruption (IRQ)

Les transferts IRQ ont recours au processeur pour traiter les requêtes de transfert de données. Le périphérique avertit le processeur quand il est prêt à transférer des données. La vitesse du transfert de données est étroitement liée à la vitesse à laquelle le processeur peut traiter les requêtes d'interruption. Si vous utilisez des interruptions pour acquérir des données plus rapidement que le processeur n'est capable de traiter ces interruptions, le système risque de se bloquer.

E/S programmées

Les E/S programmées représentent un mécanisme de transfert de données qui n'utilise pas de buffer ; à la place, l'ordinateur lit et écrit directement sur le périphérique. Les opérations à cadencement logiciel (sur demande) typiques utilisent des E/S programmées.

USB en bloc

L'USB en bloc est un mécanisme de transfert de données en continu bufférisé basé sur messages. Cette méthode ultra-rapide est le mécanisme de transfert par défaut des périphériques USB.

Mappage de mémoire

Le mappage de mémoire est une technique qui permet de lire et d'écrire directement sur un périphérique à partir du programme, ce qui évite les ralentissements dus au passage par le driver qui opère au niveau du noyau du système d'exploitation. Le passage par le noyau est plus sûr mais plus lent. Le mappage de mémoire est moins sûr car il expose une page mémoire de 4 Ko à votre programme, mais il est plus rapide. Le mappage de mémoire est le mécanisme par défaut si votre périphérique le supporte.

Changement du mécanisme de transfert de données : de DMA à IRQ et vice versa

Il existe un nombre limité de voies DMA par périphérique (reportez-vous à la documentation de votre périphérique). Chaque opération (AI, AO, et ainsi de suite) qui requiert une voie DMA utilise ce mécanisme jusqu'à ce que toutes les voies soient utilisées. Lorsque toutes les voies DMA sont utilisées, vous recevrez une erreur si vous essayez d'exécuter une autre opération demandant une voie DMA. Si c'est possible, vous pouvez modifier une des opérations pour qu'elle utilise des interruptions. Pour NI-DAQmx, utilisez l'attribut/propriété de voie Mécanisme de transfert de données.