主机计算机和FPGA之间的数据通信制造技术

技术编号:34877508 阅读:14 留言:0更新日期:2022-09-10 13:33
提供有用于主机计算机的应用和FPGA的资源的分区之间的数据通信的机制。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。该方法由主机计算机执行。该方法包括通过设置在主机计算机和FPGA之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。布在应用之间。布在应用之间。

【技术实现步骤摘要】
【国外来华专利技术】主机计算机和FPGA之间的数据通信


[0001]本文中提出的实施例涉及用于主机计算机的应用和现场可编程门阵列(FPGA)的资源的分区(partition of resource)之间的数据通信的方法、主机计算机、FPGA、计算机程序和计算机程序产品。

技术介绍

[0002]一般来说,FPGA是一种集成电路,它设计成在制造FPGA后被配置用于由主机计算机所运行的一个或多个应用。一般使用硬件描述语言(HDL)来指定FPGA配置。
[0003]FPGA包括可编程逻辑块的阵列以及允许将这些块接线在一起的可重新配置的互连的层次结构。逻辑块可被配置成执行复杂的组合功能,或者仅仅实现诸如逻辑“与”门和逻辑“异或”门的简单逻辑门的功能性。逻辑块可进一步包括存储器元件,它们可以是简单的触发器或更完整的存储器块。FPGA可被重新编程为实现不同的逻辑功能,从而允许如在计算机软件中所执行的灵活的可重新配置计算。
[0004]将一个大型FPGA专用于单个应用可能导致FPGA资源的利用率较低。因此,应该以无缝方式支持FPGA上的多租户(multi

tenancy),使得例如,需要(如由FPGA提供的)硬件加速的主机计算机的多个应用能够共享FPGA的内部资源、任何芯片外动态随机存取存储器(DRAM)和主机计算机或计算机与FPGA之间的接口的带宽。此类接口的一个示例是外围组件互连快速(PCIe)接口。
[0005]FPGA的内部资源可通过在多个分区之间静态划分的资源而在两个或更多个应用之间共享,所述分区中的每个分区可使用部分重新配置技术用位流动态地重新配置。当将FPGA分区为多个区域(其中每个区域定义它自己的资源的分区并在多个应用之间共享时),PCIe带宽和芯片外DRAM也应该在所述多个应用之间共享。传统的装置插件不能以透明的方式支持此类功能性。这使得以高效的方式共享FPGA的资源变得麻烦。
[0006]因此,仍然需要由主机计算机的应用利用的FPGA的资源的改进的共享。

技术实现思路

