路由器输入仲裁方法、装置、设备及存储介质与流程

文档序号:36312150发布日期:2023-12-07 16:44阅读:30来源:国知局
路由器输入仲裁方法与流程

本发明涉及复杂系统集成电路设计的,特别是涉及路由器输入仲裁方法、装置、设备及存储介质。


背景技术:

1、片上系统soc的发展趋势为片上多核mpsoc(multi processor system on chip),然而传统的基于总线的集中式互联架构很难满足如今的需求,在片上网络noc中,路由器节点之间通过局部互连线连接,每一个路由器节点通过总线接口与本地ip核相连接,源路由器节点和目的路由器节点之间的数据通讯需要经过多个跳步实现,而每个路由器节点对数据路由的选择以及效率决定了关键路径延迟,影响每一跳以及整个网络的延迟,所以路由器节点的微架构非常重要,而其中的路由选择以及输入仲裁这一部分的方法不同也会影响整体路由器节点的效率,从而影响整个网络的吞吐量。

2、目前路由选择以及输入分配是根据数据包头的路由源节点和目的节点来选择下一跳路由节点。每个输入口可能有多个缓冲区代表不同的虚拟通道,因此在路由选择和输入分配时需要处理多个缓冲区的数据包头。常见做法是将不同缓冲区的不同路由节点请求存储并发送至输出仲裁单元,由后者选择真正输出的数据包。然而,现有技术中将所有路由请求存储下来会导致输出仲裁的处理困难,同时也会降低整个路由节点和网络的性能。此外,输出口的处理顺序一般是固定的,当多个路由节点输出的数据大概率是同一方向时,可能会导致拥塞,进而降低网络性能。


技术实现思路

1、本发明要解决的技术问题是:提供路由器输入仲裁方法、装置、设备及存储介质,能提升网络性能,减少网络拥堵的情况,

2、为了解决上述技术问题,本发明提供了路由器输入仲裁方法,包括:

3、当检测到任一虚拟通道缓冲区中存在数据包输入时,获取所述数据包的包头数据,基于所述包头数据,计算所述数据包的下一跳路由节点及下一跳路由节点数量;

4、在确定所述下一跳路由节点数量大于1时,从多个下一跳路由节点中随机选取一个下一跳路由节点,得到虚拟通道缓冲区对应的第一下一跳路由节点请求,并将所述第一下一跳路由节点请求输入到仲裁单元中;

5、在确定所述仲裁单元中存在多个虚拟通道缓冲区对应的第一下一跳路由节点请求时,基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,得到下一跳路由节点请求仲裁结果。

6、在一种可能的实现方式中,当检测到任一虚拟通道缓冲区中存在数据包输入前,还包括:

7、获取数据包的虚拟通道信息,基于所述虚拟通道信息,确定所述数据包对应的目标虚拟通道缓冲区;

8、基于路由节点的物理输入口将所述数据包输入到所述目标虚拟通道缓冲区中。

9、本发明提供的路由器输入仲裁方法,还包括:在确定所述下一跳路由节点数量等于1时,将所述下一跳路由节点作为虚拟通道缓冲区对应的第一下一跳路由节点请求,并将所述第一下一跳路由节点请求输入到仲裁单元中。

10、在一种可能的实现方式中,获取所述数据包的包头数据,基于所述包头数据,计算所述数据包的下一跳路由节点及下一跳路由节点数量,具体包括:

11、获取所述数据包的包头数据,其中,所述包头数据包括源路由节点和目标路由节点;

12、基于所述源路由节点和所述目标路由节点,计算所述数据包的下一跳路由节点;

13、并对计算得到的所述下一跳路由节点进行数量统计,得到下一跳路由节点数量。

14、在一种可能的实现方式中,所述预设的缓冲区优先级,具体包括:

15、对每个虚拟通道缓冲区设置唯一对应的优先级,基于所述优先级的大小对所述每个虚拟通道缓冲区进行排序,得到虚拟通道缓冲区序列;

16、基于所述虚拟通道缓冲区序列,得到缓冲区优先级。

17、在一种可能的实现方式中,基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,得到下一跳路由节点请求仲裁结果,具体包括:

18、获取所有第一下一跳路由节点请求对应的虚拟通道缓冲区,基于所述缓冲区优先级,确定所述所有第一下一跳路由节点请求对应的第一优先级;

