处理单元及流控制单元、以及相关方法技术

技术编号:32752648 阅读:62 留言:0更新日期:2022-03-23 18:47
本公开提供了一种处理单元及流控制单元、以及相关方法。该流控制单元位于发送端,包括:第一流量极值存储器,用于存储第一流量极值;第一流量消耗存储器,用于存储所述发送端已消耗的流量值;比较器,用于确定待发送数据的大小未超过所述第一流量极值与所述已消耗的流量值的差,允许待发送数据发送到接收端;第二流量产生器,将所述已消耗的流量值作为第二流量值,发送给位于接收端的流控制单元,以便该流控制单元根据所述第二流量值与接收端已从发送端接收的数据量的差,调整下一次发送到第一流量极值存储器的流量值。本公开实施例避免了由于数据中途丢失而使发送端没有更新的流量值可用来发出数据的情况,从而避免了死通信的发生。的发生。的发生。

【技术实现步骤摘要】
处理单元及流控制单元、以及相关方法


[0001]本公开涉及处理单元互连,更具体而言,涉及一种处理单元及流控制单元、以及相关方法。

技术介绍

[0002]人工智能(AI)芯片(如NPU,神经网络加速单元)专用于对神经网络进行硬件加速和机器学习处理。在部署AI芯片时经常需要将AI芯片互连,以形成更大的处理网络,从而应对需要更多计算资源的AI任务。
[0003]如果AI芯片通信时,发送端AI芯片向接收端AI芯片发送的数据量超过了接收端AI芯片的接收缓冲器容量,就会发生数据溢出。因此,必须进行流控制。现有技术的一种流控制技术采用基于事先通知允许的流量值的机制。接收端AI芯片的接收缓冲器中的数据移入存储器后,这部分数据在接收缓冲器中不存在了,就可以根据该部分数据的大小(从接收缓冲器转移到接收端存储器的数据量),向发送端AI芯片发送表示允许其向自己发送多少分组的数据的流量值。随着接收端AI芯片使用过程中不断从接收缓冲器向存储器转移数据量,不断更新向发送端AI芯片发出的流量值。发送端AI芯片每当发出数据,就相当于消耗了对应的流量值。每次发送端AI芯片在向接收端AI芯片发送数据之前,都检查要发出的数据大小是否不大于流量极值与已消耗流量值的差,如果是,才能发出数据。
[0004]上述基于事先通知允许的流量值的机制虽然减少了数据溢出,但有发生死通信的风险。如果发送端AI芯片发送到接收端AI芯片的数据在传输中丢失了,由于接收端AI芯片没有接收到此数据,就不会在接收缓冲器中缓冲,更不会从接收缓冲器移至存储器,进而触发向发送端AI芯片更新流量值。这样,向发送端AI芯片释放的总流量值就少于预期。如果越来越多的数据途中丢失,发送端AI芯片接收不到更新的流量值,就无法再发送数据,陷入死通信。

技术实现思路

