Data Transfer Methods
- Updated2025-08-18
- 2 minute(s) read
Direct Memory Access
Direct Memory Access (DMA) is the default method of data transfer for PCI Express and PXI Express devices. 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. NI uses DMA hardware and software technology to achieve high throughput rates and increase system utilization.
NI PCI Express and PXI Express X Series devices have eight fully-independent DMA controllers for high-performance transfers of data blocks. One DMA controller is available for each measurement and acquisition block:
- Analog input
- Counter 0
- Counter 1
- Counter 2
- Counter 3
- Digital waveform generation (digital output)
- Digital waveform acquisition (digital input)
Each DMA controller channel contains a FIFO and independent processes for filling and emptying the FIFO. This allows the buses involved in the transfer to operate independently for maximum performance. Data is transferred simultaneously between the ports. The DMA controller supports burst transfers to and from the FIFO.
Each DMA controller supports several features to optimize PCI Express/PXI Express bus utilization. The DMA controllers pack and unpack data through the FIFOs. This feature allows the DMA controllers to combine multiple 16-bit transfers to the DAQ circuitry into a single 32-bit burst transfer on PCI Express. The DMA controllers also automatically handle unaligned memory buffers on PCI Express/PXI Express.
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. Refer to the Analog Output Data Generation Methods section for more information.