[发明专利]一种硬件封包的基于PCIe的DMA传输方法有效
申请号: | 201510669692.3 | 申请日: | 2015-10-16 |
公开(公告)号: | CN105320625B | 公开(公告)日: | 2018-06-26 |
发明(设计)人: | 郭恩全;郑霖 | 申请(专利权)人: | 陕西海泰电子有限责任公司 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;G06F13/38 |
代理公司: | 西安亿诺专利代理有限公司 61220 | 代理人: | 康凯 |
地址: | 710075 陕西省西安市*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 板卡 最大有效 发送侧 数据包 数据量 封包 设备传输数据 数据传输过程 剩余数据量 有效数据量 传输 处理负担 传输数据 起始系统 剩余数据 数据传输 数据封包 停止使用 物理地址 携带 传递 保证 | ||
本发明涉及一种数据传输方法,具体涉及一种基于PCIe的DMA传输方法。一种硬件封包的基于PCIe的DMA传输方法,在基于PCIe总线的板卡设备中,以板卡设备向X86平台传输数据一方为发送侧,以X86平台向板卡设备传输数据为接收侧;包括以下步骤:(1)为发送侧以及接收侧分别设立独立的数据封包控制单元;(2)获取PCIe链路上的最大有效数据量Payloadmax;(3)确定首个数据包中携带的最大有效数据量Payloadfirst并在起始系统物理地址Addrstart开始以Payloadmax进行传输,直至剩余数据量不足Payloadmax则停止使用Payloadmax进行传输;(4)确定最后一个数据包中的有效数据量Payloadlast,并传递剩余数据;通过本发明提供的方法,软件的处理负担得以大幅降低,从而保证了数据传输过程更加的流畅和高效。
技术领域
本发明涉及一种数据传输方法,具体涉及一种基于PCIe的DMA传输方法。
背景技术
目前市场上现有的基于PCIe链路进行数据传输的板卡设备中,在与基于X86平台的上位机进行数据通讯的过程中,由于X86平台中北桥芯片的架构限制,从X86平台向板卡设备传输数据时,如果由X86平台发起并主导传输过程,则在每个TLP数据包(即PCIe协议中会话层的数据传输格式,一个TLP数据包由至少12个字节的包头和可选的包内数据组成)中都仅能够携带最多4个字节的有效数据,而TLP数据包的包头最小也需要12个字节,由于有效数据仅占据了TLP数据包大小的最多1/4,因此在这种模式下,数据传输的效率非常低下,无法充分发挥PCIe链路的高速传输性能。
为了解决此问题,一般的做法都是在板卡设备侧实现相应的DMA传输控制功能,即由板卡设备来发起并主导控制数据传输的全过程。
市场上现有的基于PCIe链路进行数据传输的板卡设备中,一般都是从基于PCI链路的模式上修改和移植过来的,其DMA处理模式也是如此,一般都是通过软件配置和计算主要的传输参数,之后由板卡设备侧的硬件来完成传输过程。
发明内容
本发明旨在提出一种由硬件控制的数据包封装机制,即通过硬件获取数据传输链路上的数据包所允许的最大有效数据量,根据具体的物理内存映射地址来进行独立的数据封包操作,从而大幅减少处理过程中对底层驱动软件的依赖和底层软件的操作,以实现最优的数据传输性能。
本发明的技术方案在于:
一种硬件封包的基于PCIe的DMA传输方法,在基于PCIe总线的板卡设备中,以板卡设备向X86平台传输数据一方为发送侧,以X86平台向板卡设备传输数据为接收侧;包括以下步骤:
(1)为发送侧以及接收侧分别设立独立的数据封包控制单元;
(2)获取PCIe链路上的最大有效数据量Payloadmax;
(3)确定首个数据包中携带的最大有效数据量Payloadfirst并在起始系统物理地址Addrstart开始以Payloadmax进行传输,直至剩余数据量不足Payloadmax则停止使用Payloadmax进行传输;
(4)确定最后一个数据包中的有效数据量Payloadlast,并传递剩余数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于陕西海泰电子有限责任公司,未经陕西海泰电子有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510669692.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电动机系统
- 下一篇:一种抗单粒子效应的静态随机存储器单元