一种基于PCIe的全双工DMA传输方法技术

技术编号:12900397 阅读:103 留言:0更新日期:2016-02-24 10:52
本发明专利技术涉及一种数据传输方法,具体涉及一种基于PCIe的全双工DMA传输方法。一种基于PCIe的全双工DMA传输方法,包括板卡设备以及上位机;所述板卡设备为基于PCIe总线的板卡设备,包括发送侧控制寄存器、接收侧控制寄存器以及数据传输控制单元,发送侧控制寄存器和接收侧控制寄存器均设置有独立的FIFO;数据传输控制单元控制发送侧控制寄存器以及接收侧控制寄存器与上位机进行数据传输;板卡设备中的数据传输控制单元根据数据的传输方向,分别向上位机发送读和写请求TLP数据包。本发明专利技术总线占用时间非常短,且还需要等待上位机返回数据;而向上位机发送写请求TLP数据包时,除了三个双字的包头,还需要携带最多128个双字的数据,总线占用的时间较长。

【技术实现步骤摘要】

本专利技术涉及一种数据传输方法,具体涉及。
技术介绍
目前市场上现有的基于PCIe链路进行数据传输的板卡设备中,在与基于X86平台的上位机进行数据通讯的过程中,由于X86平台中北桥芯片的架构限制,从X86平台向板卡设备传输数据时,如果由X86平台发起并主导传输过程,则在每个TLP数据包中都仅能够携带4个字节的有效数据,而TLP数据包的包头最小也需要3个双字,由于有效数据仅占据了TLP数据包大小的最多1/4,因此在这种模式下,数据传输的效率非常低下,无法充分发挥PCIe链路的高速传输性能。为了解决此问题,一般的做法都是在板卡设备侧实现相应的DMA传输控制功能,即由板卡设备来发起并主导控制数据传输的全过程。市场上现有的基于PCIe链路进行数据传输的板卡设备中,一般都是采用了基于RAM原理的随机寻址模式,即在板卡设备中,为每个存储单元分配指定的地址,之后再通过完整的片选、地址、数据、读写使能信号来对相应的存储单元进行访问。在这种模式下,整个设计与基于PCI总线实现的DMA传输模式之间,能够保持较好的兼容和可移植性,但由于PCI总线先天性的限制,即其为了降低单板连线数目,采用了地址\数据复用的低速并行数据传输模式,决定了 PCI总线永远都只能够工作在半双工的传输模式下。在基于PCI总线的板卡设备同X86平台交换数据时,不论是从X86平台向基于PCI总线的板卡设备传输数据时,还是从基于PCI总线的板卡设备向X86平台传输数据时,由于其相应的操作都需要完整的使用PCI总线上的地址\数据、片选、读写使能等数据总线和控制信号,因而另外一个方向必然无法同时进行数据传输,只能等待这次传输彻底结束后,才能够开始相应的数据传输工作。板卡设备中的数据传输控制单元根据数据的传输方向,分别向上位机发送读和写请求TLP数据包。读请求TLP数据包仅需三个双字的数据量,之后等待上位机以读完成TLP数据包的形式返回数据即可,总线占用时间非常短,且还需要等待上位机返回数据;而向上位机发送写请求TLP数据包时,除了三个双字的包头,还需要携带最多128个双字的数据,总线占用的时间较长。
技术实现思路
本专利技术旨在提出一种利用PCIe总线两个方向的高速通道同时进行高速数据传输的全双工DMA传输方法。本专利技术的技术方案在于: ,包括板卡设备以及上位机;所述板卡设备为基于PCIe总线的板卡设备,包括发送侧控制寄存器、接收侧控制寄存器以及数据传输控制单元,发送侧控制寄存器和接收侧控制寄存器均设置有独立的FIFO ;数据传输控制单元控制发送侧控制寄存器以及接收侧控制寄存器与上位机进行数据传输;所述的数据传输控制单元分别向上位机发送读请求TLP数据包以及写请求TLP数据包,将读请求TLP数据包设置为高优先级,写请求TLP数据包设置为低优先级;发送完读请求TLP数据包之后,即发送写请求TLP数据包,直至上位机以读完成TLP数据包的形式返回了全部数据,再发送下一个读请求TLP数据包。所述的FIFO的深度为2048,数据宽度为32位。所述的控制寄存器均包括上位机物理地址寄存器、TLP数据包大小寄存器、TLP数据包个数寄存器、板卡设备内部物理地址寄存器。本专利技术的技术效果在于: 本专利技术通过为两个方向的数据传输设计独立的FIFO,将发送侧控制寄存器以及接收侧控制寄存器的数据传输和处理进行了分离,板卡设备以写请求TLP数据包的形式向上位机高速发送数据的同时,上位机也在以读完成TLP数据包的形式,向板卡设备高速发送数据,即PCIe链路的两个方向,同时都在进行着高速串行的数据传输,充分发挥了 PCIe链路的全双工串行高速链路的优势。【具体实施方式】—种基于PCIe的全双工DMA传输方法,包括板卡设备以及上位机;所述板卡设备为基于PCIe总线的板卡设备,包括发送侧控制寄存器、接收侧控制寄存器以及数据传输控制单元,发送侧控制寄存器和接收侧控制寄存器均设置有独立的FIFO ;数据传输控制单元控制发送侧控制寄存器以及接收侧控制寄存器与上位机进行数据传输;所述的数据传输控制单元分别向上位机发送读请求TLP数据包以及写请求TLP数据包,将读请求TLP数据包设置为高优先级,写请求TLP数据包设置为低优先级;发送完读请求TLP数据包之后,即发送写请求TLP数据包,直至上位机以读完成TLP数据包的形式返回了全部数据,再发送下一个读请求TLP数据包。其中,FIFO的深度为2048,数据宽度为32位。控制寄存器均包括上位机物理地址寄存器、TLP数据包大小寄存器、TLP数据包个数寄存器、板卡设备内部物理地址寄存器。即在板卡设备以写请求TLP数据包的形式,向上位机高速发送数据的同时,上位机也在以读完成TLP数据包的形式,向板卡设备高速发送数据,即PCIe链路的两个方向,同时都在进行着高速串行的数据传输,充分发挥了 PCIe链路的全双工串行高速链路的优势。在本产品的实施过程中,为发送侧控制寄存器和接收侧控制寄存器都设计有独立的FIFO,并有独立的传输总线和数据传输控制单元分别相连接。在需要进行数据传输时,由数据传输控制单元实现对应的传输功能。由板卡设备向上位机传输数据时需要使用发送侧控制寄存器,由上位机向板卡设备传输数据时也需要使用接收侧控制寄存器。发送侧控制寄存器和接收侧控制寄存器各建立一个深度为2048,数据宽度为32位的FIFO作为缓存空间,由软件一次把最多512个传输参数分别写入了发送或者接收FIFO之后,即可启动对应方向的DMA传输操作。DMA传输结束之后,即立即从FIFO中读出下一次数据传输的参数值,之后,即自动开始相应数据传输工作。在数据的传输过程中,如果需要暂停或开启当前的数据传输,只需要设置对应的控制位,之后可以读取传输状态寄存器,获取当前正在进行的数据传输的结束地址。数据传输过程中,两个方向可以完全独立的被暂停,中止,提供了一种非常灵活的控制方式和高效的数据传输机制。使用此方法设计的板卡设备,使用在PCIe Genl,XI的链路上时,实际测试得到的结果为进行单向传输时,板卡设备向上位机发送数据时,有效数据传输速率为220MBps ;上位机向板卡设备发送数据时,有效数据传输速率为190MBps ;板卡设备向上位机发送数据和上位机向板卡设备发送数据同时进行时,两个方向的总的数据传输速率为380Mbps,远远超过了单向传输数据时的性能。【主权项】1.,包括板卡设备以及上位机;其特征在于:所述板卡设备为基于PCIe总线的板卡设备,包括发送侧控制寄存器、接收侧控制寄存器以及数据传输控制单元,发送侧控制寄存器和接收侧控制寄存器均设置有独立的FIFO ;数据传输控制单元控制发送侧控制寄存器以及接收侧控制寄存器与上位机进行数据传输;所述的数据传输控制单元分别向上位机发送读请求TLP数据包以及写请求TLP数据包,将读请求TLP数据包设置为高优先级,写请求TLP数据包设置为低优先级;发送完读请求TLP数据包之后,即发送写请求TLP数据包,直至上位机以读完成TLP数据包的形式返回了全部数据,再发送下一个读请求TLP数据包。2.根据权利要求1所述的,其特征在于:所述的FIFO的深度为2048,数据宽度为32位。3.根据权利要求1所述的,其特征在于:所述的控制寄存器均包括上位机物理地址寄本文档来自技高网
...

【技术保护点】
一种基于PCIe的全双工DMA传输方法,包括板卡设备以及上位机;其特征在于:所述板卡设备为基于PCIe总线的板卡设备,包括发送侧控制寄存器、接收侧控制寄存器以及数据传输控制单元,发送侧控制寄存器和接收侧控制寄存器均设置有独立的FIFO;数据传输控制单元控制发送侧控制寄存器以及接收侧控制寄存器与上位机进行数据传输;所述的数据传输控制单元分别向上位机发送读请求TLP数据包以及写请求TLP数据包,将读请求TLP数据包设置为高优先级,写请求TLP数据包设置为低优先级;发送完读请求TLP数据包之后,即发送写请求TLP数据包,直至上位机以读完成TLP数据包的形式返回了全部数据,再发送下一个读请求TLP数据包。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭恩全郑霖
申请(专利权)人:陕西海泰电子有限责任公司
类型:发明
国别省市:陕西;61

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

1