支持在网计算的芯粒间网络路由器及数据包在网处理方法技术

技术编号:37676734 阅读:30 留言:0更新日期:2023-05-26 04:41
本发明专利技术公开了一种面向多芯粒集成系统的支持在网计算的芯粒间网络路由器及数据包在网处理方法,通过在芯粒间网络路由器中首次增加解析单元、专用缓冲区和在网计算处理单元,使芯粒间网络路由器能够对正在转发的数据包进行在网计算操作。并且定义新的数据包格式,以配合解析单元和在网计算处理单元工作。另外,提出一种基于芯粒间网络路由器的数据包在网处理方法,可以将多个数据包合并为一个新的数据包,从而大大减少网络中的数据包数量。本发明专利技术使多芯粒集成系统的互连网络具有计算处理能力,能够对在网络中传递的数据包进行聚合处理,从而减少网络中的流量负载,降低网络传输延迟。输延迟。输延迟。

【技术实现步骤摘要】
支持在网计算的芯粒间网络路由器及数据包在网处理方法


[0001]本专利技术涉及多芯粒集成电路
,具体涉及一种支持在网计算的芯粒间网络路由器及数据包在网处理方法。

技术介绍

[0002]多芯粒集成系统是把一些实现特定功能的芯粒通过先进封装技术集成为特定功能的系统芯片,多芯粒集成系统相比于传统的单芯片集成系统有更好的制造良率。多芯粒集成系统可以用于大规模神经网络的分布式训练,将输入数据和模型权重分布到不同的芯粒上进行并行化训练。在训练过程中,所有的芯粒需要同步更新参数,因此需要汇总(Reduce)所有芯粒的训练梯度,从而在芯粒间互连网络中产生大量的汇总型通信流量。由于芯粒间的通信效率低,跨芯粒通信的延迟长,并且通信流量的规模较大,通信总量可达数百至数千兆字节,很容易造成芯粒间互连网络的拥塞,降低网络性能。因此在多芯粒互连网络中提出在网计算设计,在网络传输的过程中对梯度数据包进行合并以减少网络流量。现有的在网计算方法基本都针对大型计算集群提出,不适用于多芯粒集成系统,因为针对大型集群通信设备的网算设计不存在硬件面积上的限制,而面向多芯粒集成系统的网络设备设计受到芯片面积的限制。其次,在多芯粒集成系统中,芯粒之间的运行可能不是完全同步的,因此各芯粒可能不会同时发出梯度数据包,从而导致芯粒间需要进行在网计算的数据包难以同时到达在网计算结点,造成数据包合并的比率降低,现有技术方法没有考虑到多芯粒集成系统的这个特点,从而导致在网计算方法实施的效率不高。

技术实现思路

[0003]本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种支持在网计算的芯粒间网络路由器及数据包在网处理方法。
[0004]本专利技术的目的可以通过采取如下技术方案达到:
[0005]一种支持在网计算的芯粒间网络路由器,所述芯粒间网络路由器包括N个输入端口、N个解析单元、1个控制单元、1个专用缓冲区、1个在网计算处理单元、N+1个路由计算单元、1个交叉开关、1个交叉开关仲裁器和N个输出端口,每个输入端口分别依次串联1个解析单元和1个路由计算单元,其中,
[0006]N个输入端口包括本地输入端口和其他方向输入端口,本地输入端口通过网络接口NI与本地芯粒相连,其他方向输入端口通过网络链路与上游路由器的输出端口相连,每个输入端口有M个输入缓冲区,所述输入端口用于接收从上游路由器发出的数据包或从网络接口注入的数据包,接收后将数据包先暂存在输入缓冲区中,并将输入缓冲区中首个数据包传递至解析单元进行解析,其中,所述数据包包括源地址、目的地址、网算标识位、数据包序号值和数据部分;
[0007]每个解析单元分别接收对应连接的输入端口的输入缓冲区传输的数据包,并读取该数据包的网算标识位和数据包序号值,若网算标识位的值为0,则表明该数据包不需要进
行在网计算,解析单元将该数据包传输至路由计算单元;若网算标识位的值为1,则表明该数据包需要进行在网计算,解析单元需将该数据包的序号值传递给控制单元进行判断;
[0008]所述控制单元用于控制解析单元和专用缓冲区,控制单元接收来自N个解析单元传入的数据包序号值,并和当前多芯粒集成系统维护的序号值进行比较,结合相同序号值的数据包的到达情况,对N个解析单元和专用缓冲区发出控制信号;
[0009]所述专用缓冲区用于接收从N个解析单元传入的需要进行在网计算的数据包,并缓存这些数据包;
[0010]所述在网计算处理单元接收专用缓冲区或N个解析单元传入的数据包,并对这些数据包进行在网计算处理,将处理后的数据包传输给路由计算单元;
[0011]N+1个路由计算单元分别从对应连接的N个解析单元或在网计算处理单元接收数据包,对数据包进行路由计算,并将数据包传输至交叉开关,每个路由计算单元读取数据包头部的目的地址和网算标识位,通过XY路由算法计算出该数据包的输出端口号,所述XY路由算法可参考文献“杜加琴,NOC基于2D MESH的路由算法的比较[J],电子技术,2012,39(03):9

