PCI‑E零拷贝DMA数据传输方法技术

技术编号:10828547 阅读:101 留言:0更新日期:2014-12-26 17:57
本发明专利技术提供了一种PCI‑E零拷贝DMA数据传输方法,属于PCI‑E数据传输技术领域。本方法首先在数据源和数据目的系统中各自分配适当大小的物理内存,并分别对两个系统中分配的物理内存使用双向链表建立空闲内存池和工作内存池;在数据源系统上,用户应用程序传输数据时,从空闲内存池取得空闲内存后直接进行数据填充,数据填充完后传输给数据目的系统;在数据目的系统,将接收的数据存入工作内存池,用户应用程序使用相应的API接口从工作内存池中取得数据进行使用;使用完毕后将相应的内存归还给空闲内存池。本发明专利技术极大地减轻了CPU的压力,减少了系统调用,对于大规模小数据量的传输减轻了用户内核空间的切换,提高了系统效率。

【技术实现步骤摘要】
PC I-E零拷贝DMA数据传输方法
本专利技术涉及PCI-E数据传输
,具体是一种零拷贝的DM数据传输方法。
技术介绍
传统的PCI-E数据传输方法是采用DMA (Direct Memory Access,直接内存访问)。 具体方法是在数据源及数据目的系统中均需分配一块连续的物理内存,启动前在数据源系 统中用户应用程序负责把数据拷贝至物理内存中,DM传输时由DM控制器负责把数据从 数据源物理内存传输至数据目的系统的物理内存中,DMA结束后在数据目的系统中由应用 程序拷贝至用户空间使用,然后原2块物理内存可作下一次的数据传输用。图1是传统的 数据传输方法示意图: 步骤1)数据源系统:用户应用程序把数据拷贝至内核空间中物理内存中; 步骤 2) DMA ; 步骤3)数据目的系统:用户应用程序把数据从内核空间中物理内存拷贝至用户 空间使用。 该方法在数据传输过程中在数据源及数据目的的系统中,总计发生2次内存拷贝 (步骤1及步骤3, DM除外)及4次系统调用,效率低下,给CPU增加了不必要的负担。
技术实现思路
本专利技术的目的本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410472223.html" title="PCI‑E零拷贝DMA数据传输方法原文来自X技术">PCI‑E零拷贝DMA数据传输方法</a>

【技术保护点】
一种PCI‑E零拷贝DMA数据传输方法,其特征在于,包括如下步骤:步骤一、在数据源系统和数据目的系统中各自分配N块大小的物理内存,分别对数据源系统和数据目的系统中的N块物理内存使用双向链表建立空闲内存池以及工作内存池;步骤二、数据源系统的用户应用程序传输数据时,使用相应的API从数据源系统的空闲内存池取得一块空闲的内存;步骤三、数据源系统的用户应用程序直接将数据填充到所取得的内存中;步骤四、数据填充完后,使用相应的API将数据传输给数据目的系统,并存放在数据目的系统的工作内存池;步骤五、数据目的系统的用户应用程序使用相应的API从数据目的系统的工作内存池中取得传输来的数据,数据使用完毕后,将在...

【技术特征摘要】
1. 一种PCI-E零拷贝DMA数据传输方法,其特征在于,包括如下步骤: 步骤一、在数据源系统和数据目的系统中各自分配N块大小的物理内存,分别对数据 源系统和数据目的系统中的N块物理内存使用双向链表建立空闲内存池以及工作内存池; 步骤二、数据源系统的用户应用程序传输数据时,使用相应的API从数据源系统的空 闲内存池取得一块空闲的内存; 步...

【专利技术属性】
技术研发人员:陈训逊周游包秀国谢铭薛晨周康成周渊
申请(专利权)人:国家计算机网络与信息安全管理中心北京赛思信安技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1