System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 针对目的地的多个源之间的公平仲裁制造技术_技高网

针对目的地的多个源之间的公平仲裁制造技术

技术编号:41662334 阅读:6 留言:0更新日期:2024-06-14 15:22
硬件模块至少包括第一入口缓冲区和第二入口缓冲区,其中第二入口缓冲区保存来自多个源组件的数据分组。该模块首先确定第一入口缓冲区的头部处的分组以第一目的地为目标。为了确保向第一入口缓冲区提供数据的一个或多个源与向第二入口缓冲区提供数据的多个源之间的公平性,处理电路检查保存在第二入口缓冲区中的分组中的源标识符,并在缓冲区之间进行选择,以便在源之间进行仲裁。在一些实施例中,对源标识符的检查提供入口缓冲区之间的加权循环的统计信息。在其他实施例中,当前在第二入口缓冲区的头部的任何分组的源标识符被用于在源之间执行简单的循环。

【技术实现步骤摘要】
【国外来华专利技术】

本申请涉及硬件模块,并且具体地涉及一种用于接收源自多个源的数据并将该数据中的至少一些转发到第一目的地的硬件模块。


技术介绍

1、在处理复杂或高容量应用的数据的上下文中,工作加速器可以是从主机系统卸载某些数据的处理的子系统。这样的工作加速器可以具有用于执行特定类型的处理的专用硬件。

2、具体地,专用于机器学习应用的工作加速器可以具有支持高度并行性的架构。一种形式的并行性可以借助于包括在同一芯片(即,同一晶片)上的多个瓦片(tile)的布置的处理器来实现,每个瓦片包括其自己的相应处理单元和存储器(包括程序存储器和数据存储器)。因此,程序代码的单独部分可以在瓦片中的不同瓦片上并行运行。瓦片经由芯片上互连连接在一起,芯片上互连使得数据能够在它们之间交换。这样的加速器可以用作主机系统的子系统,以执行提供给它的数据集的并行处理。

3、可以在集成电路(即,芯片)上提供工作加速器,集成电路是在单片半导体材料(例如,硅)上制造的一组电子电路。除了在单个芯片上提供工作加速器的多个瓦片之外,可以提供附加的片上系统(soc)组件以支持工作加速器的操作。此外,可以在芯片上提供各种接口以支持工作加速器与片外设备(诸如其他工作加速器或主机设备)之间的通信。

4、当例如在单个芯片上提供在其间发生数据交换的多个不同组件时,在提供这些组件之间的通信方面出现各种挑战。


技术实现思路

1、提出了提供用作交换机的硬件模块,用于转发源自多个源组件并去往传送到多个目的地组件的数据。例如,交换机可以具有用于从不同源组件接收数据的多个输入端口。在借助于用于在组件之间传输数据分组的网络的布置,至少一些输入端口从多个数据源接收数据的情况下,在确保数据到特定目的地的公平传输方面出现了挑战。在这种情况下,使用简单的循环方案在输入端口之间进行仲裁可能不公平地对来自某些源(即,与较少的其他源组件共享输入端口的那些源)的、以特定目的地为目标的业务进行优先级排序。

2、根据第一方面,提供了一种用于从多个源组件接收数据并将该数据中的至少一些转发到第一目的地的硬件模块,该硬件模块包括:第一入口端口,被配置为接收源自源组件的第一子集的第一组数据分组,并将这些数据分组提供给第一入口缓冲区,其中,第一子集由多个源组件中的一个或多个源组件组成;第二入口端口,被配置为接收源自源组件的第二子集的第二组数据分组,并将这些数据分组提供给第二入口缓冲区,其中,源组件的第二子集包括两个或更多个源组件,其中,第一子集由与第二子集不同数量的源组件组成;出口端口,用于输出第一组数据分组和第二组数据分组,其中出口端口被配置为将数据输出到包括第一目的地的多个目的地,其中,第一组数据分组中的一些用于分派到多个目的地中的不同目的地;以及处理电路,被配置为:检查位于第一入口缓冲区的头部的第一组数据分组中的一个数据分组中的目的地标识符;以及检查第二组数据分组中的一个或多个数据分组中的一个或多个第二源标识符,以确定第二组数据分组中的一个或多个数据分组中的每个数据分组源自源组件的第二子集中的哪个源组件;以及响应于确定目的地标识符标识第一目的地,根据一个或多个第二源标识符在第一入口缓冲区和第二入口缓冲区之间进行选择,从其向第一目的地发送数据,以便在用于向第一目的地发送数据的多个源组件之间进行仲裁。

