计算节点集群系统和数据中继器的制作方法

文档序号:7862475阅读:244来源:国知局
专利名称:计算节点集群系统和数据中继器的制作方法
技术领域
本发明涉及计算技术领域,更具体地说,本发明涉及一种使得可重构FPGA (FieldProgrammable Gate Array,现场可编程门阵列)阵列中的数据带宽增强的计算节点集群系统和数据中继器。
背景技术
通用处理器加可重构FPGA的软硬件协同计算模式正在成为一种新的计算结构发展方向,而将这种结构中的FPGA相互连接构成阵列形式,更是很大程度提高了这种结构的计算能力和灵活性。可重构FPGA具有强大的计算能力,非常适合进行计算密集型的应用。但是,当需·要处理数据密集型应用时,FPGA同外部通用处理器互连的数据通路带宽往往会成为整个结构中的性能瓶颈,会很大程度限制FPGA计算加速能力的发挥。因此,希望能够提供一种可增强可重构FPGA阵列中的数据带宽的方法。

发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种使得可重构FPGA阵列中的数据带宽增强的计算节点集群系统。根据本发明,提供了一种计算节点集群系统,其包括多个计算节点,其中每个计算节点包括各自的FPGA和通用处理器;其中,各个计算节点的通用处理器通过网络相互连接;并且,在每个计算节点中,FPGA连接至通用处理器;其中,每个FPGA均具有数据中继器;而且,所有计算节点的FPGA通过数据中继器依次连接。优选地,数据中继器实现了动态自适应通路均衡选择。优选地,依次连接的数据中继器在一个方向上传递数据。优选地,数据中继器包括消息发送端口、动态自适应通路选择器、FPGA消息接口、压缩模块以及通用处理器消息接口 ;其中,FPGA消息接口接收来自其它FPGA的数据,并且将其保存在先进先出队列中;通用处理器消息接口接收来自当前计算节点的通用处理器的数据;压缩模块用于对从通用处理器消息接口接收的数据进行压缩;动态自适应通路选择器动态地转发从FPGA消息接口的先进先出队列取出的消息以及从压缩模块取出的消息;消息发送端口 Dl用于将动态自适应通路选择器D2传递来的数据从数据中继器发送出去。优选地,在一个连续发送过程中,动态自适应通路选择器先转发来自当前计算节点的通用处理器的所有消息,然后转发来自其他FPGA的所有消息。优选地,动态自适应通路选择器在每个连续发送过程完成之后动态地调整在下一次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例。优选地,动态自适应通路选择器包括当前状态寄存器、历史状态寄存器、控制逻辑、以及2选I选择器;其中,2选I选择器接收从FPGA消息接口传递来的第一消息以及压缩模块传递来的第二消息;控制逻辑根据当前状态寄存器和历史状态寄存器的内容,一次挑选出其中一个来源的消息作为一个第三消息,并将第三消息送到消息发送端口。根据本发明,还提供了一种数据中继器,包括消息发送端口、动态自适应通路选择器、FPGA消息接口、压缩模块以及通用处理器消息接口 ;其中,FPGA消息接口接收来自其它FPGA的数据,并且将其保存在先进先出队列中;通用处理器消息接口接收来自当前计算节点的通用处理器的数据;压缩模块用于对从通用处理器消息接口接收的数据进行压缩;动态自适应通路选择器动态地转发从FPGA消息接口的先进先出队列取出的消息以及从压缩模块取出的消息;消息发送端口用于将动态自适应通路选择器传递来的数据从数据中继器发送出去。优选地,在一个连续发送过程中,动态自适应通路选择器先转发来自当前计算节点的通用处理器的所有消息,然后转发来自其他FPGA的所有消息。优选地,动态自适应通路选择器在每个连续发送过程完成之后动态地调整在下一·次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例。根据本发明,通过依次连接各个FPGA的各个数据中继器,形成了一个额外的数据通路,实际上增大了数据带宽;而且数据中继器实现了动态的自适应通路均衡选择,一方面增强了数据传输的带宽,另一方面提供了数据中继器可重用能力,可使数据中继器应用在整个异构FPGA阵列中的各位置。


