具有RDMA加速功能的PCIe交换芯片及PCIe交换机的制作方法

专利检索2026-01-19  9


本发明涉及具有rdma加速功能的pcie交换芯片及pcie交换机,属于pcie交换芯片、rdma通信软件接口及硬件实现。


背景技术:

1、pcie是一种计算机扩展总线标准,被广泛用于计算机主机连接外围设备。主机端的pcie控制器叫做rc,设备端的pcie控制器叫做ep。每个ep设备都有一个标准的配置空间(configuration space),它是一组规范格式的寄存器,表明了该设备的基本属性等信息,其中的bar寄存器标识了该设备的寄存器、内存等地址空间资源,简称bar空间。pcie物理层建立链接后,rc将设备的这些地址空间映射到主机的地址空间,然后主机的驱动程序便可以访问和操作该设备。在pcie总线拓扑下,每个pcie设备都有唯一的bdf号。

2、pcie物理链路上使用tlp(transaction layer packets)传输请求和数据,tlp有以下4种类型:内存访问tlp用来读写设备的寄存器或内存,io tlp用来访问某些体系架构下的io空间,配置tlp用来访问设备的配置空间寄存器,消息tlp用来实现用户自定义的消息。

3、pcie是点到点连接,当主机的rc控制器数量不够,而需要连接更多的设备时,就需要使用pcie交换芯片。pcie交换芯片通常具有一个上游端口usp,用来连接主机端的rc,多个下游端口dsp,用来连接ep设备。在pcie枚举时,pcie交换芯片内部生成了一个查找表,该表记录了各个端口的总线号以及地址范围等信息。枚举完成后,每个端口进来的tlp,根据其不同类型,查找该表,可以按bdf号或者地址等信息路由至对应端口,从而实现一个rc连接多个ep设备,并且也可以实现各ep设备之间的通信。pcie交换芯片也可以实现ntb(non-transparent bridge)功能,即具有多个usp端口,从而可以连接多台主机,实现主机之间的资源访问。

4、rdma(remote direct memory access),远程内存访问,指一台主机在对应的软件和硬件支持下,可以访问到远程主机内存的技术。

5、rdma的基本操作叫做verbs。关于数据传输有两种基本操作:内存操作memoryverbs和消息操作messaging verbs。内存操作包括远程内存的读和写,即rdma read和rdmawrite,在建立连接及提供适当的访问权限以后,它们可以直接读写远程主机的虚拟内存地址,无需远程主机的参与。消息操作包括消息的收和发,即rdma send和rdma receive,跟内存读写不同,消息操作的发送方不能将数据直接写入接收方的内存,而是放到接收方的网络设备的缓冲队列里,再由网络设备写入主机内存。

6、rdma使用队列管理数据收发。如图1,收发双方注册可用内存区域并且建立连接后,工作队列对wq被创建,其中包括发送队列sq和接收队列rq,一对sq和rq叫做一个队列对qp;同时完成队列cq也被创建。数据发送时,发送方将的软件将要发送数据的描述符,即工作队列实体wqe写入发送队列sq,发送方的网络设备硬件根据wqe的描述,将数据发送到接收方,发送完成后,再向完成队列cq里面写入完成描述符即cqe。软件轮询cqe便可得知数据发送完成。另外,支持rdma的网络设备,可以存储虚拟地址-物理地址的转换表,因此用户只需传递虚拟地址,硬件设备自动查找转换表使用物理地址传输数据。综上,软件只要将描述数据的wqe写入发送队列,具有rdma功能的硬件设备(如图1中的rdma硬件)完成全部数据发送过程并通知完成状况,因而数据传输效率极高。

7、rdma最初由mellanox公司提出,基于其专有的infiniband网络。随后扩展至基于以太网,但需要对应网卡硬件的升级。其中的roce(rdma over converged ethernet)是一种rdma基于以太网数据链路层的实现,而iwarp(internet wide area rdma protocol)则是另一种rdma基于tcp传输层协议的实现。

8、传统的基于tcp/ip的远程访问,应用程序运行在操作系统的用户态,而tcp/ip协议栈及网络驱动程序位于操作系统内核当中,在此传统架构下,网络数据收发要经过从用户态到内核态以及硬件的多次拷贝,频繁的硬件中断响应及其导致的多次软件上下文切换,并进一步造成系统缓存命中率降低从而影响性能,而且内核复杂的协议栈软件也需要消耗一定的处理器计算资源。

