UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
658 Views
Registered: ‎01-30-2018

What's the difference between "paged" data movement and "contiguous" data movement?

What's the difference between "paged" data movement and "contiguous" data movement?
 
Captura.PNG
0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
618 Views
Registered: ‎07-18-2014

Re: What's the difference between "paged" data movement and "contiguous" data movement?

Hi,
Continuous means, buffers are placed into contiguous memory location in Physical DDR RAM. This is must needed requirement for Simple DMA or zero copy case.
Whereas Paged means, buffer is not allocated contiguous memory location. For this kind of buffer, zero copy and Simple DMA will not work. So for such case, SGDMA (scatter gather DMA) is needed for buffer transfer from/to DDR memory to/from accellerator.

-Heera
0 Kudos
Xilinx Employee
Xilinx Employee
582 Views
Registered: ‎05-23-2016

Re: What's the difference between "paged" data movement and "contiguous" data movement?

Note that the content of the data motion report is the result of pragmas and static analysis.  As a result, if the static analysis cannot deduce whether or not something is paged/contiguous, it will present it as paged, as it must err on the side of caution.  If the memory is actually contiguous, it will not treat it as though it is paged.

 

In practical terms, "paged" memory requires that the memory be pinned prior to transfer, which is a very expensive procedure.  For the purposes of this topic, "paged" pretty much means "anything that was not allocated with sds_alloc".  As was previously mentioned, if sds_alloc is used, but the static analysis fails to deduce this, you'll end up with a paged-capable datamover [SG-DMA] at compile time, but you won't pay the pinning cost at run time.

0 Kudos