3、电路首先被配置为确定第一入口缓冲区的头部处的分组是否以第一目的地为目标。在这种情况下,执行源之间的仲裁,以便确保以第一目的地为目标的源之间的公平性。通过分析第二入口缓冲区中的分组的来源(即,数据分组源自哪个源组件),处理电路能够在多个源之间进行仲裁,用于通过出口端口将数据转发到第一目的地。在一些实施例中,通过使用第二入口缓冲区中的源标识符的检查来实现源之间的仲裁,以提供涉及第一和第二入口缓冲区的加权循环的统计信息。在其他实施例中,第二入口缓冲区的头部处的分组的源标识符被用于在源之间执行简单的循环。

4、在一些实施例中,处理电路被配置为:在选择第二入口缓冲区时,发送位于第二入口缓冲区的头部的第二组数据分组中的第一数据分组,其中,一个或多个第二源标识符是在发送第二组数据分组中的第一数据分组之前从第二入口缓冲区发送的第二组数据分组中的分组的源标识符。

5、在一些实施例中,硬件模块包括存储装置,该存储装置被配置为存储最后从第二入口缓冲区发送数据的源组件的数量的指示,其中,在第一入口缓冲区和第二入口缓冲区之间进行选择包括在第一入口缓冲区和第二入口缓冲区之间执行加权循环,其中,第二入口缓冲区由最后从第二入口缓冲区发送数据的源组件的数量加权。

6、在一些实施例中,硬件模块包括入口缓冲区集合,入口缓冲区集合被配置为接收源自源组件的第二子集的数据,入口缓冲区集合包括第二入口缓冲区。

7、在一些实施例中,对于源组件的第二子集中的每一个源组件,存储装置包括入口缓冲区集合中的哪个入口缓冲区最后发送源自相应源组件的数据的指示,其中,源组件的数量的指示由源组件的第二子集的数量给出,针对该源组件的第二子集,入口缓冲区集合中的哪个入口缓冲区最后发送源自相应源组件的数据的相应指示指定第二入口缓冲区。

8、在一些实施例中,位于第一入口缓冲区的头部的第一组数据分组中的第一数据分组源自由第一源标识符标识的源组件的第一子集中的第一源组件,其中,检查一个或多个第二源标识符包括检查位于第二入口缓冲区的头部的第二组数据分组中的第一数据分组中的第二源标识符。其中,处理电路被配置为根据第二组数据分组中的所述第一数据分组中的第二源标识符和第一源标识符来选择第二组数据分组中的第一数据分组用于通过出口端口发送。

9、在一些实施例中,处理电路被配置为通过检查第一组数据分组中的第一数据分组中的第一源标识符来确定第一源标识符。

10、在一些实施例中,硬件模块还包括寄存器,该寄存器存储多个源组件中的数据最近被发送到第一目的地的一个源组件的标识符,其中,在第一入口缓冲区和第二入口缓冲区之间进行选择包括选择多个源组件中的下一个源组件,该下一个源组件按顺序在该寄存器中标识的多个源组件中的一个源组件之后。

11、在一些实施例中,在第一入口缓冲区和第二入口缓冲区之间进行选择包括在多个源组件之间应用循环方案。

12、在一些实施例中,源组件的第一子集由单个源组件组成,其中,第一入口缓冲区专用于保存源自单个源组件的数据分组。

13、在一些实施例中,硬件模块包括入口缓冲区集合,该入口缓冲区集合用于存储源自源组件的第二子集的数据,其中,该入口缓冲区集合中的每个入口缓冲区专用于存储用于发送到多个目的地中的不同目的地的数据,其中,第二入口缓冲区专用于存储用于发送到第一目的地的数据。