11+13”,该路由算法的输入是数据包当前所在地址和目的地址,通过对上述两个地址位置坐标的比较,得到数据包的输出端口号,并将该端口号和网算标识位的值传递至交叉开关仲裁器;
[0012]所述交叉开关仲裁器分别从N+1个路由计算单元接收各数据包的输出端口号和网算标识位的值,计算这些数据包使用交叉开关的优先级,选择优先级最高的数据包优先使用交叉开关,并将选择结果作为仲裁信号发送至交叉开关;
[0013]所述交叉开关分别从N+1个路由计算单元接收数据包,并接收交叉开关仲裁器的仲裁信号,根据仲裁信号选择1个路由计算单元传出的数据包并将该数据包传递至对应的输出端口;
[0014]N个输出端口接收交叉开关传输的数据包,并将数据包加入输出队列,按照先到先服务原则向下游路由器或本地芯粒输出数据包。
[0015]上述公开的芯粒间网络路由器首次增加解析单元、专用缓冲区和在网计算处理单元,使芯粒间网络路由器能够对正在转发的数据包进行在网计算操作。并且定义新的数据包格式,以配合解析单元和在网计算处理单元工作。
[0016]进一步地,所述数据包中源地址表示该数据包由网络中哪一颗芯粒产生,目的地址表示该数据包由网络中哪一颗芯粒接收,网算标识位用于区分该数据包是否需要进行在网计算,数据包序号值表示该数据包的注入顺序,数据部分是该数据包要传输的具体数据内容。数据包从结构上分为首微片、体微片和尾微片,上述源地址、目的地址、网算标识位和数据包序号值均位于数据包的首微片,数据部分位于数据包的体微片和尾微片。源地址帮助路由器识别数据包的来源,保证路由器对收到的数据包做出正确处理;目的地址用于在数据包转发阶段作为路由算法的输入;网算标识位用于为数据包分类,将不需要在网计算的数据包的网算标识位设为0,防止数据包被传输至在网计算处理单元,加快数据包的转发速度;数据包序号值用于指示路由器哪些数据包可以合并,只有相同序号的数据包才可以进行在网计算处理,即数据包合并,该序号值可以避免数据包出现错误的合并。
[0017]进一步地,所述在网计算处理单元包括T个数据缓冲区、1个首微片暂存器、1个浮点加法器组和R个拼接单元,所述浮点加法器组由F个浮点加法器组成,其中,所述在网计算
处理单元的工作过程如下:将所有输入的待处理数据包截断为两部分,第一部分是数据包的首微片,第二部分是数据包的数据部分,将首微片暂存于首微片暂存器中,数据部分存入T个数据缓冲区;将数据缓冲区中的数据部分移入浮点加法器组,浮点加法器组提取数据部分的数值,将数值分别移入不同的浮点加法器输入端口,浮点加法器对数值进行浮点加法计算得到计算结果,将计算结果重新写入数据包的数据部分,进而将首微片暂存器中的首微片和新得到的数据部分移至拼接单元,所述拼接单元将首微片和新得到的数据部分拼接成一个新的数据包。
[0018]数据缓冲区用于缓存待处理的数据包,增大在网计算处理单元的吞吐量;首微片暂存器用于暂时存放数据包的首微片,确保数据包片首信息正确;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向多芯粒集成系统的支持在网计算的芯粒间网络路由器,其特征在于,所述芯粒间网络路由器包括N个输入端口、N个解析单元、1个控制单元、1个专用缓冲区、1个在网计算处理单元、N+1个路由计算单元、1个交叉开关、1个交叉开关仲裁器和N个输出端口,每个输入端口分别依次串联1个解析单元和1个路由计算单元,其中,N个输入端口包括本地输入端口和其他方向输入端口,本地输入端口通过网络接口NI与本地芯粒相连,其他方向输入端口通过网络链路与上游路由器的输出端口相连,每个输入端口有M个输入缓冲区,所述输入端口用于接收从上游路由器发出的数据包或从网络接口注入的数据包,接收后将数据包先暂存在输入缓冲区中,并将输入缓冲区中首个数据包传递至解析单元进行解析,其中,所述数据包包括源地址、目的地址、网算标识位、数据包序号值和数据部分;每个解析单元分别接收对应连接的输入端口的输入缓冲区传输的数据包,并读取该数据包的网算标识位和数据包序号值,若网算标识位的值为0,则表明该数据包不需要进行在网计算,解析单元将该数据包传输至路由计算单元;若网算标识位的值为1,则表明该数据包需要进行在网计算,解析单元需将该数据包的序号值传递给控制单元进行判断;所述控制单元用于控制解析单元和专用缓冲区,控制单元接收来自N个解析单元传入的数据包序号值,并和当前多芯粒集成系统维护的序号值进行比较,结合相同序号值的数据包的到达情况,对N个解析单元和专用缓冲区发出控制信号;所述专用缓冲区用于接收从N个解析单元传入的需要进行在网计算的数据包,并缓存这些数据包;所述在网计算处理单元接收专用缓冲区或N个解析单元传入的数据包,并对这些数据包进行在网计算处理,将处理后的数据包传输给路由计算单元;N+1个路由计算单元分别从对应连接的N个解析单元或在网计算处理单元接收数据包,对数据包进行路由计算,并将数据包传输至交叉开关,每个路由计算单元读取数据包头部的目的地址和网算标识位,通过XY路由算法计算出该数据包的输出端口号,所述XY路由算法的输入是数据包当前所在地址和目的地址,通过对上述两个地址位置坐标的比较,得到数据包的输出端口号,N+1个路由计算单元随即将相应的输出端口号和网算标识位的值传递至交叉开关仲裁器;所述交叉开关仲裁器分别从N+1个路由计算单元接收各数据包的输出端口号和网算标识位的值,计算这些数据包使用交叉开关的优先级,选择优先级最高的数据包优先使用交叉开关,并将选择结果作为仲裁信号发送至交叉开关;所述交叉开关分别从N+1个路由计算单元接收数据包,并接收交叉开关仲裁器的仲裁信号,根据仲裁信号选择1个路由计算单元传出的数据包并将该数据包传递至对应的输出端口;N个输出端口接收交叉开关传输的数据包,并将数据包加入输出队列,按照先到先服务原则向下游路由器或本地芯粒输出数据包。2.根据权利要求1所述的支持在网计算的芯粒间网络路由器,其特征在于,所述数据包中源地址表示该数据包由网络中哪一颗芯粒产生,所述目的地址表示该数据包由网络中哪一颗芯粒接收,所述网算标识位用于区分该数据包是否需要进行在网计算,所述数据包序号值表示该数据包的注入顺序,所述数据部分是该数据包要传输的具体数据内容。
3.根据权利要求1所述的支持在网计算的芯粒间网络路由器,其特征在于,所述在网计算处理单元包括T个数据缓冲区、1个首微片暂存器、1个浮点加法器组和R个拼接单元,所述浮点加法器组由F个浮点加法器组成,其中,所述在网计算处理单元的工作过程如下:将所有输入的待处理数据包截断为两部分,第一部分是数据包的首微片,第二部分是数据包的数据部分,将首微片暂存于首微片暂存器中,数据部分存入T个数据缓冲区;将数据缓冲区中的数据部分移入浮点加法器组,浮点加法器组提取数据部分的数值,将数值分别移入不同的浮点加法器输入端口,浮点加法器对数值进行浮点加法计算得到计算结果,将计算结果重新写入数据包的数据部分,进而将首微片暂存器中的首微片和新得到的数据部分移至拼接单元,所述拼接单元将首微片和新得到的数据部分拼接成一个新的数据包。4.根据权利要求1所述的支持在网计算的芯粒间网络路由器,其特征在于,所述交叉开关仲裁器包括1个网算识别单元、1个状态寄存器、1个优先级计算单元和1个决策单元,其中,所述交叉开关仲裁器的工作过程如下:网算识别单元接收从N+1个路由计算单元输入的网算标识位值,并根据该值判断相应的数据包是否为网算数据包,将网算判断结果存入状态寄存器;进而将从N+1个路由计算单元输入的各数据包的输出端口号存入状态寄存器,并将相应输出端口的输出缓冲区占用率也存入状态寄存器;优先级计算单元从状态寄存器读取各数据包的输出端口号、网算判断结果、输出端口的输出缓冲区占用率,结合轮询优先级策略计算每个数据包的交叉开关使用优先级,并将该优先级数值传递至决策单元,决策单元对各数据包的交叉开关使用优先级进行比较,将交叉开关使用权仲裁给优先级最高的数据包,并将仲裁信号传输至交叉开关。5.一种基于权利要求1至4任一所述的支持在网计算的芯粒间网络路由器的数据包在网处理方法,其特征在于,所述数据包在网处理方法包括以下步骤:S1、当数据包从N个输入端口进入芯粒间网络路由器,首先暂存于N个输入端口的输入缓冲区中,N个输入端口的输入缓冲区同时将输入缓冲区内的首个数据包传递至对应的解析单元进行解析;S2、N个解析单元接收对应输入端口的输入缓冲区传输的数据包...

【专利技术属性】
技术研发人员:王小航曹格
申请(专利权)人:华南理工大学
类型:发明
国别省市:

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

1