9、rdma技术的推出,解决了以上问题,它允许应用程序直接从用户空间向硬件提交对远程主机的内存访问,消除了额外的数据拷贝;不需要经过操作系统内核,从而减少了上下文切换;将数据传输操作直接交给硬件完成,不需要cpu参与,从而大幅降低cpu负载率。因其性能优越,目前大量的网络应用都可以使用rdma通信,基于rdma技术已经形成了广泛的应用生态,事实上成为了被大量应用所支持的标准接口。

10、rdma技术需要使用具有对应功能的硬件设备,例如infiniband或者roce网卡。但在某些情况下,例如连接距离较近的同一机柜内的一组服务器,使用pcie交换芯片即可有效连接。从硬件传输协议的角度上看,rdma网络设备也是服务器主机上的pcie设备,即从pcie接口转成网络接口,多了额外的硬件的延时以及成本,因此如果pcie交换芯片能够直接连接的情况下,效率是最高的。

11、由于服务器上运行的仍是基于rdma的软件生态,因此可以将rdma的verbs接口(verbs接口是一种底层的编程接口)移植到pcie链路上,既能兼容rdma软件,又无需购买昂贵的rdma硬件设备。这样的尝试例如:一个ieee提议《using pcie-based rdma toaccelerate rack-scale communications in data centers》,以及奥斯陆大学的《infiniband rdma over pciexpress networks》,这个实验将rdma软件接口移植到某pcientb互联的网络上。

12、理论上说,经过软件各层次的接口调用和封装,是可以在pcie互联的网络上实现rdam接口的,上述实际上证明也是如此。但这样的直接软件封装,虽能达到功能上的目标,性能上却非最优。核心问题在于pcie交换芯片内置的常规dma单元跟rdma场景需求的差距。首先,rdma设备将sq里一定格式的数据传输请求wqe解析并发送数据完成后,在cq里放置完成标识cqe;而一般pcie设备内置的dma单元,都是常规的控制模式,例如配置源地址、目的地址和传输长度等基本命令,数据拷贝完成后,一般会发送中断信号,处理器的中断相应程序查明中断原因,做进一步的处理操作。但rdma的qp当中的wqe,pcie内置的传统dma单元无法识别,需要软件在每次传输前进行转换翻译;同时,传统dma传输完成后,也需要在中断响应程序里实现完成标识cqe的生成,这些软件操作,降低了rdam的传输效率。另外,传统dma直接使用物理地址工作,而rdma应用直接传递数据的虚拟地址,因此需要软件转换成物理地址后交给dma,也是影响软件性能的一个因素。再者,rdma访问远端内存时,远端内存的访问权限也需要进行控制,否则会引起安全问题,常规的pcie内置dma单元则不具备此功能。

13、基于此,提出本发明。


技术实现思路

1、rdma机制有很高的传输效率。而在满足传输距离和节点数目的情况下,使用pcie交换芯片直接互联比转换成其他网络协议更加直接和高效。使用软件封装的办法也可以将rdma软件接口运行在pcie链路上,但某些方面的效率受到传统dma功能硬件的影响。

2、本发明在pcie交换芯片开发过程中,在对以上应用场景从包括软件到硬件的全流程分析中,得知传统dma的工作模式可以改进,使得可以更好地支持rdma在pcie交换芯片上的运行。

3、在pcie交换网络连接的主机上运行rdma应用,虽然使用软件进行封装转换可以达到目的,但由于传统dma单元功能的限制,系统整体工作效率会受到影响。本发明提出了一种新型的基于pcie的dma单元实现方式,使pcie交换芯片能够更好地支持rdma应用,减少软件处理的工作量,进而提高数据传输效率。具体技术方案如下:

4、具有rdma加速功能的pcie交换芯片,包括:

5、具有内部集成的pcie端点设备,用来实现控制命令的交互;

6、虚拟-物理地址转换表,在驱动程序初始化时,在主机内存建立虚拟-物理地址转换表,所述虚拟-物理地址转换表记录rdma读写数据所用的内存区域的虚拟地址和物理地址的转换关系;

7、内存权限表,rdma收发双方建立连接注册内存时,在主机内存创建内存权限表,所述内存权限表记录注册的内存的访问权限;

8、dma单元,pcie交换芯片内部的dma单元解析rdma的qp中wqe结构,生成对应的内存访问tlp,完成从源端到目的端的数据拷贝以后,生成cqe放到收发双方的cq队列当中,从而实现完整的数据传输过程。

9、更进一步的改进,所述具有内部集成的pcie端点设备的交互包括虚拟-物理地址转换表的编程、内存权限表的编程、qp及cq信息管理、dma单元传输控制。

10、更进一步的改进,所述pcie交换芯片内部的一块内存缓存所述虚拟-物理地址转换表,在系统初始化后,由dma单元通过发出内存访问tlp请求来将外部主机的转换表缓存到pcie交换芯片内部。