[0005]有鉴于此,本公开旨在避免由于数据中途丢失而使发送端没有更新的流量值可用来发出数据的情况,从而避免死通信的发生。
[0006]为了达到这个目的,根据本公开的一方面,本公开提供了一种流控制单元,位于发送端,包括:
[0007]第一流量极值存储器,用于存储第一流量极值,所述第一流量极值根据位于接收端的流控制单元发送的第一流量值来更新,所述第一流量值表示所述接收端允许进一步接收的数据量;
[0008]第一流量消耗存储器,用于存储所述发送端已消耗的流量值,所述已消耗的流量值表示所述发送端已发送至所述接收端的数据量;
[0009]比较器,用于确定待发送数据的大小未超过所述第一流量极值与所述已消耗的流量值的差,允许所述待发送数据被发送到所述接收端;
[0010]第二流量产生器,将所述已消耗的流量值作为第二流量值,发送给所述位于接收端的流控制单元,以便所述位于接收端的流控制单元根据所述第二流量值与所述接收端已从所述发送端接收的数据量的差,调整下一次发送到所述第一流量极值存储器的第一流量值。
[0011]可选地,所述发送端包括发送端处理单元,所述流控制单元位于所述发送端处理单元中;所述接收端包括接收端处理单元,所述接收端的流控制单元位于所述接收端处理单元中。
[0012]可选地,该流控制单元还包括:
[0013]第一流量值解析器,用于从位于接收端的流控制单元接收到的当前第一流量值通知分组中解析出流量值;
[0014]前一第一流量值缓冲器,缓存从位于接收端的流控制单元接收到的前一第一流量值通知分组中解析出的流量值;
[0015]减法器,用于用从当前第一流量值通知分组中解析出的流量值,减去所述前一第一流量值缓冲器缓存的流量值,得到流量值差值;
[0016]第一加法器,用于将所述流量值差值累加到第一流量极值存储器存储的第一流量极值上。
[0017]可选地,在所述减法器得到所述流量值差值之后,所述流量值解析器用从当前第一流量值通知分组中解析出的流量值,更新所述前一第一流量值缓冲器。
[0018]可选地,该流控制单元还包括:第二加法器,用于在向所述接收端发送数据之后,将发送的数据大小累加到第一流量值消耗存储器存储的已消耗的流量值上。
[0019]可选地,第二流量值产生器将所述第二流量值放在第二流量值通知分组中,发送到所述接收端。
[0020]可选地,所述第一流量值解析器对从接收端接收到的当前第一流量值通知分组进行传输错误校验,如校验错误,丢弃该当前第一流量值通知分组。
[0021]可选地,所述当前第一流量值通知分组包括第一流量值初始通知分组、和第一流量值更新通知分组,所述发送端芯片流控制单元还包括第一流量值初始确认分组产生器,用于在第一流量值极值存储器存储所述第一流量值初始通知分组通知的流量值后,产生向所述接收端发送的第一流量值初始确认分组。
[0022]可选地,所述发送端向所述接收端发送的数据、所述第一流量值初始通知分组、所述第一流量值更新通知分组、所述第一流量值初始确认分组、所述第二流量值通知分组是以流量值消息分组格式传输的,所述流量值消息分组格式包括目的地芯片地址、源芯片地址、分组类型、通知的流量值、填充位、传输错误校验位。
[0023]可选地,所述第一流量极值存储器存储的第一流量极值包括与多个接收端的虚拟通道分别对应的多个第一流量极值;所述第一流量消耗存储器存储发送端针对所述多个接收端的虚拟通道分别已消耗的流量值;所述比较器确定数据要发送到的接收端的虚拟通道,如果待发送数据大小未超过所述接收端的虚拟通道对应的流量极值与该接收端的虚拟通道对应的已消耗的流量值的差,允许该数据发送到所述接收端的虚拟通道;第二流量值产生器将针对所述多个接收端的虚拟通道分别已消耗的流量值分别作为与所述多个接收端的虚拟通道各自对应的第二流量值,以分别发送给所述多个接收端;所述通知的第二流
量值包括多个接收端的虚拟通道对应的第二流量值。
[0024]可选地,所述流量值或第二流量值的单位设定等于64字节,第一流量值初始通知分组中的初始流量值设定为1440个流量值单位,所述第一流量极值存储器和所述第一流量值消耗存储器存储的最大值为4096个流量值单位,超过最大值后复位存储。
[0025]可选地,发送所述流量值或第二流量值的周期是所述发送端向所述接收端发送数据的周期的N倍,N为大于等于2的正整数。
[0026]可选地,N=8或N=16。
[0027]根据本公开的一方面,提供了一种处理单元,位于发送端,包括:存储器;直接存储器访问模块,用于控制所述所述存储器的直接访问;多个端口;交换模块,控制所述直接存储器访问模块与所述多个端口的连接,其中,所述多个端口中的至少一个端口包括根据权利要求1-13所述的发送端芯片流控制单元、用于进行介质访问控制MAC的MAC层、以及将待发送数据进行串行化或对接收的数据进行解串行化的串行及解串器。
[0028]根据本公开的一方面,提供了一种流控制单元,位于接收端,包括:
[0029]接收数据缓冲器,用于缓冲从发送端接收的数据;
[0030]第二流量值存储器,用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流控制单元,位于发送端,包括:第一流量极值存储器,用于存储第一流量极值,所述第一流量极值根据位于接收端的流控制单元发送的第一流量值来更新,所述第一流量值表示所述接收端允许进一步接收的数据量;第一流量消耗存储器,用于存储所述发送端已消耗的流量值,所述已消耗的流量值表示所述发送端已发送至所述接收端的数据量;比较器,用于确定待发送数据的大小未超过所述第一流量极值与所述已消耗的流量值的差,允许所述待发送数据被发送到所述接收端;第二流量产生器,将所述已消耗的流量值作为第二流量值,发送给所述位于接收端的流控制单元,以便所述位于接收端的流控制单元根据所述第二流量值与所述接收端已从所述发送端接收的数据量的差,调整下一次发送到所述第一流量极值存储器的流量值。2.根据权利要求1所述的流控制单元,其中,所述发送端包括发送端处理单元,所述流控制单元位于所述发送端处理单元中;所述接收端包括接收端处理单元,所述接收端的流控制单元位于所述接收端处理单元中。3.根据权利要求1所述的流控制单元,还包括:第一流量值解析器,用于从位于接收端的流控制单元接收到的当前第一流量值通知分组中解析出流量值;前一第一流量值缓冲器,缓存从位于接收端的流控制单元接收到的前一第一流量值通知分组中解析出的流量值;减法器,用于用从当前第一流量值通知分组中解析出的流量值,减去所述前一第一流量值缓冲器缓存的流量值,得到流量值差值;第一加法器,用于将所述流量值差值累加到第一流量极值存储器存储的第一流量极值上。4.根据权利要求3所述的流控制单元,其中,在所述减法器得到所述流量值差值之后,所述流量值解析器用从当前第一流量值通知分组中解析出的流量值,更新所述前一第一流量值缓冲器。5.根据权利要求1所述的流控制单元,还包括:第二加法器,用于在向所述接收端发送数据之后,将发送的数据大小累加到第一流量值消耗存储器存储的已消耗的流量值上。6.根据权利要求1所述的流控制单元,其中,第二流量值产生器将所述第二流量值放在第二流量值通知分组中,发送到所述接收端。7.根据权利要求3所述的流控制单元,其中,所述第一流量值解析器对从接收端接收到的当前第一流量值通知分组进行传输错误校验,如校验错误,丢弃该当前第一流量值通知分组。8.根据权利要求3所述的流控制单元,其中,所述当前第一流量值通知分组包括第一流量值初始通知分组、和第一流量值更新通知分组,所述发送端芯片流控制单元还包括第一流量值初始确认分组产生器,用于在第一流量值极值存储器存储所述第一流量值初始通知分组通知的流量值后,产生向所述接收端发送的第一流量值初始确认分组。9.根据权利要求6或8所述的流控制单元,其中,所述发送端向所述接收端发送的数据、
所述第一流量值初始通知分组、所述第一流量值更新通知分组、所述第一流量值初始确认分组、所述第二流量值通知分组是以流量值消息分组格式传输的,所述流量值消息分组格式包括目的地芯片地址、源芯片地址、分组类型、通知的流量值、填充位、传输错误校验位。10.根据权利要求9所述的流控制单元,其中,所述第一流量极值存储器存储的第一流量极值包括与多个接收端的虚拟通道分别对应的多个第一流量极值;所述第一流量消耗存储器存储发送端针对所述多个接收端的虚拟通道分别已消耗的流量值;所述比较器确定数据要发送到的接收端的虚拟通道,如果待发送数据大小未超过所述接收端的虚拟通道对应的流量极值与该接收端的虚拟通道对应的已消耗的流量值的差,允许该数据发送到所述接收端的虚拟通道;第二流量值产生器将针对所述多个接收端的虚拟通道分别已消耗的流量值分别作为与所述多个接收端的虚拟通道各自对应的第二流量值,以分别发送给所述多个接收端;所述通知的第二流量值包括多个接收端的虚拟通道对应的第二流量值。11.根据权利要求9所述的流控制单元,其中,所述流量值或第二流量值的单位设定等于64字节,第一流量值初始通知分组中的初始流量值设定为1440个流量值单位,所述第一流量极值存储器和所述第一流量值消耗存储器存储的最大值为4096个流量值单位,超过最大值后复位存储。12.根据权利要求1所述的流控制单元,其中,发送所述流量值或第二流量值的周期是所述发送端向所述接收端发送数据的周期的N倍,N为大于等于2的正整数。13.根据权利要求1所述的流控制单元,其中,N=8或N=16。14.一种处理单元,位于发送端,包括:存储器;直接存储器访问模块,用于控制所述所述存储器的直接访问;多个端口;交换模块,控制所述直接存储器访问模块与所述多个端口的连接,其中,所述多个端口中的至少一个端口包括根据权利要求1-13所述的发送端芯片流控制单元、用于进行介质访问控制MAC的MAC层、以及将待发送数据进行串行化或对接收的数据进行解串行化的串行及解串器。15.一种流控制单元,位于接收端,包括:接收数据缓冲器,用于缓冲从发送端接收的数据;第二流量值存储器,用于存储从发送端接收的第二流量值;已接收数据大小存储器,用于存储从发送端已接收的数据大小;差计算单元,用于计算所述第二流量值存储器中存储的第二流量值和所述已接收数据大小存储器存储的已接收到的数据大小的差;第一流量值分配单元,用于在根据所述第二流量值与已接收到的数据大小的差、以及所述接收数据缓冲器发送到接收端存储器的数据量,更新发送给发送端的流量值。16.根据权利要求15所述的流控制单元,其中,所述接收端包括接收端处理单元,所述流控制单元位于所述接收端处理单元中;所述发送端包括发送端处理单元,所述发送端的流控制单元位于所述发送端处理单元中。17.根据权利要求15所述的流控制单元,其中,所述已接收数据大小存储器存储的初始
值设置为0,所述流控制单元还包括:第三加法器,用于响应于从所述发送端接收到数据,将接收的数据大小累加到所述已接收数据大小存储器存储的值上。18.根据权利要求17所述的流控制单元,其中,所述第三加法器在所述差计算单元计算出所述差后,将所述差累加到所述已接收数据大小存储器存储的值上。19.根据权利要求15所述的流控制单元,还包括:第五加法器,用于将所述第二流量值与已接收到的数据大小的差、以及所述接收数据缓冲器发送到接收端存储器的数据量...

【专利技术属性】
技术研发人员:郭向东严青林英姿吴炜肖德宇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1