[发明专利]PCI‑E多缓冲区DMA数据传输方法有效
申请号: | 201410472222.3 | 申请日: | 2014-09-16 |
公开(公告)号: | CN104239248B | 公开(公告)日: | 2017-06-06 |
发明(设计)人: | 云晓春;周游;包秀国;谢铭;周康成;童晓民;唐剑琪;周渊 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心;北京赛思信安技术有限公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28 |
代理公司: | 北京永创新实专利事务所11121 | 代理人: | 祗志洁 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种PCI‑E多缓冲区DMA数据传输方法,涉及PCI‑E数据传输技术领域。本方法在数据源系统和数据目的系统中各自分配N块物理内存,分别对两个系统中的N块物理内存通过双向链表建立空闲内存池及工作内存池;从空闲内存池获取用于写入数据的内存,写入数据的内存加入工作内存池;在环形缓冲区中写入所要操作的内存的物理起始地址和大小。本发明通过空闲内存池及工作内存池的使用减少内存拷贝次数和系统调用次数;通过环形缓冲区增加DMA的数据传输速率。本发明在大数据量的传输下降低了系统的等待开销,提高了传输效率。 | ||
搜索关键词: | pci 缓冲区 dma 数据传输 方法 | ||
【主权项】:
一种PCI‑E多缓冲区DMA数据传输方法,其特征在于,包括如下步骤:步骤一、在数据源系统和数据目的系统中各自分配N块物理内存,分别对两个系统中的N块物理内存通过双向链表建立空闲内存池及工作内存池;同时,在两个系统中都建立多个环形缓冲区以及其对应的读写指针,在环形缓冲区中写入所要操作的内存的物理起始地址和大小;所述的数据源系统和数据目的系统之间为PCI‑E接口传输数据;步骤二、在数据源系统中的用户应用程序使用API从数据源系统的空闲内存池获得内存并填入数据,将填入数据的内存加入到数据源系统的工作内存池中,将填入数据的内存的物理起始地址及大小写入数据源系统的环形缓冲区;步骤三、在数据源系统中的用户应用程序使用API发起数据传输请求;数据目的系统中的内核从数据目的系统的空闲内存池选取空闲内存,并将所选内存的物理起始地址及大小填入数据目的系统的环形缓冲区中,更新数据目的系统的环形缓冲区的写指针并通知数据源系统;步骤四、数据源系统中的内核收到数据目的系统的环形缓冲区更新的通知后,取得数据目的系统要写入数据的内存物理起始地址及大小,发起DMA完成数据传输;步骤五、数据传输完成后,数据源系统更新数据源系统的环形缓冲区读指针并通知数据目的系统;步骤六、数据目的系统把写入数据的内存放入数据目的系统的工作内存池供用户应用程序使用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心;北京赛思信安技术有限公司,未经国家计算机网络与信息安全管理中心;北京赛思信安技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410472222.3/,转载请声明来源钻瓜专利网。