Data Transfer Methods
There are three primary ways to transfer data across the PCI bus: Direct Memory Access (DMA), Interrupt Request (IRQ), and Programmed I/O.
Direct Memory Access (DMA)
DMA is a method to transfer data between the device and computer memory without the involvement of the CPU. This method makes DMA the fastest available data transfer method. National Instruments uses DMA hardware and software technology to achieve high throughput rates and to increase system utilization. DMA is the default method of data transfer for DAQ devices that support it.
Interrupt Request (IRQ)
IRQ transfers rely on the CPU to service data transfer requests. The device notifies the CPU when it is ready to transfer data. The data transfer speed is tightly coupled to the rate at which the CPU can service the interrupt requests. If you are using interrupts to acquire data at a rate faster than the rate the CPU can service the interrupts, your systems may start to freeze.
Programmed I/O
Programmed I/O is a data transfer mechanism where the user's program is responsible for transferring data. Each read or write call in the program initiates the transfer of data. Programmed I/O is typically used in software-timed (on demand) operations.
Changing Data Transfer Methods between DMA and IRQ
There are a limited number of DMA channels per device (refer to the specifications document for your device). Each operation (specifically, AI, AO, etc.) that requires a DMA channel uses that method until all of the DMA channels are used. After all of the DMA channels are used, you will get an error if you try to run another operation requesting a DMA channel. If appropriate, you can change one of the operations to use interrupts. For NI-DAQmx, use the Data Transfer Mechanism property node. For Traditional NI-DAQ (Legacy), use the Set DAQ Device Information VI or function.