结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中图I示意性地示出了根据本发明实施例构建的FPGA和通用处理器组成的阵列结构。图2示意性地示出了根据本发明实施例的FPGA的框图。图3示意性地示出了根据本发明实施例的FPGA的数据中继器的框图。 图4示出了本发明实施例采用的数据包格式。图5示意性地示出了根据本发明实施例的通用处理器消息接口的配置。图6示意性地示出了根据本发明实施例的动态自适应通路选择器的配置。图7示意性地示出了根据本发明实施例的动态自适应通路选择器的操作处理的优选示例。需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施例方式为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。图I示意性地示出了根据本发明实施例构建的FPGA和通用处理器组成的阵列结构。如图I所示,通过诸如标准以太网4之类的网络使得多个计算节点相互连接,在图I所示的示例中,包括第一计算节点I、第二计算节点2和第三计算节点3。每个计算节点包括各自的FPGA和通用处理器。具体地说,第一计算节点I包括第一 FPGAFPGA1和第一通用处理器11 ;第二计算节点2包括第二 FPGAFPGA2和第二通用处理器22 ;第三计算节点3包括第三FPGAFPGA3和第三通用处理器33。更具体地说,各个计算节点的通用处理器通过诸如标准以太网4之类的网络相互连接。 并且,在每个计算节点中,FPGA连接至通用处理器。并且,所有计算节点的FPGA依次连接。虽然示出了 3个计算节点的示例,但是,计算节点的数量显然不限于3个,而是可以是任何适当数量。图I中包含三种数据连接方式FPGA之间的高速互连(例如GPI0、RocketI0),通用处理器与FPGA之间的通信连接(例如GPMC、PCIe、AIX总线等),以及通用处理器之间通过标准的以太网互连。这种结构的一般应用模式为通用处理器上的软件程序和FPGA上的硬件加速逻辑协同工作,以高效地加速应用计算速度。具体地说,通用处理器上的软件完成一些适应软件完成的数据处理之后,将数据送入FPGA中的专门加速逻辑以实现高速的硬件加速。但是,在数据密集型应用中,若通用处理器同FPGA之间连接的带宽不够,则会无法满足通用处理器向FPGA传递数据的需求,进而影响整个应用的计算速度。鉴于此,本发明实施例在FPGA中集成了数据中继器(数据中继器M2)。具体地说,图2示意性地示出了根据本发明实施例的FPGA的框图。如图2所示,以第二计算节点2为例,第二计算节点2的第二 FPGAFPGA2包括FPGA计算逻辑Ml以及数据中继器M2 ;其中,为了便于描述,图2中省略了 FPGA的其它组成部分。数据中继器M2是一种带宽增强的数据中继器。即,每个FPGA均具有实现了动态的自适应通路均衡选择的数据中继器。各个FPGA的各个数据中继器依次连接;换言之,所有计算节点的FPGA通过数据中继器依次连接。由此,通过依次连接各个FPGA的各个数据中继器,形成了一个额外的数据通路,实际上增大了数据带宽。如果第一计算节点I上的第一通用处理器11和FPGAFPGA1正在协同工作,但是受到了两者之间互连带宽的限制,则此时可以利用第二计算节点2的第二通用处理器22和第三计算节点3的第三通用处理器33协助进行前期的数据处理,并且第二通用处理器22将处理后的数据通过其自己的数据中继器M2转发到第一计算节点I的FPGAFPGA1中,而第三计算节点3将处理后的数据通过其自己的数据中继器以及第二通用处理器22的数据中继器M2转发到第一计算节点I的FPGAFPGA1中。图3示意性地示出了根据本发明实施例的FPGA的数据中继器的框图。如图3所示,FPGA的数据中继器包括消息发送端口 D1、动态自适应通路选择器D2、FPGA消息接口 D3、压缩模块D4以及通用处理器消息接口 D5。通常在网络中传递的消息需要负责的消息包头,用于在网络中路由。但是,优选地,在本发明实施例中,依次连接的数据中继器在一个方向上传递数据;例如图I所示的从第三计算节点3至第二计算节点2,然后到达第一计算节点I的方向。所以,由于本发明实施例的数据中继器连接方式及数据传递方式的简单设计,本发明实施例中的消息包格式可以具有简单的形式,例如消息包格式中无需包括路由信息。图4示出了本发明实施例采用的数据包格式。如图4所示,本发明实施例中的消息包格式可以仅仅是消息包实际内容(压缩或未压缩)DATAl,也可以是压缩算法DATAO与消息包实际内容(压缩或未压缩)DATAl的组合。其中,压缩算法DATAO用于指明消息包实际内容DATAl的压缩方式。由此,通用处理器向FPGA传递消息时,只需要将需要发送的内容放入消息包实际内容(压缩或未压缩)DATAl即可。优选地,通用处理器在传递消息时不在通用处理器内部做消息的压缩,这是因为压缩会占用通用处理器很多处理时间,不利于通用处理器全速进行数据前期处理工作。优选地,FPGA之间的消息可以经过压缩处理,以减少传输时所需的带宽。由于FPGA之间的通道都是单向的,消息会被一直转发直到终点,因此,也无需在消息包中包含目
的信息等路由信息。其中,FPGA消息接口 D3接收来自其它FPGA的数据。FPGA消息接口 D3的主要部件为一个消息缓存,消息缓存实现为一个先进先出的队列。FPGA消息接口 D3接收到的消息(数据)将放入消息缓存以待动态自适应通路选择器D2将消息取出。通用处理器消息接口 D5接收来自当前计算节点的通用处理器的数据。处理器消息接口 D5需要实现同处理器连接的通信协议,如GPMC,PCIe等,其内部的主要包含实现通信的标准协议接口 Pl以及一个先进先出缓存P2,如图5所示。压缩模块D4用于对从通用处理器消息接口 D5接收的数据进行压缩。具体地,压缩模块D4是数据中继器中的核心模块,其设计是为了节省FPGA相互之间通信时需要的接口·带宽,其作用相当于增强了整个中继过程中的数据传输带宽。通用处理器的消息到达之后,可以利用压缩模块将数据包的内容进行压缩,压缩可以使用标准的压缩算法(如gzip等)。需要说明的是,在当前实施例中,消息压缩只针对来自通用处理器的消息进行。由于在数据中继器M2设计中加入了压缩部件(压缩模块D4),可以在实际上增强数据传输的有效带宽。动态自适应通路选择器D2是数据中继器中的控制核心,其用于动态地转发从FPGA消息接口 D3的先进先出队列取出的消息以及从压缩模块D4取出的消息。优选地,在一个连续发送过程(例如一个发送周期)中,动态自适应通路选择器D2先转发来自通用处理器的所有消息,然后转发来自其他FPGA的所有消息。并且,优选地,动态自适应通路选择器D2能够在每个连续发送过程完成之后动态地调整在下一次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例,以保证流量较大的通路消息会尽快被转发,同时避免流量较小的通路占用控制逻辑的时间。动态自适应通路选择器D2的总体结构如图6所示。如图6所示,动态自适应通路选择器D2是包括当前状态寄存器R1、历史状态寄存器R2、控制逻辑LG1、以及2选I选择器LG2。其中,2选I选择器LG2接收从FPGA消息接口 D3传递来的第一消息SOl以及压缩模块D4传递来的第二消息S02。可以看出,第一消息SOl实际包含来自其他FPGA的数据内容,而第二消息S02包含来自同一计算节点的通用处理器的数据内容。控制逻辑LGl根据当前状态寄存器Rl和历史状态寄存器R2的内容,将来自不同源节点(其他FPGA或者同一计算节点的通用处理器)的消息一次挑选出其中一个来源的消息作为一个第三消息S03,并将第三消息S03送到消息发送端口 Dl。消息发送端口 Dl用于将动态自适应通路选择器D2传递来的数据从数据中继器发送出去;同样,消息发送端口 Dl可实现为一个先进先出的缓冲。图7示意性地示出了根据本发明实施例的动态自适应通路选择器的操作处理的优选示例。首先,需要说明的是,在操作处理中,历史状态和当前状态共有4个寄存器表示。其中历史状态有X2寄存器、Y2寄存器分别对应来自通用处理器消息和来自FPGA的消息,历史状态寄存器的意义是来自相应通路的消息队列在被控制逻辑选中后发现队列为空的次数。其中,记录队列为空的次数用于重置X1、Y1寄存器时对这两个值的修改,分别记录在X2、Y2 寄存器中,X2,Y2 参与计算下一次 XI,Yl 的计算,即 Xl=Xl+(Y2-X2)/2,Y1=64_X1。当前状态中同样使用Xl寄存器、Yl寄存器表示来自通用处理器和来自FPGA的消息,当前状态寄存器的意义是控制逻辑LGl在一段连续发送过程中需要选择相应通路的次数。需要说明的是,在当前状态中,Xl和Yl的和是64。判断“当前状态”中的Xl值是否大于O (步骤S0),在X值大于O的情况下,控制逻辑LGl使当前状态的Xl递减I (步骤SI),并且控制逻辑LGl首先根据“当前状态”中的Xl值,控制2选I选择器选择LG2来自通用处理器的消息送往消息发送端口(步骤S2),该过程重复Xl次。具体地说,在步骤S2之后判断通用处理器消息队列是否为空(步骤S3),在不为空的情况,处理回到步骤S0。在通用处理器消息队列为空的情况下历史状态中,X2递增I (步骤S5),此后处理回到步骤so。更具体地说,当发生通用处理器消息队列为空时,则表明虽然控制逻辑希望从通用处理器消息队列取出数据,但是其内部没有数据,为了记录这种情况以在下一次调整控制逻辑对两条数据通路的选择,将对历史状态中的X2加I (步骤S4)。随后,程序回到步骤S0。如上,控制逻辑根据当前状态中的Yl值进行来自FPGA的消息转发,并设置历史状态寄存器。具体地说,在Xi值不大于O的情况下(步骤SO的判定结果为否定),判断Yl值是否大于O (步骤S5)。在Yl值大于O的情况下,控制逻辑LGl使当前状态的Yl递减I (步骤S6),并且控制逻辑LGl首先根据“当前状态”中的Yl值,控制2选I选择器选择LG2来自FPGA的消息送往消息发送端口(步骤S7),该过程重复Yl次。具体地说,在步骤S7之后判断通用处理器消息队列是否为空(步骤S8),在不为空的情况,处理回到步骤S5。在通用处理器消息队列为空的情况下历史状态中,Y2递增I (步骤S9),此后处理回到步骤S5。当一次连续发送完成后,将重置当前状态(Χ1=Χ1+(Υ2-Χ2)/2,Υ1=64_Χ1)(步骤S00),以及重置历史状态(使得X2=l,Y2=l)(步骤SOI)。并进入下一次连续发送过程。其中,当前状态重置的基本思想是动态地调整控制逻辑在下一次连续发送阶段从两个通路选择的比例,以保证流量较大的通路消息会尽快被转发,同时避免流量较小的通路占用控制逻辑的时间。根据本发明实施例,数据中继器实现了动态的自适应通路均衡选择,一方面增强了数据传输的带宽,另一方面提供了数据中继器可重用能力,可使数据中继器应用在整个异构FPGA阵列中的各位置。此外,需要说明的是,说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
权利要求
1.一种计算节点集群系统,其特征在于包括多个计算节点,其中每个计算节点包括各自的FPGA和通用处理器;其中,各个计算节点的通用处理器通过网络相互连接;并且,在每个计算节点中,FPGA连接至通用处理器;其中,每个FPGA均具有数据中继器;而且,所有计算节点的FPGA通过数据中继器依次连接。
2.根据权利要求I所述的计算节点集群系统,其特征在于,数据中继器实现了动态自适应通路均衡选择。
3.根据权利要求I或2所述的计算节点集群系统,其特征在于,依次连接的数据中继器在一个方向上传递数据。
4.根据权利要求I或2所述的计算节点集群系统,其特征在于,数据中继器包括消息发送端口、动态自适应通路选择器、FPGA消息接口、压缩模块以及通用处理器消息接口 ;其中,FPGA消息接口接收来自其它FPGA的数据,并且将其保存在先进先出队列中;通用处理器消息接口接收来自当前计算节点的通用处理器的数据;压缩模块用于对从通用处理器消息接口接收的数据进行压缩;动态自适应通路选择器动态地转发从FPGA消息接口的先进先出队列取出的消息以及从压缩模块取出的消息;消息发送端口用于将动态自适应通路选择器传递来的数据从数据中继器发送出去。
5.根据权利要求4所述的计算节点集群系统,其特征在于,在一个连续发送过程中,动态自适应通路选择器先转发来自当前计算节点的通用处理器的所有消息,然后转发来自其他FPGA的所有消息。
6.根据权利要求4或5所述的计算节点集群系统,其特征在于,动态自适应通路选择器在每个连续发送过程完成之后动态地调整在下一次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例。
7.根据权利要求I或2所述的计算节点集群系统,其特征在于,动态自适应通路选择器包括当前状态寄存器、历史状态寄存器、控制逻辑、以及2选I选择器;其中,2选I选择器接收从FPGA消息接口传递来的第一消息以及压缩模块传递来的第二消息;控制逻辑根据当前状态寄存器和历史状态寄存器的内容,一次挑选出其中一个来源的消息作为一个第三消息,并将第三消息送到消息发送端口。
8.一种数据中继器,其特征在于包括消息发送端口、动态自适应通路选择器、FPGA消息接口、压缩模块以及通用处理器消息接口 ;其中,FPGA消息接口接收来自其它FPGA的数据,并且将其保存在先进先出队列中;通用处理器消息接口接收来自当前计算节点的通用处理器的数据;压缩模块用于对从通用处理器消息接口接收的数据进行压缩;动态自适应通路选择器动态地转发从FPGA消息接口的先进先出队列取出的消息以及从压缩模块取出的消息;消息发送端口用于将动态自适应通路选择器传递来的数据从数据中继器发送出去。
9.根据权利要求8所述的数据中继器,其特征在于,在一个连续发送过程中,动态自适应通路选择器先转发来自当前计算节点的通用处理器的所有消息,然后转发来自其他FPGA的所有消息。
10.根据权利要求8或9所述的数据中继器,其特征在于,动态自适应通路选择器在每个连续发送过程完成之后动态地调整在下一次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例。
全文摘要
本发明提供的一种计算节点集群系统和数据中继器。计算节点集群系统包括多个计算节点,其中每个计算节点包括各自的FPGA和通用处理器;其中,各个计算节点的通用处理器通过网络相互连接;并且,在每个计算节点中,FPGA连接至通用处理器;其中,每个FPGA均具有数据中继器;而且,所有计算节点的FPGA通过数据中继器依次连接。在一个连续发送过程中,动态自适应通路选择器先转发来自当前计算节点的通用处理器的所有消息,然后转发来自其他FPGA的所有消息。并且,动态自适应通路选择器在每个连续发送过程完成之后动态地调整在下一次连续发送过程发送的来自通用处理器的数据量与来自其他FPGA的数据量之间的比例。
文档编号H04L12/861GK102932276SQ20121037991
公开日2013年2月13日 申请日期2012年10月9日 优先权日2012年10月9日
发明者谢向辉, 吴东, 郝子宇, 臧春峰, 原昊, 钱磊, 邬贵明, 李玺, 严忻凯 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1