LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

RT to FPGA DMA Engine differences

I've just revisited a set of DMA benchmark numbers I previously mentioned HERE.

 

I see an interesting difference in performance between an 8115 and an 8840 RT Controller.  Granted, the 8840 has 3.2 GB/s throughput whereas the 8115 only has 800MB/s but bear with me.....

 

On the 8115, sending 16MB data takes the same amount of time regardless whether I send it at 16Mx8Bit, 8Mx16Bit, 4Mx32Bit or 2Mx64Bit (same total Nr Bytes, different packaging).

 

On the 8840 I see that doing the same results in 16MxU8 taking twice as long as 8Mx16 bit which in turn takes twice as long as 4MxU32.  4MxU32 and 2xU64 take the same amount of time.

 

16MB via U8 takes the SAME amount of time on both controllers (88ms).  16MB via U32 is four times faster on 8840 than 8115 (88ms vs 25ms).

 

My conclusion is that the DMA engine on the 8115 packs the U8 values into U32 for transfer whereas the 8840 sends each U8 as a U32 without packing.

 

Is this a fair conclusion?  Why would the DMA engine of the 8840 be so much less efficient for U8 and U16?

 

Using LV 2015 SP1 in both cases.  Same drivers installed on both controllers.

0 Kudos
Message 1 of 3
(2,712 Views)

It sounds like the DMA bus on the 8115 is 8 bits wide, and on the 8840 it's 32 bits wide. That explanation fits the numbers and matches your conclusion other than that the 8115 doesn't need to do any packing of bytes into a 32-bit value.

0 Kudos
Message 2 of 3
(2,677 Views)

 Could be 8 bit. But I thought all DMA transfers were 32bit.....

 

Anyone know more details?

0 Kudos
Message 3 of 3
(2,635 Views)