用于可配置硬件加速器的方法和装置制造方法及图纸

技术编号:38023819 阅读:9 留言:0更新日期:2023-06-30 10:50
提供了用于使用可配置硬件加速器的进程加速器(PA)的方法和装置。PA可以包括多个处理元件(PE)。PA的PE可用于加速进程和/或一个或多个线程。PE可以包括PE本地存储器,由于存储器与PE的物理距离非常接近,因此可以降低能耗。多个PE可以以菊花链形式连接,也可以使用DMA模式将PE的结果直接写入另一PE的PE本地存储器中以进行进一步处理。储器中以进行进一步处理。储器中以进行进一步处理。

【技术实现步骤摘要】
【国外来华专利技术】用于可配置硬件加速器的方法和装置
[0001]交叉申请
[0002]本申请要求2020年9月25日递交的专利技术名称为“用于可配置硬件加速器的方法和装置”的第17/032,103号的美国非临时专利申请的在先申请优先权。


[0003]本专利技术属于进程加速器领域。

技术介绍

[0004]进程加速器用于缩短开发进程所需的时间。通过使用专用的可重新配置硬件而不是通用处理器来执行进程,从而缩短时间。对于本领域技术人员来说,使用专用处理器执行进程被称为进程加速(process acceleration)。
[0005]然而,由于用于加速进程的可重新配置硬件的使用欠佳,因此导致当前的进程加速器功耗高,性能低。
[0006]可重新配置硬件通常被归类为具有粗粒度(coarse grain)可重新配置架构或细粒度(fine grain)可重新配置架构。粗粒度可重新配置架构的元件可以包括加法器、乘法器、算术逻辑单元(arithmetic logic unit,ALU)和专用处理器等电路,这些电路可以直接映射到正在加速的进程。相反,细粒度可重新配置架构可以包括级别较低的元件,这些元件可以组合在一起,以形成加速进程所需的级别较高的元件。因此,由于路由资源时的低效率和与将级别较低的元件组合在一起相关联的配置开销,细粒度可重新配置架构可能比粗粒度可重新配置架构性能更低,并消耗更多的能量。因为相对于粗粒度可重新配置架构的已针对速度和能效进行了优化的高级元件,对级别较低的元件进行组合通常会产生次优的更高级元件,所以细粒度可重新配置架构也可能性能较低且功耗较高。
[0007]需要一种比现有技术设备更有效且功耗更少的进程加速器。
[0008]提供前述
技术介绍
信息是为了说明申请人认为可能与本专利技术相关的信息。并不旨在承认也不应解释为前述任何信息构成与本专利技术相对的现有技术。

技术实现思路

