Hello,
The onboard memory acts like a FIFO and not a circular buffer. It's really the PC buffer that acts like a circular buffer, continually streaming in data from the hardware FIFO until a trigger condition is met and collecting the specified number of pre and post trigger scans. Therefore, when using a stop trigger to acquire pre-trigger scans, you must allocate host memory to implement the circular buffer needed for this functionality. When using a start trigger, which only gives you post-trigger scans, the device does not even start acquiring data until the trigger is met.
In your situation where you are able to acquire across all 40 channels at 10MHz without having to use device memory, how long are you doing this for? When allocating host memory, the data is accumulated into the device memory while it's waiting for the resources to be transferred across the PCI bus. As long as it does not fill the entire buffer and start over-writing data that has not yet been transferred to PC memory, no errors will occur and the situation you described should be possible. If all of the data you are acquiring fits onto the onboard memory, then you will not run into this buffer overflow situation and there is more leeway in how quickly all of the data must be transferred to the PC buffer, similar to using the device memory allocation mode.
So why would you want to use device memory allocation as opposed to host memory allocation? When you allocate host memory for finite acquisitions, the PC buffer you configure has to be large enough to hold all of the data. The size of the buffer that you can allocate depends on how much memory Windows and your particular system allows you to page lock. If you want to acquire 30MSamples of data, Windows will not let you page lock a 30MSample buffer. Previously, the only option was to implement a continuous acquisition, which has throughput limitations.
The ability to acquire into device memory was implemented for high channel count, fast, finite acquisitions. This allows you to create a small PC buffer to store the first segment of data, while storing the remainder of the data in the onboard memory of the device. You can then transfer the remainder of the data into PC memory in smaller segments at a time after the acquisition has completed, eliminating PCI bandwidth issues. But one of the limitations is that you cannot acquire pre-trigger scans in this mode.
Nicole