19、选取第一优先级最大值对应的第一下一跳路由节点请求作为下一跳路由节点请求仲裁结果。

20、本发明还提供了路由器输入仲裁装置,包括:下一跳路由节点计算模块、随机模块和优先级仲裁模块;

21、其中,所述下一跳路由节点计算模块,用于当检测到任一虚拟通道缓冲区中存在数据包输入时,获取所述数据包的包头数据,基于所述包头数据,计算所述数据包的下一跳路由节点及下一跳路由节点数量;

22、所述随机模块,用于在确定所述下一跳路由节点数量大于1时,从多个下一跳路由节点中随机选取一个下一跳路由节点,得到虚拟通道缓冲区对应的第一下一跳路由节点请求,并将所述第一下一跳路由节点请求输入到仲裁单元中;

23、所述优先级仲裁模块,用于在确定所述仲裁单元中存在多个虚拟通道缓冲区对应的第一下一跳路由节点请求时,基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,得到下一跳路由节点请求仲裁结果。

24、本发明提供的路由器输入仲裁装置,还包括:数据包输入模块;

25、其中,所述数据包输入模块,用于获取数据包的虚拟通道信息,基于所述虚拟通道信息,确定所述数据包对应的目标虚拟通道缓冲区;基于路由节点的物理输入口将所述数据包输入到所述目标虚拟通道缓冲区中。

26、在一种可能的实现方式中,所述随机模块,还用于在确定所述下一跳路由节点数量等于1时,将所述下一跳路由节点作为虚拟通道缓冲区对应的第一下一跳路由节点请求,并将所述第一下一跳路由节点请求输入到仲裁单元中。

27、在一种可能的实现方式中,所述下一跳路由节点计算模块,用于获取所述数据包的包头数据,基于所述包头数据,计算所述数据包的下一跳路由节点及下一跳路由节点数量,具体包括:

28、获取所述数据包的包头数据,其中,所述包头数据包括源路由节点和目标路由节点;

29、基于所述源路由节点和所述目标路由节点,计算所述数据包的下一跳路由节点;

30、并对计算得到的所述下一跳路由节点进行数量统计,得到下一跳路由节点数量。

31、在一种可能的实现方式中,所述预设的缓冲区优先级,具体包括:

32、对每个虚拟通道缓冲区设置唯一对应的优先级,基于所述优先级的大小对所述每个虚拟通道缓冲区进行排序,得到虚拟通道缓冲区序列;

33、基于所述虚拟通道缓冲区序列,得到缓冲区优先级。

34、在一种可能的实现方式中,所述优先级仲裁模块,用于基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,得到下一跳路由节点请求仲裁结果,具体包括:

35、获取所有第一下一跳路由节点请求对应的虚拟通道缓冲区,基于所述缓冲区优先级,确定所述所有第一下一跳路由节点请求对应的第一优先级;

36、选取第一优先级最大值对应的第一下一跳路由节点请求作为下一跳路由节点请求仲裁结果。

37、本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的路由器输入仲裁方法。

38、本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的路由器输入仲裁方法。

39、本发明实施例路由器输入仲裁方法、装置、设备及存储介质,与现有技术相比,具有如下有益效果:

40、通过当检测到任一虚拟通道缓冲区中存在数据包输入时,获取所述数据包的包头数据,基于所述包头数据,计算所述数据包的下一跳路由节点及下一跳路由节点数量;在确定所述下一跳路由节点数量大于1时,从多个下一跳路由节点中随机选取一个下一跳路由节点,得到虚拟通道缓冲区对应的第一下一跳路由节点请求,并将所述第一下一跳路由节点请求输入到仲裁单元中;在确定所述仲裁单元中存在多个虚拟通道缓冲区对应的第一下一跳路由节点请求时,基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,得到下一跳路由节点请求仲裁结果;与现有技术相比,本发明的技术方案通过对虚拟通道缓冲区中数据包的多个下一条路由节点进行随机选取,能见降低各个数据包传输中路由节点的路径的重叠概率,减少网络拥塞情况的发生,且后续基于预设的缓冲区优先级,对所有第一下一跳路由节点请求进行仲裁,能降低仲裁的难度和复杂性,时序更容易达到高性能芯片的要求,提升整体网络的效率和性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1