使用Zynq,在linux下使用axidma时,没有找到官方文档(ug,pg等),只是在论坛上找到一个ppt,其中提到了Zero Copy Buffer Design。翻译过来好好理解一下
Many software designs copy data from user space to kernel space and from kernel space to user space .
一些软件要求从用户空间和内核空间相互拷贝数据。(linux分kernel space 和 user space)
For larger buffers copying data is inefficient and in the case of DMA it defeats the purpose of using DMA to move the data.
对于更大的buffer,拷贝数据是低效,并且这种情况下DMA违背了使用DMA搬移数据的目的。
A zero copy design avoids copying memory and is required for user space DMA applications .
一个zero copy 设计避免了拷贝存储,并且这是被用户空间DMA应用所要求的。
Some network stacks (not Linux) provide a zero copy design and achieve higher performance .
一些网络栈(非linux) 提高了zero copy设计,并且实现了更高的性能。
Mapping a kernel space allocated memory buffer into user space removes the need to copy data .
映射一个 分配了存储buffer在用户空间的 内核空间取消了拷贝数据的需求。
Mapping user space allocated buffers into kernel space so that a driver can access them is another method .
(– This is more complex and not covered in this session )
映射一个 分配了buffer在内核空间的用户空间来让驱动可以访问他们(内核空间的buffer) 是另一种方法 (但这更复杂)。