[0007]本文中的实施例的一目的是在主机计算机的应用和FPGA的资源的分区之间提供高效的数据通信,使得能够实现FPGA的资源的高效共享。
[0008]根据第一方面,提出有一种用于主机计算机的应用和FPGA的资源的分区之间的数据通信的方法。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。该方法由主机计算机执行。该方法包括通过设置在主机计算机和FPGA之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己的配置的份额(share)。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0009]根据第二方面,提出有一种主机计算机,它用于主机计算机的应用和FPGA的资源的分区之间的数据通信。每个分区被配置成服务于这些应用中的相应一个应用。主机计算
机被配置成运行应用。主机计算机包括处理电路。处理电路被配置成致使主机计算机通过设置在主机计算机和FPGA之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0010]根据第三方面,提出有一种主机计算机,它用于主机计算机的应用和FPGA的资源的分区之间的数据通信。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。主机计算机包括通信模块,通信模块被配置成通过设置在主机计算机和FPGA之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0011]根据第四方面,提出有一种用于主机计算机的应用和FPGA的资源的分区之间的数据通信的计算机程序。该计算机程序包括计算机程序代码,所述计算机程序代码在主机计算机的处理电路上运行时致使主机计算机执行根据第一方面的方法。
[0012]根据第五方面,提出有一种用于FPGA的资源的分区和主机计算机的应用之间的数据通信的方法。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。该方法由FPGA执行。该方法包括通过设置在FPGA和主机计算机之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0013]根据第六方面,提出有一种FPGA,它用于FPGA的资源的分区和主机计算机的应用之间的数据通信。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。该FPGA包括处理电路。处理电路被配置成致使FPGA通过设置在FPGA和主机计算机之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0014]根据第七方面,提出有一种FPGA,它用于FPGA的资源的分区和主机计算机的应用之间的数据通信。每个分区被配置成服务于这些应用中的相应一个应用。主机计算机被配置成运行应用。该FPGA包括通信模块,通信模块被配置成通过设置在FPGA和主机计算机之间的PCIe接口在应用和资源的分区之间传递数据。每个应用被分配PCIe接口的带宽资源的它自己配置的份额。在传递数据时,根据带宽资源的所有配置的份额将PCIe接口的所有带宽资源分布在应用之间。
[0015]根据第八方面,提出有一种用于FPGA的资源的分区和主机计算机的应用之间的数据通信的计算机程序,该计算机程序包括计算机程序代码,所述计算机程序代码在FPGA的处理电路上运行时致使FPGA执行根据第五方面的方法。
[0016]根据第九方面,提出有一种计算机程序产品,它包括根据第四方面和第八方面中的至少一个方面的计算机程序以及在其上存储该计算机程序的计算机可读存储介质。计算机可读存储介质可以是非暂时性计算机可读存储介质。
[0017]有利地,这些方面能够实现主机计算机的应用和FPGA的资源的分区之间的高效数据通信。
[0018]有利地,这些方面提供了FPGA的资源的高效共享。
[0019]所附实施例的其它目的、特征和优点将从以下详细公开、从随附从属权利要求以及从附图中显而易见。
[0020]一般来说,除非在本文中另外明确地定义,否则权利要求中所使用的所有术语要根据它们在
中的普通含义进行解释。除非另外明确声明,否则对“一(a/an)/该元件、设备、组件、部件、模块、步骤等”的所有提及要开放地解释为指的是该元件、设备、组件、部件、模块、步骤等的至少一个实例。除非明确声明,否则本文中所公开的任何方法的步骤不必按本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于主机计算机(200)的应用(240a:240N)和FPGA(300)的资源的分区(340a:340N)之间的数据通信的方法,每个分区(340a:340N)被配置成服务于所述应用(240a:240N)中的相应一个应用,并且所述主机计算机(200)被配置成运行所述应用(240a:240N),所述方法由所述主机计算机(200)执行,所述方法包括:通过设置在所述主机计算机(200)和所述FPGA(300)之间的PCIe接口(400)在所述应用(240a:240N)和资源的所述分区(340a:340N)之间传递(S104)数据,其中,每个应用被分配所述PCIe接口(400)的带宽资源的它自己配置的份额,并且在传递所述数据时,根据带宽资源的所有配置的份额将所述PCIe接口(400)的所有带宽资源分布在所述应用(240a:240N)之间。2.如权利要求1所述的方法,进一步包括:在传递所述数据之前,根据带宽资源的所述配置的份额将所述PCIe接口(400)的所述带宽资源分配(S102)给所述应用(240a:240N)。3.如权利要求1或2所述的方法,其中,按照每个数据传输周期,将所述数据从所述主机计算机(200)传递到所述FPGA(300)或从所述FPGA(300)传递到所述主机计算机(200)。4.如权利要求3所述的方法,其中,按照每个数据传输周期,传递一个固定大小的PCIe数据事务。5.如权利要求3或4所述的方法,其中,按照数据传输周期,所述PCIe接口(400)的所有带宽资源共同定义所述固定大小的PCIe数据事务,并且其中,由所述主机计算机(200)将带宽资源的每个配置的份额转译为所述固定大小的PCIe数据事务内的读/写偏移。6.如权利要求5所述的方法,其中,将所述读/写偏移从所述主机计算机(200)传递到所述FPGA(300)。7.如权利要求4至6中任一权利要求所述的方法,其中,在所述主机计算机(200)和所述FPGA(300)之间传递所述数据包括按照每个数据传输周期将一个固定大小的PCIe数据事务转换为至少两个直接存储器访问请求。8.如权利要求7所述的方法,其中,所述PCIe接口(400)由直接存储器访问通道组成,并且其中,存在至少与存在直接存储器访问通道那么多的直接存储器访问请求。9.如权利要求8所述的方法,其中,跨越所有直接存储器访问通道并行实例化所述至少两个直接存储器访问请求,并且其中,根据带宽资源的所述配置的份额将所述数据分布在所述直接存储器访问通道之中。10.如权利要求1至9中任一权利要求所述的方法,其中,所述PCIe接口(400)的所述带宽资源以每个数据传输周期32字节为单位给出,并且其中,所述PCIe接口(400)的带宽资源的每个配置的份额作为32字节的倍数给出。11.一种用于FPGA(300)的资源的分区(340a:340N)和主机计算机(200)的应用(240a:240N)之间的数据通信的方法,每个分区(340a:340N)被配置成服务于所述应用(240a:240N)中的相应一个应用,并且所述主机计算机(200)被配置成运行所述应用(240a:240N),所述方法由所述FPGA(300)执行,所述方法包括:通过设置在所述FPGA(300)和所述主机计算机(200)之间的PCIe接口(400)在所述应用(240a:240N)和资源的所述分区(340a:340N)之间传递(S204)数据,其中,每个应用被分配所述PCIe接口(400)的带宽资源的它自己配置的份额,并且在传递所述数据时,根据带宽资
源的所有配置的份额将所述PCIe接口(400)的所有带宽资源分布在所述应用(240a:240N)之间。12.如权利要求11所述的方法,其中,按照每个数据传输周期,将所述数据从所述主机计算机(200)传递到所述FPGA(300)或从所述FPGA(300)传递到所述主机计算机(200)。13.如权利要求12所述的方法,其中,按照每个数据传输周期,传递一个固定大小的PCIe数据事务。14.如权利要求12或13所述的方法,其中,按照每个数据传输周期,所述PCIe接口(400)的所有带宽资源共同定义所述固定大小的PCIe数据事务,并且其中,带宽资源的每个配置的份额对应于所述固定大小的PCIe数据事务内的读/写偏移。15.如权利要求14所述的方法,其中,将所述读/写偏移从所述主机计算机(200)传递到所述FPGA(300),并通过所述FPGA(300)写入在寄存器堆中。16.如权利要求15所述的方法,其中,对于从所述主机计算机(200)传递到所述FPGA(300)的数据,根据所述寄存器堆中的所述写偏移将所述数据分发到所述分区(340a:340N)。17.如权利要求11至16中任一权利要求所述的方法,其中,所述FPGA(300)包括双缓冲区,并且其中,在双缓冲区中将所述数据重新排序。18.如权利要求14或16结合权利要求17所述的方法,其中,对于从所述主机计算机(200)传递到所述FPGA(300)的数据,在分发到所述分区(340a:340N)之前,根据所述寄存器堆中的所述写偏移将所述数据重新排序。19.如权利要求14或16结合权利要求17所述的方法,其中,对于从所述FPGA(300)传递到所述主机计算机(200)的数据,在从所述FPGA(300)传递到所述主机计算机(200)之前,根据所述寄存器堆中的所述读偏移将所述数据重新排序。20.如权利要求11至19中任一权利要求所述的方法,其中,所述PCIe接口(400)的所述带宽资源以每个数据传输周期32字节为单位给出,并且其中,所述PCIe接口(400)的带宽资源的每个配置的份额作为32字节的倍数给出。21.如权利要求11所述的方法,进一步包括,对于从所述FPGA(300)传递到所述主机计算机(200)的数据:在传递所述数据之前,接收(S202)根据带宽资源的所述配置的份额将所述PCIe接口(400)的所述带宽资源分配给所述应用(240a:240N)的信息。22.一种主机计算机(200),它用于所述主机计算机(200)的应用(240a:240N)和FPGA(300)的资源的分区(340a:340...

【专利技术属性】
技术研发人员:A
申请(专利权)人:瑞典爱立信有限公司
类型:发明
国别省市:

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

1