VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I increase my VXI transfer rates?

Hello all,

I have an application where I need to stream binary (U32) data to disk as fast as possible. I’m using Kinetic Systems V200 VXI modules that are set up to store data to internal buffers which are sized to fill every second and generate a VXI interrupt. The processor then transfers the data as the next buffer fills so it’s a continuous process.

 

This all works fine. My problem is the speed of the transfers. The function I’m using is the “VISA Move In 32” (I read somewhere that the high level block transfers were the most efficient for this type of application). But the fastest rate I’ve been able to achieve is about 4 Mbytes/sec. I’ve taken any type of data manipulation as well as data storage out of the routine so the only thing I’m timing is the data transfer itself.

 

I’ve tried using VXI-MXI2, VXI-MXI3, and the new MXI express and all produce similar results. I’ve also tried putting the data transfer routine in a separate timed loop from the main program and assigned it a higher priority and a different processor with almost no difference.

 

I know these controllers all have continuous transfer ratings at least several times greater than what I’m getting. I also realize that my application is not exactly continuous but the transfers are greater than 1Mbyte.

 

So, what can I do to improve the transfer rate? Would an embedded controller be any better? Under what conditions could I expect to see transfer rates in line with the MXI specs?

 

Thanks in advance for your help,

Russell

0 Kudos
Message 1 of 3
(6,863 Views)

Hello Russell,

So far all that you have stated about function calls and benchmarking looks correct, and the fact that you are seeing the same performance between different MXI interfaces leaves me to suspect that the MXI interface or the host controller are not necessarily the limiting factors.  Do you happen to know what performance is expected for the Kinetic Systems V200 VXI modules for various types of VXI transactions?  Memory latency, and the board's ability to process data transactions are a big part of performance.

Any information on this would be appreciated.

Thanks!

Mike

0 Kudos
Message 2 of 3
(6,849 Views)

Hi Mike,

Thanks for the input. The buffers on the V200 are mapped directly into VXI A32 memory so I was thinking the speed of the transfers would be a function of the controller rather than the V200.

 

That is a good point you make about memory latency. I couldn’t find any spec in my manual or on the manufacturer’s website but I’ll keep digging.

 

I’m also wondering if the conversion process between the VXI bus and the PCI bus is slowing things down. I know the PCI bus is much faster than the VXI but maybe the conversion is not very efficient. Unfortunately the only way to test that would be to get my hands on an embedded controller.

 

Thanks,

Russell

0 Kudos
Message 3 of 3
(6,845 Views)