14、在一些实施例中,该入口缓冲区集合中的每个入口缓冲区与互连的不同虚拟通道相关联,硬件模块在该互联中用作节点。

15、在一些实施例中,处理电路被配置为在第一入口缓冲区和第二入口缓冲区之间进行选择之前:作为用于在用于通过出口端口发送本文档来自技高网...

【技术保护点】

1.一种用于从多个源组件接收数据并将所述数据中的至少一些转发到第一目的地的硬件模块,所述硬件模块包括:

2.根据权利要求1所述的硬件模块,其中,所述处理电路被配置为:在选择所述第二入口缓冲区时,发送位于所述第二入口缓冲区的头部的所述第二组数据分组中的第一数据分组,

3.根据权利要求1或2所述的硬件模块,包括存储装置,所述存储装置被配置为存储最后从所述第二入口缓冲区发送数据的所述源组件的数量的指示,

4.根据权利要求3所述的硬件模块,其中,所述硬件模块包括入口缓冲区集合,所述入口缓冲区集合被配置为接收源自所述源组件的所述第二子集的数据,所述入口缓冲区集合包括所述第二入口缓冲区。

5.根据权利要求4所述的硬件模块,其中,对于源组件的所述第二子集中的每个源组件,所述存储装置包括所述入口缓冲区集合中的哪个入口缓冲区最后发送源自相应源组件的数据的指示,

6.根据权利要求1所述的硬件模块,其中,位于所述第一入口缓冲区的头部的所述第一组数据分组中的第一数据分组源自由第一源标识符标识的源组件的所述第一子集中的第一源组件,

7.根据权利要求6所述的硬件模块,其中,所述处理电路被配置为通过检查所述第一组数据分组中的所述第一数据分组中的所述第一源标识符来确定所述第一源标识符。

8.根据权利要求1、6和7中任一项所述的硬件模块,其中,所述硬件模块还包括寄存器,所述寄存器存储所述多个源组件中的数据最近被发送到所述第一目的地的一个源组件的标识符,其中,在所述第一入口缓冲区和所述第二入口缓冲区之间进行选择包括选择所述多个源组件中的下一个源组件,所述下一个源组件按顺序在所述寄存器中标识的所述多个源组件中的所述一个源组件之后。

9.根据权利要求1或6至8中任一项所述的硬件模块,其中,在所述第一入口缓冲区和所述第二入口缓冲区之间进行选择包括在所述多个源组件之间应用循环方案。

10.根据前述权利要求中任一项所述的硬件模块,其中,所述源组件的所述第一子集由单个源组件组成,其中,所述第一入口缓冲区专用于保存源自所述单个源组件的数据分组。

11.根据前述权利要求中任一项所述的硬件模块,其中,所述硬件模块包括入口缓冲区集合,所述入口缓冲区集合用于存储源自所述源组件的所述第二子集的数据,其中,所述入口缓冲区集合中的每个入口缓冲区专用于存储用于发送到所述多个目的地中的不同目的地的数据,其中,所述第二入口缓冲区专用于存储用于发送到所述第一目的地的数据。

12.根据权利要求11所述的硬件模块,其中,所述入口缓冲区集合中的每个入口缓冲区与互连的不同虚拟通道相关联,所述硬件模块在所述互连中用作节点。

13.根据前述权利要求中任一项所述的硬件模块,其中,所述处理电路被配置为在所述第一入口缓冲区和所述第二入口缓冲区之间进行选择之前:作为用于在用于通过所述出口端口发送数据的所述多个目的地之间进行仲裁的仲裁方案的一部分,选择所述第一目的地作为要向其发送数据的下一个目的地。

14.根据前述权利要求中任一项所述的硬件模块,其中,可用于通过所述出口端口发送的第一带宽超过用于在所述第一入口端口处接收数据的第二带宽。

15.根据前述权利要求中任一项所述的硬件模块,其中,所述硬件模块是互连上的节点,其中,所述第一入口端口是用于从附接到所述节点的所述多个源组件的所述第一子集接收所述第一组数据分组的本地入口端口,其中,所述第二入口端口被配置为从所述互连的另外的节点接收所述第二组数据分组。

