Chapter 10
Bus Interface
10-2
ni.com
Data Transfer Methods
There are three primary ways to transfer data across the PCI bus are as
follows:
•
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, and so on) 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.