11、更进一步的改进,所述pcie交换芯片内部的一块内存缓存所述内存权限表,在系统初始化后,由dma单元通过发出内存访问tlp请求来将外部主机的内存权限表缓存到pcie交换芯片内部。

12、更进一步的改进,所述dma单元完成虚拟地址到物理地址的转换,对远端内存数据读写时,通过验证密钥进行权限控制。

13、更进一步的改进,所述dma单元在驱动程序初始化后,将位于主机内存中的qp和qpc、cq和cqc读入内部的内存单元,并且,创建虚拟-物理地址转换表、内存权限表,dma单元根据qp及qpc、cq及cqc、虚拟-物理地址转换表、内存权限表自动完成数据拷贝,并且生成拷贝完成信息。

14、更进一步的改进,pcie交换机,包括最少一个所述的具有rdma加速功能的pcie交换芯片。

15、本发明的有益效果:

16、1、本发明能够直接解析rdma的qp工作队列对当中的wqe,传输完成后在cq队列生成cqe;能够存储主机对应内存区域的虚拟-物理地址转换表,应用程序传入虚拟地址即可,dma单元主动查表转换成物理地址;根据建立连接时生成的密钥,对本地及远端内存的访问进行保护。

17、2、本发明是在普通pcie交换芯片基础上,增加以具有上述功能的dma单元,从而使pcie交换芯片更好地支持rdma功能。

18、3、在pcie可以在满足的距离和节点数量范围内,使用本发明改进的pcie交换芯片互联,由于专用dma单元的支持,可以减少软件封装和转换的工作量,更加直接有效地支持rdma应用生态;由于不需要额外的rdma网络设备,减少了传输延迟及传输速率的限制,可以达到最大的pcie传输速率,有望优于pcie接口的rdma网络设备,同时也节省了网络设备的购买费用。


技术特征:

1.具有rdma加速功能的pcie交换芯片,其特征在于包括:

2.根据权利要求1所述的具有rdma加速功能的pcie交换芯片,其特征在于:所述具有内部集成的pcie端点设备的交互包括虚拟-物理地址转换表的编程、内存权限表的编程、qp及cq信息管理、dma单元传输控制。

3.根据权利要求1所述的具有rdma加速功能的pcie交换芯片,其特征在于:所述pcie交换芯片内部的一块内存缓存所述虚拟-物理地址转换表,在系统初始化后,由dma单元通过发出内存访问tlp请求来将外部主机的转换表缓存到pcie交换芯片内部。

4.根据权利要求1所述的具有rdma加速功能的pcie交换芯片,其特征在于:所述pcie交换芯片内部的一块内存缓存所述内存权限表,在系统初始化后,由dma单元通过发出内存访问tlp请求来将外部主机的内存权限表缓存到pcie交换芯片内部。

5.根据权利要求1所述的具有rdma加速功能的pcie交换芯片,其特征在于:所述dma单元完成虚拟地址到物理地址的转换,对远端内存数据读写时,通过验证密钥进行权限控制。

6.根据权利要求5所述的具有rdma加速功能的pcie交换芯片,其特征在于:所述dma单元在驱动程序初始化后,将位于主机内存中的qp和qpc、cq和cqc读入内部的内存单元,并且,创建虚拟-物理地址转换表、内存权限表,dma单元根据qp及qpc、cq及cqc、虚拟-物理地址转换表、内存权限表自动完成数据拷贝,并且生成拷贝完成信息。

7.pcie交换机,其特征在于:包括最少一个如权利要求1-6中任意一项所述的具有rdma加速功能的pcie交换芯片。


技术总结
本发明涉及具有RDMA加速功能的PCIe交换芯片及PCIe交换机,包括具有内部集成的PCIe端点设备、虚拟‑物理地址转换表、内存权限表和DMA单元,虚拟‑物理地址转换表记录RDMA读写数据所用的内存区域的虚拟地址和物理地址的转换关系,内存权限表记录注册的内存的访问权限,PCIe交换芯片内部的DMA单元解析RDMA的QP中WQE结构,生成对应的内存访问TLP,完成从源端到目的端的数据拷贝以后,生成CQE放到收发双方的CQ队列当中,从而实现完整的数据传输过程。本发明能够直接解析RDMA的QP工作队列对当中的WQE,可以减少软件封装和转换的工作量,更加直接有效地支持RDMA应用生态,减少了传输延迟及传输速率的限制,可以达到最大的PCIe传输速率,有望优于PCIe接口的RDMA网络设备。

技术研发人员:张洪波
受保护的技术使用者:北京数渡信息科技有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1160001.html

最新回复(0)