[0009]本专利技术的一个方面提供了一种可配置硬件加速器(configurable hardware accelerator,CHA)。该CHA可以包括可配置的处理实体,例如处理元件(processing element,PE)。PE可以包括CHA引擎、M个PE本地存储器组(local memory bank)和控制块。CHA引擎可以包括K个处理器,并且K个处理器中的每一个可以包括M个可配置核心,其中M个可配置核心中的每一个被配置在硬件中,用于执行被硬件加速的进程的线程。M个可配置核心中的每一个可以与M个PE本地存储器组中的一个相关联。控制块可用于控制M个可配置核心中的每一个对其相关联的PE本地存储器组的访问。
[0010]在处理元件的任何上述实施例中,M个可配置核心中的每一个可以被配置在硬件中,用于通过执行PE程序来执行进程的线程。PE程序可以配置M个可配置核心中的每一个内
的硬件元件。
[0011]在处理元件的任何上述实施例中,M个PE本地存储器组的数量可以等于M个可配置核心支持的并行线程的数量。
[0012]在处理元件的任何上述实施例中,线程可以包括M个可配置核心执行的指令,也可以包括M个可配置核心处理的数据。
[0013]在处理元件的任何上述实施例中,控制块可以通过生成地址来控制对M个可配置核心的每一个的访问,这些地址用于寻址存储在可配置核心的相应PE本地存储器组中的配置指令和数据。
[0014]在处理元件的任何上述实施例中,M个可配置核心处理的数据可以包括与M个可配置核心执行的并行线程数对应的N个数据包,或与M个可配置核心执行的并行线程数对应的N个结果。
[0015]在处理元件的任何上述实施例中,控制块可以通过生成地址来控制对可配置核心的每一个的访问,这些地址由可配置核心用于将可配置核心的结果写入可配置核心的相应PE本地存储器组。
[0016]在处理元件的任何上述实施例中,一个或多个处理器以菊花链(daisy

chain)形式连接。菊花链通过将第一处理器的输出流连接到第二相邻处理器的输入流而形成。
[0017]本专利技术的另一方面提供了一种可配置硬件加速器(configurable hardware accelerator,CHA)。CHA可以由多个处理元件(processing element,PE)和非瞬时性存储器组成。非瞬时性存储器可用于存储PE虚拟组功能代码(virtual group function code,VGFC)表。PE VGFC表可用于定义一个或多个PE虚拟组(PE virtual group,PEVG),每个PEVG可以被配置在硬件中用于执行进程。
[0018]在CHA的任何上述实施例中,CHA还可以包括系统互连(system interconnect,SI)。存储在CHA的非瞬时性存储器中的PE VGFC表可以包括一个或多个指针。每个指针可以寻址一个PE程序,该指针寻址的PE程序可以用于配置SI,使得每个PE可以与其他PE通信,也可以与非瞬时性存储器通信。此外,每个PE还可以包括M个核心和M个PE本地存储器组。这些核心中的每一个可以与本地存储器组中的一个关联。
[0019]在CHA的任何上述实施例中,由多个PE执行的进程可以包括执行进程或执行进程的线程。
[0020]在CHA的任何上述实施例中,PE VGFC表可以用于配置每个PE,使得每个配置的PE可以与同一PEVG中包括的其他PE通信。
[0021]在CHA的任何上述实施例中,VGFC表可以包括一个或多个PE使能字段,PE使能字段可以用于选择要包括在PEVG中的一个或多个PE。
[0022]在CHA的任何上述实施例中,多个PE可以以菊花链形式连接,以处理同一进程的一个或多个线程。
[0023]在CHA的任何上述实施例中,在以菊花链形式连接的PE中,第一PE的输出流可以连接到第二相邻PE的输入流。
[0024]在CHA的任何上述实施例中,多个PE可以使用直接存储器访问(direct memory access,DMA)。
[0025]在CHA的任何上述实施例中,由使用DMA的第一PE生成的结果可以直接写入使用
DMA的第二PE的本地共享数据/指令存储器(shared data/instruction memory,SDIM)中。
[0026]在CHA的任何上述实施例中,单个集群PEVG可以由该单个集群的多个PE和同一单个集群中包括的一个或多个其他PE组成。
[0027]在CHA的任何上述实施例中,单个集群可以包括一个或多个PEVG。
[0028]在CHA的任何上述实施例中,PEVG的多个集群可以由第一集群的多个PE和第二集群的一个或多个其他PE组成。第一集群和第二集群是不同的集群。
[0029]本专利技术的另一方面提供了一种方法,包括由处理元件(processing element,PE)执行的处理和该PE配置第二PE。当虚拟组功能代码(virtual group function本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种可配置硬件加速器(CHA)中的处理元件(PE),所述PE包括:CHA引擎,包括用于执行进程的K个处理器,每个处理器包括M个可配置核心,所述M个可配置核心中的每一个被配置在硬件中,以执行所述进程的线程;M个PE本地存储器组,所述M个核心中的每一个与M个PE本地存储器组中的一个相关联;以及控制块,用于控制所述M个可配置核心中的每一个对其所述M个PE本地存储器组中的相应一个的访问。2.根据权利要求1所述的PE,其中,所述M个可配置核心中的每一个被配置在硬件中,用于通过执行PE程序来执行进程的线程,所述PE程序配置所述M个可配置核心中的每一个内的硬件元件。3.根据权利要求1或2所述的PE,其中,所述M个PE本地存储器组的数量等于所述M个可配置核心支持的并行线程的数量。4.根据权利要求1至3中任一项所述的PE,其中,所述线程包括所述M个可配置核心执行的指令和所述M个可配置核心处理的数据。5.根据权利要求1至4中任一项所述的PE,其中,所述控制块通过生成地址来控制对所述M个可配置核心中的每一个的访问,所述地址用于:寻址配置指令;以及寻址数据;其中,所述配置指令和所述数据存储在所述M个可配置核心的所述M个PE本地存储器组中的相应一个中。6.根据权利要求4或5所述的PE,其中,所述M个可配置核心执行的数据包括以下之一:与所述M个可配置核心执行的并行线程数对应的N个数据包;以及与所述M个可配置核心执行的所述并行线程数对应的N个结果。7.根据权利要求1至6中任一项所述的PE,其中,所述控制块通过生成地址来控制对所述M个可配置核心中的每一个的访问,所述地址由所述M个可配置核心用于将M个可配置核心的结果写入所述M个可配置核心的M个PE本地存储器组中的相应一个。8.根据权利要求1至7中任一项所述的PE,其中,所述一个或多个处理器以菊花链形式连接,其中所述菊花链中的所述一个或多个处理器中的第一处理器的输出流连接到所述菊花链中的所述一个或多个处理器中的第二相邻处理器的输入流。9.一种可配置硬件加速器(CHA),所述CHA包括:多个处理元件(PE);以及非瞬时性存储器,所述非瞬时存储器用于存储PE虚拟组功能代码(VGFC)表,所述PE VGFC表用于定义所述多个PE的一个或多个PE虚拟组(PEVG),其中每个所述PEVG被配置在硬件中用于执行进程。10.根据权利要求9所述的CHA,所述CHA还包括系统互连(SI),并且其中,所述PE VGFC表包括一个或多个指针,每个指针寻址一个PE程序...

【专利技术属性】
技术研发人员:李昌勋保罗
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1