使用DPA的可编程的用户定义的外围总线设备实现的制作方法

文档序号:37927025发布日期:2024-05-11 00:06阅读:9来源:国知局
使用DPA的可编程的用户定义的外围总线设备实现的制作方法

本发明总体上涉及计算和数据通信系统,并且更具体地,涉及用于外围总线设备的用户定义的实现方式的方法和系统。


背景技术:

1、计算系统通常使用用于在处理器、存储器和外围设备之间进行通信的外围总线。外围总线的示例包括外围组件互连快速(pcie)、计算快速链路(cxl)总线、nvlink和nvlink-c2c。外围设备可包括例如网络适配器、存储设备、图形处理单元(gpu)等。


技术实现思路

1、本文描述的实施例提供一种网络适配器,该网络适配器包括网络接口、总线接口、硬件实现的数据路径和可编程的数据平面加速器(dpa)。网络接口用于与网络进行通信。总线接口用于通过外围总线与外部设备进行通信。硬件实现的数据路径包括用于处理在网络和外部设备之间交换的数据单元的多个分组处理引擎。dpa用于在外围总线上暴露用户定义的外围总线设备(udpd),运行实现udpd的用户可编程逻辑,以及通过重新使用数据路径中的多个分组处理引擎中的一个或更多个分组处理引擎来处理从外部设备发出到udpd的事务。

2、在各个实施例中,udpd是网络适配器、存储设备、图形处理单元(gpu)和现场可编程门阵列(fpga)之一。

3、在实施例中,在处理数据单元时,数据路径用于通过外围总线与运行在外部设备上的网络适配器驱动程序进行通信,并且在处理向udpd发出的事务时,dpa通过外围总线与运行在外部设备上的udpd驱动程序进行通信。在另一个实施例中,在处理数据单元时,数据路径中的分组处理引擎独立于dpa在管线中彼此触发,并且在处理发出到udpd的事务时,多个分组处理引擎中的一个或更多个分组处理引擎由dpa调用。

4、在又一实施例中,数据路径包括硬件实现的传输引擎,该传输引擎用于对传入的通信数据单元执行传输协议校验和/或卸载以及用于为传入的通信数据单元选择接收队列,并且dpa用于重新使用传输引擎以对与udpd相关联的传入的udpd数据单元执行传输协议校验和/或卸载,以及用于为传入的udpd数据单元选择接收队列。

5、在又一实施例中,数据路径包括硬件实现的地址转换引擎,该地址转换引擎用于在第一地址空间中的虚拟地址与第二地址空间中的分配给通信数据单元的地址之间进行转换,以及dpa用于重新使用地址转换引擎以在第三地址空间中的虚拟地址与第四地址空间中的分配给与udpd相关联的udpd数据单元的地址之间进行转换。

6、在公开的实施例中,数据路径包括至少一个硬件实现的直接存储器访问(dma)引擎,该dma引擎用于将来自至少一些通信数据单元的数据分散到存储器,以及传输针对通信数据单元的完成通知,并且dpa用于重新使用dma引擎以将来自与udpd相关联的udpd数据单元的数据分散到存储器,以及传输针对udpd数据单元的完成通知。

7、在示例实施例中,数据路径包括硬件实现的消息告知中断(message-signaled-interrupt)引擎,该消息告知中断引擎用于在完成对至少一些数据单元的处理时采用中断来触发外部设备,并且dpa用于重新使用消息告知中断引擎以在完成对与udpd关联的udpd数据单元的处理时用中断来触发外部设备。

8、在实施例中,数据路径包括中断调整引擎,该中断调整引擎用于扼制(throttle)指示通信数据单元的完成的中断的速率,并且dpa用于重新使用中断调整引擎以扼制指示udpd数据单元的完成的中断的速率。在另一实施例中,数据路径包括门铃聚合引擎,该门铃聚合引擎用于合并(coalesce)与通信数据单元相关的门铃,并且dpa用于重新使用门铃聚合引擎以合并关于与udpd相关联的udpd数据单元的门铃。

9、根据本文描述的实施例,还提供了一种网络适配器中的方法。该方法包括与网络进行通信,以及通过外围总线与外部设备进行通信。使用包括多个分组处理引擎的硬件实现的数据路径,处理在网络与外部设备之间交换的数据单元。使用可编程的数据平面加速器(dpa),在外围总线上暴露用户定义的外围总线设备(udpd),运行实现udpd的用户可编程逻辑,以及通过重新使用数据路径中的多个分组处理引擎中的一个或更多个分组处理引擎来处理从外部设备发出到udpd的事务。

10、根据本文描述的实施例,还提供了一种网络适配器,该网络适配器包括网络接口、总线接口、硬件实现的数据路径和可编程的数据平面加速器(dpa)。网络接口用于与网络进行通信。总线接口用于通过外围总线与外部设备进行通信。硬件实现的数据路径包括多个分组处理引擎,该多个分组处理引擎用于处理在网络和外部设备之间交换的数据单元。dpa用于运行实现用户定义的外围总线设备(udpd)的用户可编程逻辑,包括在实现udpd时重新使用数据路径中的多个分组处理引擎中的一个或更多个分组处理引擎。



技术特征:

1.一种网络适配器,包括:

2.根据权利要求1所述的网络适配器,其中所述udpd为以下之一:

3.根据权利要求1所述的网络适配器,其中:

4.根据权利要求1所述的网络适配器,其中:

5.根据权利要求1所述的网络适配器,其中:

6.根据权利要求1所述的网络适配器,其中:

7.根据权利要求1所述的网络适配器,其中:

8.根据权利要求1所述的网络适配器,其中:

9.根据权利要求8所述的网络适配器,其中:

10.根据权利要求1所述的网络适配器,其中:

11.一种网络适配器中的方法,所述方法包括:

12.根据权利要求11所述的方法,其中所述udpd是以下中的一个:

13.根据权利要求11所述的方法,其中:

14.根据权利要求11所述的方法,其中:

15.根据权利要求11所述的方法,其中:

16.根据权利要求11所述的方法,其中:

17.根据权利要求11所述的方法,其中:

18.根据权利要求11所述的方法,其中:

19.根据权利要求18所述的方法,其中:

20.根据权利要求11所述的方法,其中:

21.一种网络适配器,包括:


技术总结
本发明公开了使用DPA的可编程的用户定义的外围总线设备实现,网络适配器包括网络接口、总线接口、硬件实现的数据路径和可编程的数据平面加速器(DPA)。网络接口用于与网络进行通信。总线接口用于通过外围总线与外部设备进行通信。硬件实现的数据路径包括多个分组处理引擎,该分组处理引擎用于处理在网络与外部设备之间交换的数据单元。DPA用于在外围总线上暴露用户定义的外围总线设备(UDPD),运行实现UDPD的用户可编程逻辑,以及通过重新使用数据路径中的一个或更多个分组处理引擎来处理从外部设备发出到UDPD的事务。

技术研发人员:D·马尔科维奇,E·巴尔-爱伦,R·A·科伦,L·丽丝,O·杜尔,S·舒勒
受保护的技术使用者:迈络思科技有限公司
技术研发日:
技术公布日:2024/5/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1