Speaker
Description
The ITER Radial Neutron Camera (RNC) Data Acquisition (DAQ) prototype is based on the PCIe protocol as the interface to be used between the I/O unit and the host PC, enabling for the scalability of the final RNC DAQ system and allowing a sustainable 2 MHz peak event to cope with the long plasma discharges, up to half an hour.
The high performance computer receives the acquired data through the Direct Memory Access (DMA) channels at maximum data throughput of ∼1 GB/s per digitizer and for each data block written in the DMA, the hardware generates an interrupt.
To provide the interface between the hardware and the host applications, a Linux device driver was developed, which receives the data from the hardware and stores it in an internal memory. In the top level of the system, there are high performance applications that read the data and processes it accordingly in real-time, such as the neutron emissivity profile calculation or the pulse data compression.
The preliminary tests show that the Linux kernel miss some hardware interrupts when the time between interrupts are in the microsecond scale, which implies data loss if a traditional read technique is implemented. The usage of the pooling mechanisms is not suitable as the variable event rate over the same discharge will not allow to define an optimum fixed time to retrieve data.
This contribution presents the architecture of a different device driver approach that improves the performance and reliability, implementing an internal data transmission correction algorithm. This enables the device driver to automatically check and recover missing data blocks, recovering the data losses in a transparent way for the host applications. The performance results for tests with different event rates and different acquisition time up to half an hour are also presented.