【发布时间】:2014-07-22 18:23:10
【问题描述】:
我对网卡的理解是,当接收数据时,该数据通过网卡驱动程序被DMA'd到主存中。然后内核将该内存复制到用户空间并发送任何必要的消息。
我的问题是,在 Windows 中,是否可以设置 DMA 正在写入的地址?我的目标是消除类似于 NVidia 的 GPUDirect 管道工作方式的额外内存副本。
【问题讨论】:
标签: windows networking dma
我对网卡的理解是,当接收数据时,该数据通过网卡驱动程序被DMA'd到主存中。然后内核将该内存复制到用户空间并发送任何必要的消息。
我的问题是,在 Windows 中,是否可以设置 DMA 正在写入的地址?我的目标是消除类似于 NVidia 的 GPUDirect 管道工作方式的额外内存副本。
【问题讨论】:
标签: windows networking dma
是的,这是可能的。我相信这被称为“公共缓冲区 DMA”。它用于智能网络适配器。利用这一点需要编写自己的网络驱动程序。这是一些关于它的微软文档。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff565359%28v=vs.85%29.aspx
【讨论】: