Counter/Timer

cancel
Showing results for 
Search instead for 
Did you mean: 

Buffer Memory and DMA Questions on PCI 6602

Hi, community, For a position measurement application I use two PCI 6602 boards on a Pentium 4 based machine (Windows XP, SP3) with 3 GByte of memory installed under LV 8.6.1. 1.) In my application I need to sample up to six channels (3 channels each board) at a sampling rate of 120 KHz over a relatively long time in finite mode. I did this by use of the DAQmx Express VI. I assumed that I need 64 Bit per reading for up to 30 seconds. This results in 3.6 Million readings or a memory amount of circa 30 MByte per channel. All in all I allocated 24 Million samples of buffer but LV reported an error (correspondingly: allocated memory not availible). I reduced buffer allocation down to 18 Million readings and my application worked. Now my question: I there a limitation in buffer allocation by LV or in other words, how can the memory requirement be calculated? (May be my assumption of 64 Bit per reading is wrong...) 2.) Is there an advantage in memory usage on a 64 Bit machine with Windows 7 and Labview 2009 (64 Bit)? 3.) Although I started all six channels together (in DMA-Mode), only four (randomly selected by LV) channels were sampled in parallel. The remaining two channels were sampled after the acquisition of the first four channels was completed. Now I wonder whether there is a limitation of parallel use of DMA channels or whether the limitation is only a result of poor computer performance. If not, what can be done to decide LV to acquire all channels synchronized. I'll be very happy, if someone could help me with my questions.Best regards Rainer
0 Kudos
Message 1 of 3
(5,737 Views)

Hi Rainer,

 

the PCI-Bus does not limit the amount of DMA-Busmaster itself, but instead, the whole system does limit the transfer rates, bound to

the chipset, and the sharing of PCI-Bandwidth bewteen the PCI-Cards. So you can´t tell what the actual transfer rate would be without benchmarking it.

But there should not be a limit of DMA-channels in general. LabVIEW 32Bit can naturally allocate up to 2GB of RAM, but there is a switch in the windows boot.ini

which allows 32 Bit applications to use uo to 3GB of RAM. Naturally, a true 64Bit System can allocate much more RAM. 

 

http://technet.microsoft.com/en-us/library/bb124810(EXCHG.65).aspx 

 

Do you actually need to keep all the samples in RAM all the time?

 

 

Marco Brauner NIG 

0 Kudos
Message 2 of 3
(5,704 Views)

Hi Marco,

 

thank you, for yor reply. What you've written about DMA Channels meets my supposition. I will do several benchmarks and see what happens.

 

Nevertheless, the memory problem is getting more confused. In the time beetween my first posting and your reply, I found the article about the /3GB tag - and tried it. The result was really dissapointing. The maximum allocatible Memory for my application was LESS than without the tag...

 

But I did some tests with the LabView profile tool and found, that my assumption was correct with 8 Byte per reading of my sampled data. But now I'm helpless. The buffer memory that I allocated was less than 200 MByte but LabView suggested that there's no more memory available although my machine has 3 GByte of RAM!

 

For explanation, I attached several screenshots. My 'application' (LV Appl.bmp, only for test...) shows the six DAQmx VI and one for sampling clock generation (on top). The setup shows 5 MIO samplings and the assosiated screenshot (NoWork.bmp) the profile of the memory usage. Fault-1.bmp and LV Message-2 show the resulting error messages. Work.bmp shows the setup with 3 MIO samples that worked.

 

Have you any idea, what the reason for the memory limitation could be?

 

Best regards

 

Rainer

0 Kudos
Message 3 of 3
(5,695 Views)