PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

Bandwdith Consideration for NI PXI-6562

Hi,
 
    I am trying to figure out bandwidth(data throughput over the bus) for NI PXI 6562
I found a document regarding this and belowed is my calculation.
 
NI PXI 6562,
Acquisition or generation rate : 400Mb/s
no. of channels  : 32
memory per channel : 1 byte or 2 bytes ( acquisition ) 2 bytes ( fixed for generation )
Required bus BW calculation : 400Mb/s * 32 * 1 = 12800Mb/s (1byte) <2 bytes is 25600Mb/s>
I am wondering whether it is correct or not.
 
I am using NI 1042Q chassis with 8196 embedded controller and only 1 modular NI PXI 6562, so it is using parallel bus PCI(33MHz clk,32 bits wide ) has a BW of 132MB/s only,
 
I am wondering whether i can do any acquisition or generation with this BW and what kind of limitation i could have for high speed acquisition and generation.
 
Could anyone pls share if you have any experience in it if PXI 6562 was to be used for aqcuisition and generation for High speed.
 
0 Kudos
Message 1 of 10
(5,306 Views)
I believe your calculation for required bus bandwidth is a little off. If you are generating at 400 MB/s then this is your required bandwidth. The PXI/PCI bus has a theoretical bandwidth of 132 MB/s. You may want to consider the PXI Express option for higher bandwidth. You will also be limited by your harddrive speed. Normal hard drive speeds range from 30-70 MB/s. However, you can get much faster rates with a RAID array. Basically, you will be limited by whatever is you lowest bandwidth so if you have a hard drive that writes 30 MB/s then this will be your generation rate.

Here are some good resources for you to look over.

High-Speed Data Streaming: Programming and Benchmarks
http://zone.ni.com/devzone/cda/tut/p/id/5897

NI-HSDIO Stream from Disk (Generation) Examples
http://zone.ni.com/devzone/cda/epd/p/id/5270

High Speed Stream-To-Disk and Stream-From-Disk Solutions for National Instruments Products
http://digital.ni.com/public.nsf/allkb/FF1376BF5AA9716786256BF900577BBA?OpenDocument

Please let me know if you have any other questions.
Regards,

Chris Delvizis
National Instruments
0 Kudos
Message 2 of 10
(5,287 Views)
thanks a lot for fast reply,
 
I am using  examples of NI-HSDIO Stream from Disk (Generation) Using Win32 File IO
 
I am wondering in the program where is the data enqueue and dequeue are taking place?
Is it at controller memory or device memory ?
 
What is the maximum size of queue ?
 
What is the size of data that 1 queue holds ?
 
What is the maximum block size(samples) that could be used ?
 
Is it in SDR Mode or DDRmode?
 
Attached vi is the example.
 
 


Message Edited by Phone Thet Khaing on 01-29-2008 12:09 AM
0 Kudos
Message 3 of 10
(5,281 Views)
The queue is held on on the controller memory. When you call the HSDIO Write, this writes the data to the onboard device memory. The maximum size of the queue depends on how much memory you have on your controller and how much of it is free. The size of the data for one queue depends on the data type you are using. This data type is set when you create the queue with the Obtain Queue VI. The number of samples you can have again depends on your harddrive and memory limitations. Obviously, you will not be able to have more samples than fit on your harddrive and you will be able to continue generating as long as you can write samples to the onboard memory as fast as you can generate. Also, it looks like this example is in SDR.
Regards,

Chris Delvizis
National Instruments
0 Kudos
Message 4 of 10
(5,263 Views)
In the case of streaming only 2G bytes of data,
only bottleneck is read/write speed of HD which is around 27MB/s for my application,
I am wondering with the sufficient amount of memory (e.g 2GB of memory), can we put entire 2GB of data on controller memory (e.g in a queue) and tranfer it to device(e.g NI PXI 6562) whcich are shared by PCI Bus(approx 100MB/s) ?
 
Am i right to say that above situation , only limitation would be RAM size eliminating the HD bottleneck?
 
How can I check my onboard memory size ? for example,if the memory size happened to be 2MB, is it per channel or shared memery for whole 32 channels?
 
Thanks a lot for your reply and links now I am more aware NI PXI streaming technology.
0 Kudos
Message 5 of 10
(5,243 Views)
Streaming to memory would eliminate the harddrive bottleneck. However, there are other things to take into account. Just because you have 2GB of memory on your controller doesn't mean that you have space for a 2GB waveform. Some of this memory space will be taken up by the operating systems processes. You will still be limited by the PXI Bus at a theoretical max of 133 MB/s.

