System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于非HOST主存的ROCE通信与传输方法技术_技高网

基于非HOST主存的ROCE通信与传输方法技术

技术编号:44261041 阅读:9 留言:0更新日期:2025-02-14 22:06
本发明专利技术公开了一种基于非HOST主存的ROCE通信与传输方法,采用一片FPGA作为ROCE网卡,FPGA网卡与CPU之间采用PCIe总线互联,通过FPGA网卡内部的BANK资源外扩4组DDR;同时FPGA网卡内部使用GbE MAC/PHY资源例化4路GbE端口,用于RDMA通信,CPU运行RDMA。该方法相比于传统的设计方法,可以支持多路100GbE数据分发场景,解决了最高带宽上限不足的问题,同时扩展了CPU的DDR空间和内存通道数,构建同时读写的多通道DDR场景,提升了并发执行的效率。

【技术实现步骤摘要】

本专利技术涉及高速数通,具体涉及一种基于非host主存的roce通信与传输方法。


技术介绍

1、roce是在infiniband trade association标准中定义的网络协议,允许通过以太网使用rdma。其中roce v2作为rdma中最具扩展性和性能比的传输协议,正在被广泛应用在各类处理场景中,其利用 kernel bypass 和 zero copy技术提供了低延迟的特性,同时减少了cpu占用,减少了内存带宽瓶颈,提供了很高的带宽利用率。传统的roce实现架构如下图1所示,在传统的roce架构中,cpu下发wqe至roce网卡,网卡接收到控制指令后进行解析传输类型、数据地址、传输长度、访问权限权限信息,并经过地址转换表,获取挂接在cpu侧主存数据,进行单边、双边通信,此种设计架构roce网卡针对host主存进行数据搬移和传输,具有非常高的通用性。

2、但是,目前采取的这些措施至少包含以下三种问题:

3、1)成本高;对于数据接收后进行分发的应用场景,特别是一对多通信,接收的数据不需要被cpu处理,而是需要尽快完成数据分发,最大化利用底层的传输带宽资源,进入cpu后再进行分发,会浪费大量的cpu和pcie带宽;

4、2)效率低下;这是因为考虑到国产化影响,受限roce网卡与cpu之间的pcie通道,如果为gen3.0,按照pcie3.0×16计算,理论带宽最大为128gbps,只能满足1路100gbe的传输带宽需求,远远不能满足多路100gbe的传输需求;

5、3)适应性能差;对于目前国产的cpu,包括ft2000/4、ftd2000/8和ftd3000等,ddr控制器只有2组,无法对内存的通道数进行扩充,导致在执行并发读写操作时,存在单点瓶颈,不能很好地适应并发传输和读写的高性能场景。


技术实现思路

1、针对上述三个问题,本专利技术的目的是提出一种基于非host主存的roce通信与传输方法,通过采用一片fpga作为roce网卡,外扩4组大小为4gb的ddr,克服了传统的roce通信与传输方法中存在的不能很好地适应并发传输和读写的高性能场景,以及fpga网卡内部使用100gbe mac/phy资源例化4路100gbe端口,可以支持多路100gbe数据分发场景,解决了最高带宽上限不足的问题。

2、通过以下技术方案实现的:

3、一种基于非host主存的roce通信与传输方法,采用一片fpga作为roce网卡,fpga网卡与cpu之间采用pcie总线互联,通过fpga网卡内部的bank资源外扩4组ddr;同时fpga网卡内部使用gbe mac/phy资源例化4路gbe端口,用于rdma通信,cpu运行rdma,其中,所述方法的数据通信流程包括如下步骤:s1、请求端软件根据应用程序触发,向sq队列中添加一个wqe任务,然后fpga网卡的请求端对wqe任务进行解析,获得源数据存放的虚拟地址和目的数据存放的虚拟地址、数据长度、密钥和操作码;通过利用操作码,fpga网卡的请求端根据源数据存放的虚拟地址,查询mtt表并进行存储域地址与fpga ddr地址间的转换,得到位于fpga网卡外扩ddr中的数据存放的物理地址;再通过dma操作将待发送的数据复制到fpga网卡内部进行存放,并按照协议对数据进行封装,获得相应的数据包;s2、fpga网卡的请求端将数据包送至gbe mac/phy发送接口后,通过发送接口将数据包发送给fpga网卡的响应端并进行解析,得到应用数据和目的数据存放的虚拟地址、数据长度和密钥,再根据目的数据存放的虚拟地址和数据长度查询mr地址转换表,得到对应的物理地址,然后将应用数据写入该物理地址进行存放,并通过密钥对应用数据进行解密;s3、fpga网卡的响应端接收到fpga网卡的请求端发送的数据包后,回复ack报文给fpga网卡的请求端,fpga网卡的请求端接收到ack报文后,将ack报文送至rdma的报文解析模块进行解析处理并获得解析结果,fpga网卡的请求端基于解析结果识别ack,再添加wqe任务对应的完成标示元素到cq队列中,当请求端软件轮询到完成标示元素后,将获得任务完成信息并告知应用程序本次发送结果。

4、本专利技术针对传统的roce通信与传输方法中存在的局限,提出一种基于非host主存的roce通信与传输方法,可以支持多路100gbe数据分发场景,解决了最高带宽上限不足的问题,扩展了cpu的ddr空间和内存通道数,构建同时读写的多通道ddr场景,提升了并发执行的效率。

5、优选地,步骤s1中,mtt表用于管理rdma传输中内存页的数据结构,提供虚拟地址到物理地址的映射机制。通过查询mtt表可以快速、高效地进行存储域地址与fpga ddr地址间的转换,得到位于fpga网卡外扩ddr中的数据存放的物理地址。

