发明名称 PCI-E零拷贝DMA数据传输方法
摘要 本发明提供了一种PCI-E零拷贝DMA数据传输方法,属于PCI-E数据传输技术领域。本方法首先在数据源和数据目的系统中各自分配适当大小的物理内存,并分别对两个系统中分配的物理内存使用双向链表建立空闲内存池和工作内存池;在数据源系统上,用户应用程序传输数据时,从空闲内存池取得空闲内存后直接进行数据填充,数据填充完后传输给数据目的系统;在数据目的系统,将接收的数据存入工作内存池,用户应用程序使用相应的API接口从工作内存池中取得数据进行使用;使用完毕后将相应的内存归还给空闲内存池。本发明极大地减轻了CPU的压力,减少了系统调用,对于大规模小数据量的传输减轻了用户内核空间的切换,提高了系统效率。
申请公布号 CN104239249A 申请公布日期 2014.12.24
申请号 CN201410472223.8 申请日期 2014.09.16
申请人 国家计算机网络与信息安全管理中心;北京赛思信安技术有限公司 发明人 陈训逊;周游;包秀国;谢铭;薛晨;周康成;周渊
分类号 G06F13/28(2006.01)I 主分类号 G06F13/28(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 祗志洁
主权项 一种PCI‑E零拷贝DMA数据传输方法,其特征在于,包括如下步骤:步骤一、在数据源系统和数据目的系统中各自分配N块大小的物理内存,分别对数据源系统和数据目的系统中的N块物理内存使用双向链表建立空闲内存池以及工作内存池;步骤二、数据源系统的用户应用程序传输数据时,使用相应的API从数据源系统的空闲内存池取得一块空闲的内存;步骤三、数据源系统的用户应用程序直接将数据填充到所取得的内存中;步骤四、数据填充完后,使用相应的API将数据传输给数据目的系统,并存放在数据目的系统的工作内存池;步骤五、数据目的系统的用户应用程序使用相应的API从数据目的系统的工作内存池中取得传输来的数据,数据使用完毕后,将在数据源系统和数据目的系统所使用的内存归还到空闲内存池。
地址 100029 北京市朝阳区裕民路甲3号