How to Read Onboard Memory Size of a Modular Instrument
http://digital.ni.com/public.nsf/allkb/209D1B2FB479E5E5862571EF00619457?OpenDocument
Regards,

Chris Delvizis
National Instruments
0 Kudos
Message 6 of 10
(5,216 Views)

Hi Chris,

Earlier you mentioned that "if you have a hard drive that writes 30 MB/s then this will be your generation rate".

does it mean that I can use only 30MHz of clk speed or could it be limited by no. of channels(e.g 30MHz/4=7.5Mhz for 4 channels?

Can I run at 50MHz clk for generation and 25MHz clk for acquisition? my calculation is that 4 channels for generation is needed 200Mbits/s and 100Mbits/s for acquisition which are well below the HD R\W speed of my HD(28.2MB/s = 224Mbits/s).

 my current 8196 controller memory is 512MB, attached are error msg during generation & acquisition, could it be data transfer rate which is calculated based on data width ( 1byte*25MHz= 25MSamples/s for acquisition & 2bytes*50MHz=100MSamples/s)

Thanks,

Phone TK

Download All
0 Kudos
Message 7 of 10
(5,206 Views)
Just to clarify, mega samples per second is the same thing as mega hertz. For example, if you are acquiring at 100 MHz then you are getting 100 MS/s.

Required Bandwidth = Acquisition Rate * Number of Channels * Memory per sample(Each line is 1 bit so 1/8 of a byte)

Using that formula, acquiring at 25 MHz we get 25MHz * 16 * 1/8 = 50 MB/s

The error you are receiving "Data requested has been overwritten in the device memory" means that we can not fetch the data off the device to the controller memory as fast as we are acquiring. The error occurs when we overwrite data that we have not fetched. In the example you are using, you can see that when the "Samples Available in Onboard Memory" indicator gets empty then you will get an error.

Now theoretically we should be fine with just the acquisition, but when we add the generation into the equation we get we get 50MHz * 16 * 1/8 = 100 MB/s. This means we need a total required bandwidth of 150 MB/s. Since the PCI/PXI has a limit of 133 MB/s (in real life its even less than this) we will get errors very quickly.

All of this has nothing to do with the hard drive write speed. However, this will come into play later after you resolve the onboard memory errors. You will then need to make sure you are taking the samples from the controller memory to the harddrive before running out of memory on the controller.

I hope this helps!
Regards,

Chris Delvizis
National Instruments
0 Kudos
Message 8 of 10
(5,180 Views)
Hi,
for NI PXI 6562, for acquisition we can select datawidth of 1byte or 2 bytes for efficient onboard memory usage,so if we assign 1 byte, only 8 lines are for acquisition,therefore
Required Bandwidth = Acquisition Rate * Number of Channels * Memory per sample(Each line is 1 bit so 1/8 of a byte)
Using that formula, acquiring at 25 MHz we get 25MHz * 8 * 1/8 = 25 MB/s
so that 25MB/s is for 8 lines, if i use only 4 lines, can i say that data acquired is only 12.5MB/s or is it the constant of 25MB/s no matter how many no. of lines whichever is lower that 8 lines ?
 
the example I am using is only fo acquisition, do i have to take generation datathroughput for my bandwidth consideration fr acquisition?
 
for generation, datawidth is fixed at 2bytes for 16 channels so 1 bit for each channel,
Required Bandwidth = generation Rate * Number of Channels * Memory per sample(Each line is 1 bit so 1/16 of 2 bytes)
Using that formula, generating at 50 MHz we get 50MHz * 16 * 1/16 = 50 MB/s
so even if we take both acquisition and generation into consideration,total is only 75MB/s,
May I know why I am still getting the error message?
Thanks
Phone Thet Khaing
0 Kudos
Message 9 of 10
(5,164 Views)
You cannot select a data width less than 1 byte, so no you cannot assume 12.5 MB/s.

If you are only running the acquisition program then you only have to worry about the acquisition throughput. If you are running both acquisition and generation then you will have to take into account both.

Like I said earlier, the 132 MB/s bandwidth of the PCI bus is only theoretical. Realistically, you will not reach this speed. The speed also depends on what other devices you have connected, processor speed, and what other programs you are running. I would recommend restarting the computer and only running the vi's needed. You can also try slowing down the acquisition and generation rates to find a speed where it does not error.
Regards,

Chris Delvizis
National Instruments
0 Kudos
Message 10 of 10
(5,148 Views)