6、优选地,步骤s1中,存储域地址与fpga ddr地址进行转换时,通过cpu在pcie扫描阶段,分配bar空间的方式,完成fpga网卡外扩ddr空间与cpu总线域的地址映射;其中,cpu通过直接访问fpga网卡在存储空间的映射地址,完成对pcie总线空间中fpga网卡外扩ddr的访问控制。通过fpga网卡外扩4组大小为4gb的ddr,扩展了cpu的ddr空间和内存通道数,构建同时读写的多通道ddr场景,提升了并发执行的效率。

7、优选地,存储域地址与fpga ddr地址进行转换时,需要在存储域地址与pcie总线域之间设置host主桥,其中,host主桥用于将cpu总线域的地址空间映射到pcie总线的地址空间,实现cpu与pcie总线之间的通信,同时负责cpu与pcie总线之间的数据传输。通过host主桥完成cpu与pcie总线之间的通信,实现了cpu对pcie总线地址空间的访问。

8、优选地,分配bar空间时,基于cpu的pcie bar大小,通过采用窗口切换机制来实现fpga网卡外扩ddr空间;ddr选用16g时,fpga网卡中采用窗口切换机制,将16gb ddr划分为64个256mb的bar子空间;其中,利用host主桥映射的64位pcie地址,取低34位,其中0~27位用于确定ddr的低位地址,28~33位用于表示当前所访问的子空间。通过窗口切换机制,能够实现cpu访问fpga网卡整个ddr空间。

9、优选地,步骤s2中,mr地址转换表用于在rdma中进行内存管理,记录内存的地址转换关系;fpga网卡的响应端获得目的数据存放的虚拟地址后,利用mr地址转换表获取对应的物理地址。利用mr地址转换表能够准确高效的完成虚拟地址被正确地映射到物理地址,实现了进程隔离和内存保护。

10、本专利技术与现有技术相比具有的有益效果是:

11、本专利技术的技术方案,通过采用一片高性能fpga作为roce网卡,外扩4组大小为4gb的ddr,以及fpga网卡内部使用100gbe mac/phy资源例化4路100gbe端口,能最大化利用底层的传输带宽资源,提升系统吞本文档来自技高网...

【技术保护点】

1.一种基于非HOST主存的ROCE通信与传输方法,其特征在于,采用一片FPGA作为ROCE网卡,FPGA网卡与CPU之间采用PCIe总线互联,通过FPGA网卡内部的BANK资源外扩4组DDR;同时FPGA网卡内部使用GbE MAC/PHY资源例化4路GbE端口,用于RDMA通信,CPU运行RDMA,其中,所述方法的数据通信流程包括如下步骤:

2.根据权利要求1所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,步骤S1中,MTT表用于管理RDMA传输中内存页的数据结构,提供虚拟地址到物理地址的映射机制。

3.根据权利要求1所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,步骤S1中,存储域地址与FPGA DDR地址进行转换时,通过CPU在PCIe扫描阶段,分配BAR空间的方式,完成FPGA网卡外扩DDR空间与CPU总线域的地址映射;其中,CPU通过直接访问FPGA网卡在存储空间的映射地址,完成对PCIe总线空间中FPGA网卡外扩DDR的访问控制。

4.根据权利要求3所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,存储域地址与FPGA DDR地址进行转换时,在存储域地址与PCIe总线域之间设置Host主桥,Host主桥用于将CPU总线域的地址空间映射到PCIe总线的地址空间,实现CPU与PCIe总线之间的通信。

5.根据权利要求3所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,分配BAR空间时,基于CPU的PCIe BAR大小,通过采用窗口切换机制来实现FPGA网卡外扩DDR空间。

6.根据权利要求5所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,DDR选用16G,FPGA网卡中采用窗口切换机制,将16GB DDR划分为64个256MB的BAR子空间;其中,利用Host主桥映射的64位PCIe地址,取低34位,其中0~27位用于确定DDR的低位地址,28~33位用于表示当前所访问的子空间。

7.根据权利要求1所述的一种基于非HOST主存的ROCE通信与传输方法,其特征在于,步骤S2中,MR地址转换表用于在RDMA中进行内存管理,记录内存的地址转换关系;FPGA网卡的响应端获得目的数据存放的虚拟地址后,利用MR地址转换表获取对应的物理地址。

...

【技术特征摘要】

1.一种基于非host主存的roce通信与传输方法,其特征在于,采用一片fpga作为roce网卡,fpga网卡与cpu之间采用pcie总线互联,通过fpga网卡内部的bank资源外扩4组ddr;同时fpga网卡内部使用gbe mac/phy资源例化4路gbe端口,用于rdma通信,cpu运行rdma,其中,所述方法的数据通信流程包括如下步骤:

2.根据权利要求1所述的一种基于非host主存的roce通信与传输方法,其特征在于,步骤s1中,mtt表用于管理rdma传输中内存页的数据结构,提供虚拟地址到物理地址的映射机制。

3.根据权利要求1所述的一种基于非host主存的roce通信与传输方法,其特征在于,步骤s1中,存储域地址与fpga ddr地址进行转换时,通过cpu在pcie扫描阶段,分配bar空间的方式,完成fpga网卡外扩ddr空间与cpu总线域的地址映射;其中,cpu通过直接访问fpga网卡在存储空间的映射地址,完成对pcie总线空间中fpga网卡外扩ddr的访问控制。

4.根据权利要求3所述的一种基于非host主存的roce通信与传输方法,其特征在于,存...

【专利技术属性】
技术研发人员:许光政李宇庭齐永何国强张韬
申请(专利权)人:江苏华创微系统有限公司
类型:发明
国别省市:

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

1