16.根据前述权利要求中任一项所述的硬件模块,其中,所述第二入口端口被配置为接收用于传送到所述源组件的第一子集中的至少一个源组件的数据,其中,所述处理电路被配置为提供该数据以通过所述硬件模块的另外的出口端口传送到所述源组件的第一子集中的所述至少一个源组件。

17.一种包括根据前述权利要求中任一项所述的硬件模块的设备,其中,所述设备包括多个源组件和第一目的地。

18.根据权利要求17所述的设备,其中,所述设备包括所述硬件模块的多个实例,所述多个实例连接在一起作为形成互连的一部分的节点,其中,所述实例中的每个实例被配置为从所述源组件中的不同的一个或多个源组件接收数据。

19.根据权利要求18所述的设备,包括连接到所述第一目的地的另外的硬件模块,所述另外的硬件模块被配置为从连接到所述硬件模块的所述多个实例中的每个实例的所述源组件中的不同源组件输出所述数据,其中,所述源组件中的所述不同源组件的聚合带宽超过用于向所述第一目的地提供数据的所述另外的硬件模块的带宽。

20.根据权利要求17至19中任一项所述...

【技术特征摘要】
【国外来华专利技术】

1.一种用于从多个源组件接收数据并将所述数据中的至少一些转发到第一目的地的硬件模块,所述硬件模块包括:

2.根据权利要求1所述的硬件模块,其中,所述处理电路被配置为:在选择所述第二入口缓冲区时,发送位于所述第二入口缓冲区的头部的所述第二组数据分组中的第一数据分组,

3.根据权利要求1或2所述的硬件模块,包括存储装置,所述存储装置被配置为存储最后从所述第二入口缓冲区发送数据的所述源组件的数量的指示,

4.根据权利要求3所述的硬件模块,其中,所述硬件模块包括入口缓冲区集合,所述入口缓冲区集合被配置为接收源自所述源组件的所述第二子集的数据,所述入口缓冲区集合包括所述第二入口缓冲区。

5.根据权利要求4所述的硬件模块,其中,对于源组件的所述第二子集中的每个源组件,所述存储装置包括所述入口缓冲区集合中的哪个入口缓冲区最后发送源自相应源组件的数据的指示,

6.根据权利要求1所述的硬件模块,其中,位于所述第一入口缓冲区的头部的所述第一组数据分组中的第一数据分组源自由第一源标识符标识的源组件的所述第一子集中的第一源组件,

7.根据权利要求6所述的硬件模块,其中,所述处理电路被配置为通过检查所述第一组数据分组中的所述第一数据分组中的所述第一源标识符来确定所述第一源标识符。

8.根据权利要求1、6和7中任一项所述的硬件模块,其中,所述硬件模块还包括寄存器,所述寄存器存储所述多个源组件中的数据最近被发送到所述第一目的地的一个源组件的标识符,其中,在所述第一入口缓冲区和所述第二入口缓冲区之间进行选择包括选择所述多个源组件中的下一个源组件,所述下一个源组件按顺序在所述寄存器中标识的所述多个源组件中的所述一个源组件之后。

9.根据权利要求1或6至8中任一项所述的硬件模块,其中,在所述第一入口缓冲区和所述第二入口缓冲区之间进行选择包括在所述多个源组件之间应用循环方案。

10.根据前述权利要求中任一项所述的硬件模块,其中,所述源组件的所述第一子集由单个源组件组成,其中,所述第一入口缓冲区专用于保存源自所述单个源组件的数据分组。

11.根据前述权利要求中任一项所述的硬件模块,其中,所述硬件模块包括入口缓冲区集合,所述入口缓冲区集合用于存储源自所述源组件的所述第二子集的数据,其中,所述入口缓冲区集合中的每个入口缓冲区专用于存储用于发送到所述多个目的地中的不同目的地的数据,其中,所述第二入口缓冲区专用于存储用于发送到所述第一...

【专利技术属性】
技术研发人员:G·坎宁汉H·亚辛D·J·P·威尔金森
申请(专利权)人:图核有限公司
类型:发明
国别省市:

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

1