CN117135107A - 一种网络通信拓扑系统、路由方法、设备及介质 - Google Patents

一种网络通信拓扑系统、路由方法、设备及介质 Download PDF

Info

Publication number
CN117135107A
CN117135107A CN202311390726.6A CN202311390726A CN117135107A CN 117135107 A CN117135107 A CN 117135107A CN 202311390726 A CN202311390726 A CN 202311390726A CN 117135107 A CN117135107 A CN 117135107A
Authority
CN
China
Prior art keywords
routing
virtual output
node
output queue
routing node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311390726.6A
Other languages
English (en)
Other versions
CN117135107B (zh
Inventor
陈静静
孙华锦
李婧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311390726.6A priority Critical patent/CN117135107B/zh
Publication of CN117135107A publication Critical patent/CN117135107A/zh
Application granted granted Critical
Publication of CN117135107B publication Critical patent/CN117135107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于计算机领域,具体涉及一种网络通信拓扑系统、路由方法、设备及介质。其中,系统包括:多个路由节点,每个路由节点与基于其自身的编号序数按照按位取反的方式得到的多个编号序数所对应的其他路由节点连接,路由节点包含多个输入端口和多个输出端口以及若干虚拟输出队列组,虚拟输出队列组与输入端口一一对应,其中,路由节点配置为对路由节点发往不同的输出端口的路由请求根据所要发往的输出端口在虚拟输出队列组中分别缓存,并将缓存的路由请求经由对应的输出端口发送到与该输出端口对应的下一路由节点。通过本发明提出的一种网络通信拓扑系统,可以有效避免传统实现方式中出现的队首阻塞的情况。极大的提高路由节点的路由性能。

Description

一种网络通信拓扑系统、路由方法、设备及介质
技术领域
本发明属于计算机领域,具体涉及一种网络通信拓扑系统、路由方法、设备及介质。
背景技术
随着互联网的快速普及与发展以及卫星互联网星座计划的不断部署、更多的用户终端接入网络,衍生出包含人们生产和生活各个领域的互联网应用,互联网中的流量已呈现爆炸式增长的趋势。光纤技术与星间激光通信技术的发展与应用使得信息传输网络的瓶颈已转移至互联网中交换结点的交换设备,如交换机与路由器等。这些交换设备的核心技术是交换技术,而交换技术又包括交换网络和调度算法两方面。为了提升信息交换网络性能,满足现今不断涌现的新型应用与业务需求,需要对更大容量、更好性能的交换网络和与之适配的高性能调度算法进行研究。
典型的拓扑结构代表是Butterfly结构。在Butterfly网络拓扑结构中,每个路由器都与其邻居通过双向链路或者两个单向链路(每个负责一个方向)相连,这些链路称为通道。
然而,如图1所示,传统的Butterfly网络拓扑结构中在网络中的节点之间以及节点之内的端口之间都分别存在着大量的节点冗余和端口闲置的情况。
因此,亟需一种有效的网络拓扑结构和/或调度算法来解决上述问题。
发明内容
为解决上述问题,本发明提出一种网络通信拓扑系统,包括:
多个路由节点,每个所述路由节点按照预定连接规则与多个其他路由节点建立连接,所述预定连接规则为:
确定组建网络拓扑的终端节点个数,并通过终端节点个数乘以预定比例得到服务所述终端节点的路由节点个数;
根据所述路由节点个数对每个路由节点分配编号序数,并将每个路由节点的编号转换成二进制形式;
对于每个路由节点,将其自身的二进制形式的编号序数进行逐位取反得到多个目标编号序数;
确定多个目标编号序数所对应的多个目标路由节点,将所述路由节点与所述多个目标路由节点建立链路连接;
所述路由节点包含多个输入端口和多个输出端口以及若干虚拟输出队列组,所述虚拟输出队列组与输入端口一一对应,
其中,所述路由节点配置为对所述路由节点发往不同的输出端口的路由请求,根据所述路由请求所要发往的输出端口在所述虚拟输出队列组中分别缓存,并将缓存的所述路由请求经由对应的输出端口发送到与该输出端口对应的下一路由节点。
在本发明的一些实施方式中,虚拟输出队列组包括:
多个虚拟输出队列,所述多个虚拟输出队列分别与所述路由节点的多个输出端口一一对应,配置为缓存所述虚拟输出队列组收到的发往不同输出端口的路由请求。
在本发明的一些实施方式中,路由节点还包括:
控制模块,所述控制模块配置为:确定路由请求的路径序数,
判断所述路径序数中的预定区域的所有数据位的值是否全为预定值,
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;将所述多个路径编号序数对应的路由节点作为多个候选路由节点;基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,选择通信时间最短的候选路由节点作为下一路由节点;将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并发送到所述下一路由节点。
在本发明的一些实施方式中,路由节点还包括:
调度模块,所述调度模块与所述多个虚拟输出队列组进行通信,配置为将路由请求在多个虚拟输出队列组之间进行调度。
在本发明的一些实施方式中,路由节点还包括:
多个轮询仲裁器,每个所述轮询仲裁器位于所述路由节点的输出端口,配置为对不同的虚拟输出队列组中的虚拟输出队列发出的使用所述输出端口的路由请求进行仲裁。
在本发明的一些实施方式中,控制模块进一步配置为:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的输出端口以及相应候选节点作为下一路由节点。
在本发明的一些实施方式中,调度模块进一步配置为:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
在本发明的一些实施方式中,控制模块进一步配置为:获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本发明的一些实施方式中,控制模块进一步配置为:基于每个虚拟输出队列中待完成的路由请求数量和请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
在本发明的一些实施方式中,控制模块进一步配置为:基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本发明的一些实施方式中,控制模块进一步配置为:将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点。
本发明的另一方面还提出一种路由方法,包括:
确定路由请求的路径序数,判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点;
基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由节点;
将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并经由对应的输出端口发送到与该输出端口对应的所述下一路由节点。
在本发明的一些实施方式中,确定路由请求的路径序数的步骤包括:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
在本发明的一些实施方式中,确定路由请求的路径序数的步骤还包括:
响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤还包括:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
通过调度模块将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于每个虚拟输出队列中待完成的路由请求数量和请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间。
在本发明的一些实施方式中,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数的步骤包括:
将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
在本发明的一些实施方式中,基于所述路径序数中序数不为预定值的位置对当前路由节点的编号序数中相同位置上的序数进行多次按位取反得到多个候选路由节点的步骤包括:
判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点。
本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种网络通信拓扑系统,每个路由节点与路由节点之间于其自身的编号序数按照按位取反的方式得到的多个编号序数所对应的其他路由节点连接,并在路由节点内部设置虚拟输出队列组,且虚拟输出对立组中的每个虚拟输出队列分别与一个输出端口对应,实现在每个路由节点的输入的路由请求可以根据不同的目的输出端口进行独立缓存,同时又基于每个虚拟输出队列中已有的路由请求的排队任务数量确定路由请求缓存的虚拟输出队列,可以有效避免传统实现方式中只有一个虚拟输出队列的情况下所有的路由请求全部进入一个先入先出虚拟输出队列时,因队手的路由请求的端口出现繁忙,队首的路由请求无法被执行等候在虚拟输出队列的队首,整个队列中后续的所有路由请求无论其请求的端口是否空闲都无法被执行,即出现的队首阻塞的情况。极大的提高路由节点的路由性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的Butterfly网络拓扑结构的结构示意图;
图2为本发明实施例提供的改进的网络通信拓扑结构示意图;
图3为本发明实施例提供的路由节点的结构示意图;
图4为本发明实施例提供的路由节点内的虚拟输出队列组的结构示意图;
图5为本发明实施例提供的路由节点的结构示意图;
图6为本发明实施例提供的路由节点的结构示意图;
图7为本发明实施例提供的路由节点的结构示意图;
图8为本发明实施例提供的路由节点的结构示意图;
图9为本发明实施例提供的路由方式的交互示意图;
图10为本发明实施例提供的一种路由方法的方法流程示意图;
图11为本发明实施例提供的一种计算机设备的结构示意图;
图12为本发明实施例提供的一种计算机可读存储介质的结构示意图;
图13为本发明实施例提供的路由节点上的终端节点数据互通示意图;
图14为本发明实施例提供的改进后的Butterfly网络拓扑结构的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明只旨在解决传统的Butterfly网络拓扑结构中在网络中的节点之间以及节点之内的端口之间都分别存在着大量的节点冗余和端口闲置的问题。
如图1所示,图1中方形标记表示Butterfly网络拓扑结构中的终端节点,该终端节点根据具体的应用场景可以是常见的互联网络中的计算机、移动终端等设备;也可以是在集成芯片中相应的计算单元。即Butterfly网络拓扑结构可以根据具体的应用场景具体实现。图1中圆形标记表示Butterfly网络拓扑结构中路由节点,同样根据具体的应用场景路由节点的形式也存在区别,例如传统的互联网中可以是相应的路由器或交换机,在集成电路芯片领域可以是芯片中具体的逻辑电路。
互连网络并不仅仅局限于应用在互联网里,互联网络中的一个终端节点可以是具有通信需求的任何系统或一组单元,它可以是一个处理器,处理器与存储器,图形处理单元,存储控制器,I/O接口等。传统互连网络大多数都是直接互连网络,如k元n立方体结构就是直接互连网络的典型代表,网络中每个终端节点上包含一个路由器,用来实现节点之间消息传递。间接互连网络将终端节点和路由器分离,路由器可以被用来作为一个独立的通信装置,在Butterfly网络拓扑结构中,每个路由器都与其邻居通过双向链路或者两个单向链路(每个负责一个方向)相连,这些链路称为通道。需要特别指出的是,随着互连的节点数的增多,整个系统的聚合带宽也将随之增大。互连拓扑结构通常有以下四个主要属性定义:
(1)节点度数:将一个节点与其邻居节点连接起来的通道的数量,或者说节点中路由器的端口数。
(2)网络直径:网络中两个节点之间最短距离的最大值。
(3)链路数:整个网络的链路数量,因为拓扑结构是确定的则链路数也是随之确定的。
(4)二分带宽:将网络中所有节点分成两个等分的子网,其最小割集对应的链路带宽就是二分带宽。二分带宽越高,网络通信能力越强。
从图1可以看出,传统的Butterfly网络拓扑结构在负载32个终端节点的场景下,在实现节点度数、网络直径、链路数、二分带宽等性能条件下,需要90个路由节点并且搭建5层路由网络。进一步导致其实现的网络及其复杂。并且每层的路由节点数量都是一样的,路径唯一性及负载不均衡进一步导致其及其容易阻塞。
如图2所示,为解决上述问题,本发明提出一种网络通信拓扑系统,包括:
多个路由节点1,每个所述路由节点1按照预定连接规则与多个其他路由节点建立连接,所述预定连接规则为:
确定组建网络拓扑的终端节点个数,并通过终端节点个数乘以预定比例得到服务所述终端节点的路由节点个数;
根据所述路由节点个数对每个路由节点分配编号序数,并将每个路由节点的编号转换成二进制形式;
对于每个路由节点,将其自身的二进制形式的编号序数进行逐位取反得到多个目标编号序数;
确定多个目标编号序数所对应的多个目标路由节点,将所述路由节点与所述多个目标路由节点建立链路连接;
所述路由节点包含多个输入端口和多个输出端口以及若干虚拟输出队列组,所述虚拟输出队列组与输入端口一一对应,
其中,所述路由节点配置为对所述路由节点发往不同的输出端口的路由请求,根据所述路由请求所要发往的输出端口在所述虚拟输出队列组中分别缓存,并将缓存的所述路由请求经由对应的输出端口发送到与该输出端口对应的下一路由节点。
在本发明的一些实施例中,图2中每个方框代表一个路由节点,方框中的编号代表路由节点的编号序数,每个路由节点分别与其编号序数的二进制形式按位取反后得到的编号序数所代表示的路由节点相连。例如图中编号序数为0的路由节点按照所有路由节点的个数,表示该路由节点的二进制形式为0000,则对0000进行逐位或随机按位遍历取反可分别得到0001,0010,0100,1000,0001的编号序数代表第2个路由节点,即图中编号为1(编号序数从0开始,下文描述时将编号序数来描述)的路由节点,如图2所示,编好序数为0的路由节点与编号序数为1的序数节点进行连接,同样地,0010代表编号序数为2的路由节点,0100代表编号序数为4的路由节点,1000代表编号序数为8的路由节点,进一步,从图2中可以看出路由节点0分别与路由节点1、2、4和8建立连接。
在本发明的一些实施例中,在确定编号序数为0000的路由节点所要连接的其他路由节点时,可采用对该编号序数进行多位取反的方式,例如同时取反3位,即第一次对前三位取反得到1110、第二次将取反的“窗口”向右滑动得到0111,第三次取反则将取反的“窗口”再向右滑动,不足的将编号序数按序补位,即得到1011,如此,则第四次取反则得到1101。如此方式也可以得到四个连接的路由节点的编号,即分别为1110、01111、1011和1101。
在本发明的一些实施方式中,对编号序数取反并不局限于对应的连续取反,同样也可以进行隔位取反,或者按照相同规律进行的一位或多位进行取反得到对应的路由节点的编号序数。
进一步,如图3所示,与传统的路由节点不同,本申请在每个路由节点中为理由节点的每个输入端口分别设立一个虚拟输出队列组,即每个输入端口独享一个虚拟输出队列组。每个输入端口的路由请求都会分别缓存到输入端口对应的虚拟输出队列组中。同时根据虚拟输出队列组中缓存的路由请求可选择的输出端口的选择合适的输出端口发出。
进一步,如图14所示,图14使出了本发明提出的一种网络通信拓扑系统的另外一种形状的表现结构,同样,图中的方框即方形标记表示终端节点,圆形标记表示路由节点,由于空间问题,仅绘出其中4个路由节点的所连接的8个中终端节点。
在本发明的一些实施方式中,虚拟输出队列组包括:
多个虚拟输出队列,所述多个虚拟输出队列分别与所述路由节点的多个输出端口一一对应,配置为缓存所述虚拟输出队列组收到的发往不同输出端口的路由请求。
进一步,如图4所示,每个虚拟输出队列组中均包含多个虚拟输出队列,每个虚拟输出队列分别与除了该虚拟输出队列组对应的输入端口之外的输出端口一一对应。即如图5所示,图5示出了路由节点1内部的虚拟输出队列组及其内部的虚拟输出队列,input0表示路由节点0向路由节点1发送数据的数据端口,在路由节点1上可以视为来自路由节点0的输入端口,即命名为input0,input0对应的虚拟队列组中包含四个虚拟输出队列,即图中的VOQ1、VOQ3、VOQ5和VOQ9,VOQ(Virtual Output Queuing)表示虚拟输出队列。来自input0的数据不会被转发到Output0(Output0、Output1、Output3、Output5、Output9分别表示输出向路由节点0,路由节点1(其他路由节点向路由节点1发送数据)、路由节点3、路由节点5、路由节点9)的输出端口。图5示出的路由节点1的内部结构中input0不会向output0发送数据,即自身内部的数据转发无需通过路由机制。
进一步,对于每个虚拟输出队列组,其中的虚拟输出队列分别与除其自身之外的其他输出端口进行一一对应。
在本发明的一些实施方式中,路由节点还包括:
控制模块,所述控制模块配置为:确定路由请求的路径序数,
判断所述路径序数中的预定区域的所有数据位的值是否全为预定值,
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;将所述多个路径编号序数对应的路由节点作为多个候选路由节点;基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,选择通信时间最短的候选路由节点作为下一路由节点;将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并发送到所述下一路由节点。
在本发明的一些实施例中,如图6所示,路由节点中还设有控制模块,控制模块,控制模块用于执行路由节点的路由逻辑。具体地,确定路由请求的路径序数,路径序数是与路由节点的编号序数具有相同位数的二进制数据,最初是由根据源路由节点的编号序数和目标路由节点的编号序数的二进制数按位异或得到,路径序数中值为1的个数表示路由请求除了自身之外所经过的路由节点个数。
进一步,当路由节点确定路由请求的路径序数之后,确定路径序数中为1的数据位的位置,然后将该路由节点二进制形式的编号序数中相同位置的数据按位取反,即0取1,1取0得到多个编号序数,多个编号序数对应的数值即表示该理由请求的可经过的输出端口,即对应的候选路由节点,判断该路由请求的输入端口对应的虚拟输出队列组中的与可经过的输出端口对应的虚拟输出队列中的路由请求个数最少,将该路由请求发送到路由请求最少的虚拟输出队列中(前提是该虚拟输出队列所对应的端口的编号序数必须和上述得到多个候选路由节点中的一个)。然后通过该虚拟输出队列按照先入先出的顺序将该路由请求发送到对应的下一个路由节点。
进一步,在选择其中一个候选节点之后,将该候选节点的编号序数按位取反得到新的路径序数同所述路由节点一同发出。
在本发明的一些实施方式中,路由节点还包括:
调度模块,所述调度模块与所述多个虚拟输出队列组进行通信,配置为将路由请求在多个虚拟输出队列组之间进行调度。
如图7所示,在本发明的一些实施例中,设有用于调节多个虚拟输出队列组之间的调度模块,调度模块和多个虚拟输出队列组进行通信,实时获取多个虚拟输出队列组中各个虚拟输出队列中的路由请求数据,并且根据输出端口的对所有指向某个虚拟输出队列中的路由请求进行排序,当从某个输入端口收到一个来自其他路由节点或终端节点的路由请求后,理应将该路由请求分配到该输入端口对应的虚拟输出队列组内,此时,如果该输入端口对应的虚拟输出队列组中各个虚拟输出队列的中的路由请求均超过队列长度的90%,则说明该输入端口的虚拟输出队列属于繁忙状态,此时调度模块可以将路由请求调度到其他输入端口对应的虚拟输出队列组内。
在本发明的一些实施方式中,路由节点还包括:
多个轮询仲裁器,每个所述轮询仲裁器位于所述路由节点的输出端口,配置为对不同的虚拟输出队列组中的虚拟输出队列发出的使用所述输出端口的路由请求进行仲裁。
如图8所示,在本发明的一些实施例,在路由节点的输出端口处还设轮询仲裁器,通过轮询仲裁器对多个虚拟输出队列组中的虚拟输出队列进行仲裁,即每个虚拟输出队列组中的均有一个虚拟输出队列会向与之对应的端口周期性的发起使用端口的请求,对于多个虚拟输出队列发出的使用请求,轮询仲裁器根据预设的仲裁算法选择对应的虚拟输出队列给予授权。在得到授权后,获得授权的虚拟输出队列便可在该周期内使用该输出端口向该输出端口连接的路由节点发送路由请求。
在本发明的一些实施方式中,控制模块进一步配置为:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
在本发明的一些实施例中,在路由节点接收到相应的路由请求之后,判断路由请求中,如果是来自终端节点发出向目标终端节点的数据传输请求,路由节点收到的路由请求时是不具备路径序数的。因此该路由节点即为源路由节点,此时需要有该路由节点基于目标终端确认目标路由节点,并将前路由节点和目标路由节点的编号序数进行异或得到路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的输出端口以及相应候选节点作为下一路由节点。
在本发明的一些实施方式中,调度模块进一步配置为:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
在本发明的一些实施例中,调度模块用来分别统计该调度模块所在的路由节点上所有虚拟输出队列组中所有的虚拟输出队列中的任务数量,即如图7所示,图7为路由节点1的结构示意图,5个虚拟输出队列组共有20个虚拟输出队列,则调度模块需要实时统计20个虚拟输出队列中的路由请求的个数,即路由任务数量。同时根据输出端口对属于同一个输出端口的虚拟输出队列进行分类,如前所述,当某个输入端口对应的虚拟输出队列组中所有虚拟输出队列均超过队列容量的90%之后,将该输入端口的路由请求可通过的路由节点所对应的属于其他输入端口的虚拟输出队列的任务数量进行排名,并从中选择任务数量最小的虚拟输出队列作为该任务请求的缓存队列。
在本发明的一些实施方式中,控制模块进一步配置为:
获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本实施例中,以路由请求的数据量的维度判断哪个虚拟输出队列上的路由请求的数据量最少,并将路由请求的数据量最小的虚拟输出队列作为分配下一个路由请求的首选虚拟输出队列,并将该虚拟输出队列所对应的输出端口连接的路由节点作为下一路由节点。
在本发明的一些实施方式中,控制模块进一步配置为:基于每个虚拟输出队列中待完成的路由请求数量和请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
在本实施例中,在确定每个虚拟输出队列完成队列中的路由请求的完成时间时,通常情况下如果一个路由请求含有大量的传输数据,在数据传输时可对数据连续进行传输,无需额外计算对应的请求信息。如果队列中存在着大量小数据的请求,在一些场景下需要对不同目标的请求信息进行处理,无法有效利用数据带宽,导致性能浪费,因此可采用以请求的平均数据量作为参考,以多个虚拟输出队列的所有请求的平均数据量之比作为各个虚拟输出队列的参考系数乘以上述实施方式中不同角度计算得到的消耗时间得到进一步校正的消耗时间。
在本发明的一些实施方式中,控制模块进一步配置为:基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本实施例中,计算每个虚拟输出队列中的路由请求的数据总量,然后根据数据总量除以路由节点之间建立的数据通道的链路位宽和频率之积得到每个虚拟输出队列完成所有路由请求的用时,将用时最少的虚拟输出队列作为分配路由请求的优选虚拟输出队列。
在本发明的一些实施方式中,控制模块进一步配置为:将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
在本发明的一些实施方式中,控制模块进一步配置为:判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点。
以下是本发明的网络拓扑系统的实施例:
基于图2所示的网络拓扑系统一共有32个终端节点,用5bit来表示每个终端节点,如:00000表示终端节点0,00001表示终端节点1,……,11110表示终端节点30,11111表示终端节点31;图中一共16个路由节点,用5bit的前4个bit表示路由节点,如0000_表示路由节点0,0001_表示路由节点1,……, 1110_表示路由节点14,1111_表示路由节点15。
假设源终端节点为S,目标终端节点为D,下面对路由算法进行说明:
第一步:源终端节点S和目标终端节点D按位进行异或,结果记为I(即上述实施例中的路径序数);
第二步:查看I的前4个bit,如果前4个bit都是0,则证明源终端节点S和目标终端节点D在同一个路由节点,直接在路由节点内部进行路由即可。举例说明,假设源终端节点S为00110(6)、目标终端节点D为00111(7),按位异或之后I为00001,前4个bit都是0,这两个终端节点在一个路由节点上(路由节点7),那么直接在内部进行路由即可。
如果I前4个bit不都是0,前4个bit包含k个就代表从源终端节点S到目标终端节点D需要经过k+1个节点。举例说明,假设源终端节点S为00010(2)、目标终端节点D为11111(31),按位异或之后I为11101,前4个bit含有3个1,那么从源终端节点S:00010(0)到目标终端节点D:11111(31)需要经过4个路由节点。需要说明的是“11111(31)”中“11111”表示二进制形式的数据31,“(31)”表示的是十进制的31即编号序数为31的路由节点(从0开始计数)。
第三步:路由节点的确定方法,仍然以第二步的例子进行说明,源终端节点S为00010(2)在第1个路由节点0001_,目标终端节点D为11111(31)在第15个路由节点1111_。I中前3个bit为1,按照随机的方式,依次改变第1个路由节点0001_前3个bit的信息(前3个bit本来是0则变为1,本来是1则变为0),路由节点每个bit信息的改变,I中对应bit中的1也变为0,直到I中所有bit都是0的时候路由节点之间的路由结束,根据I的最后一个bit将路由信息路由到终端节点。按照随机的方式,路由方式可能有如下结果:
0001_(I:1110_)->0011_(I:1100_)->0111_(I:1000_)->1111_(I:0000_);
0001_(I:1110_)->0011_(I:1100_)->1011_(I:0100_)->1111_(I:0000_);
0001_(I:1110_)->0101_(I:1010_)->0111_(I:1110_)->1111_(I:0000_);
0001_(I:1110_)->0101_(I:1010_)->1101_(I:1110_)->1111_(I:0000_);
0001_(I:1110_)->1001_(I:0110_)->1011_(I:0100_)->1111_(I:0000_);
0001_(I:1110_)->1001_(I:0110_)->1101_(I:0010_)->1111_(I:0000_);
第三步中这种随机路由的方式实现简单,但是因为是随机的,可能会导致某个路由节点阻塞严重,而阻塞问题会导致流量传输的延迟。
对于N*N的输入排队结构采用先入先出(First In First Out,FIFO)的队列吞吐量被限制在58.6%。而吞吐量之所以被限制的原因在于队首阻塞(Head of Line,HoL)。HoL现象如图9所示,每个输入端口维持一个独立的FIFO 队列,队列中的数字表示了目的输出端口。可以看到FIFO1队列和FIFO3队列的队首信元在输出端口1产生冲突,而输出端口2是空闲的,但是FIFO3队列中的第二个信元是去往输出端口2的,但是由于先入先出的排队方式导致这个信元虽有空闲链路但无法发送,将排队中的这种现象称为队首阻塞。由于在这个时刻的队首阻塞现象,导致此时的链路利用率只有50%。
我们以第1个路由节点0001_为例对本发明提出的节点内的路由算法进行说明。第1个路由节点0001_的输入端有:0000_(0),0001_(1),011_(3),0101_(5),1001_(9),第1个路由节点0001_的输出端有:0000_(0),0001_(1),0011_(3),0101_(5),1001_(9)。
本发明规定对于一个路由节点、所有来自外部输入端的路由请求其输出端不可以是其本身,例如第1个路由节点0001_,假设一个路由请求的输入端为0101_(5),其输出端不可以是0101_(5),因此其输出端有四个0000_(0),0001_(1),0011_(3),1001_(9)。
如图13所示,对于一个路由节点、来自其本身的路由其输出端可以是其本身,例如第1个路由节点0001_,假设一个路由请求的输入端其本身0001_(1),这是因为一个路由节点上链接了两个终端节点,这两个终端节点之间可以相互路由,因此来自其本身的路由其输出端有五个0000_(0),0001_(1),0011_(3),0101_(5),1001_(9)。对于路由到本身的路由请求本发明采用本地直接路由的方式,不参与VOQ排队。
基于VOQ的节点内部路由算法:
第一步:路由请求进入VOQ输出队列进行排队。对于输入端路由请求,可能有多个输出端,选择排队数量最少的VOQ队列进行排队;例如对于路由节点1的输入端1的路由请求0001_(I:1110_),其输出端有三个可以是0011_(3)、0101_(5)、1001(9),则在VOQ3、VOQ5、VOQ9选一个排队数量最少的VOQ队列进行排队。如果只有一个输出端,则只能在对应的VOQ队列进行排队;例如对于路由节点1的输入端1的路由请求0001_(I:1000_),其输出端只有1001(9),则在只能在VOQ9进行排队。第二步:所有VOQ输出队列在每时隙初向所有未被占用的输出端口发送请求;
第三步:每个输出端口链路仲裁器以轮询方式选择一个非空VOQ请求,并向所选VOQ返回授权信息。
第四步:每个VOQ收到授权信息之后将路由请求从输出端口路由出去,并修改对应的路由请求的信息。例如对于路由节点1的输入端1的路由请求0001_(I:1110_),收到输出端口0101_(5)的授权信息,则直接从输出端口0101_(5)路由出去,并将路由信息修改为0101_(I:1010_)。
第五步:判断路由信息中的I是否为0000_,如果是,则根据I的最后一个bit将路由请求路由到终端节点;如果不是,则继续执行第一、二、三、四、五步。
本发明提出了基于VOQ的拍平的butterfly拓扑结构的节点内部路由算法。与节点内部随机路由的算法相比,考虑到了输出端口的空闲程度,将路由请求优先路由到排队较少的输出端口,降低了网络延迟。
如图10所示,本发明的另一方面还提出一种路由方法,包括:
步骤S1、确定路由请求的路径序数,判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
步骤S2、响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
步骤S3、遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;
步骤S4、将所述多个路径编号序数对应的路由节点作为多个候选路由节点;
步骤S5、基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由节点;
步骤S6、将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并经由对应的输出端口发送到与该输出端口对应的所述下一路由节点。
在本发明的一些实施方式中,确定路由请求的路径序数的步骤包括:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
在本发明的一些实施方式中,确定路由请求的路径序数的步骤还包括:
响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤还包括:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
通过调度模块将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于每个虚拟输出队列中待完成的路由请求数量和请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
在本发明的一些实施方式中,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间。
在本发明的一些实施方式中,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数的步骤包括:
将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
在本发明的一些实施方式中,基于所述路径序数中序数不为预定值的位置对当前路由节点的编号序数中相同位置上的序数进行多次按位取反得到多个候选路由节点的步骤包括:
判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点。
如图11所示,本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器2001;以及
存储器2002,所述存储器2002存储有可在所述处理器2001上运行的计算机指令2003,所述指令2003由所述处理器2001执行时实现上述实施方式中任意一项所述方法的步骤。
如图12所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (26)

1.一种网络通信拓扑系统,其特征在于,包括:
多个路由节点,每个所述路由节点按照预定连接规则与多个其他路由节点建立连接,所述预定连接规则为:
确定组建网络拓扑的终端节点个数,并通过终端节点个数乘以预定比例得到服务所述终端节点的路由节点个数;
根据所述路由节点个数对每个路由节点分配编号序数,并将每个路由节点的编号转换成二进制形式;
对于每个路由节点,将其自身的二进制形式的编号序数进行逐位取反得到多个目标编号序数;
确定多个目标编号序数所对应的多个目标路由节点,将所述路由节点与所述多个目标路由节点建立链路连接;
所述路由节点包含多个输入端口和多个输出端口以及若干虚拟输出队列组,所述虚拟输出队列组与输入端口一一对应,
其中,所述路由节点配置为对发往不同的输出端口的路由请求,根据所述路由请求所要发往的输出端口在所述虚拟输出队列组中分别缓存,并将缓存的所述路由请求经由对应的输出端口发送到与该输出端口对应的下一路由节点。
2.根据权利要求1所述的系统,其特征在于,所述虚拟输出队列组包括:
多个虚拟输出队列,所述多个虚拟输出队列分别与所述路由节点的多个输出端口一一对应,配置为缓存所述虚拟输出队列组收到的发往不同输出端口的路由请求。
3.根据权利要求2所述的系统,其特征在于,所述路由节点还包括:
控制模块,所述控制模块配置为:确定路由请求的路径序数,判断所述路径序数中的预定区域的所有数据位的值是否全为预定值,
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;将所述多个路径编号序数对应的路由节点作为多个候选路由节点;基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,选择通信时间最短的候选路由节点作为下一路由节点;将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并发送到所述下一路由节点。
4.根据权利要求1所述的系统,其特征在于,所述路由节点还包括:
调度模块,所述调度模块与所述多个虚拟输出队列组进行通信,配置为将路由请求在多个虚拟输出队列组之间进行调度。
5.根据权利要求2所述的系统,其特征在于,所述路由节点还包括:
多个轮询仲裁器,每个所述轮询仲裁器位于所述路由节点的输出端口,配置为对不同的虚拟输出队列组中的虚拟输出队列发出的使用所述输出端口的路由请求进行仲裁。
6.据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
7.据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
8.根据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的输出端口以及相应候选节点作为下一路由节点。
9.根据权利要求4所述的系统,其特征在于,所述调度模块进一步配置为:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
10.根据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
11.根据权利要求10所述的系统,其特征在于,所述控制模块进一步配置为:
基于每个虚拟输出队列中待完成的路由请求数量和所述请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
12.根据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
13.根据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
14.根据权利要求3所述的系统,其特征在于,所述控制模块进一步配置为:
判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的所述当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点。
15.一种路由方法,其特征在于,包括:
确定路由请求的路径序数,判断所述路径序数中的预定区域的所有数据位的值是否全为预定值;
响应于所述判断的结果不全为预定值,确定不为预定值的数据位的位置集合;
遍历所述位置集合中的数据位,基于所述数据位在路径序数中的位置将相同位置的当前路由节点对应的编号序数的值进行翻转得到对应的多个路径编号序数;
将所述多个路径编号序数对应的路由节点作为多个候选路由节点;
基于与所述路由请求所属的输入端口对应的虚拟输出队列组中各个虚拟输出队列与输出端口的通信时间,从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由节点;
将所述路由请求存储到所述虚拟输出队列组中与所述下一路由节点对应的虚拟输出队列中,并经由对应的输出端口发送到与该输出端口对应的所述下一路由节点。
16.根据权利要求15所述的方法,其特征在于,所述确定路由请求的路径序数的步骤包括:
响应于接收到路由请求, 判断是否存在所述路由请求的对应的路径序数;
响应于不存在所述路径序数,将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数。
17.根据权利要求16所述的方法,其特征在于,所述确定路由请求的路径序数的步骤还包括:
响应于所述路由请求中包含对应的路径序数,将所述路径序数作为所述路由请求的路径序数。
18.根据权利要求15所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
统计接收所述路由请求的输入端口所对应的虚拟输出队列组中所有虚拟输出队列中任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
19.根据权利要求15所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤还包括:
统计当前路由节点中的所有虚拟输出队列组中的虚拟输出队列中的任务数量;
将所述任务数量最少的虚拟输出队列所对应的候选节点作为下一路由节点。
20.根据权利要求19所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
通过调度模块将所述路由请求由接收所述路由请求的输入端口调度到所述任务数量最少的虚拟输出队列。
21.根据权利要求15所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
获取当前路由节点上所有虚拟输出队列中的路由请求信息,基于所述路由请求信息确定每个虚拟输出队列的路由请求数量及其每个路由请求对应的数据量;
基于所述路由请求的数量及路由请求对应的数据量计算每个虚拟输出队列完成当前路由任务的消耗时间,将消耗时间最少的虚拟输出队列所对应的输出端口的编号序数所对应的路由节点作为下一路由节点。
22.根据权利要求21所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于每个虚拟输出队列中待完成的路由请求数量和所述请求数量对应的请求数据量计算每个虚拟输出队列的路由请求数据的平均值;
将每个虚拟输出队列的请求数据的平均值与所有虚拟输出队列的平均值总和的比值作为每个虚拟输出队列的系数,将所述系数乘以每个虚拟输出队列完成当前路由任务的消耗时间的结果作为每个虚拟输出队列的消耗时间。
23.根据权利要求15所述的方法,其特征在于,所述从所述多个候选路由节点中选择通信时间最短的候选路由节点作为下一路由的路由节点的步骤包括:
基于当前路由节点与其他路由节点之间建立的链路位宽和每个路由请求对应的数据量确定所述路由请求在链路上的传输次数,并基于所述传输次数及链路频率计算每个路由请求所消耗的时间;
将每个虚拟输出队列中所有路由请求所消耗的时间的总和作为每个虚拟输出队列完成当前路由任务的消耗时间。
24.根据权利要求16所述的方法,其特征在于,所述将所述当前路由节点和目标路由节点的编号序数进行异或得到路径序数的步骤包括:
将所述当前路由节点和目标路由节点的编号序数转换成二进制形式;
将二进制形式的当前路由节点和目标路由节点的编号序数进行按位异或计算,并将所述异或计算的结果作为路径序数。
25. 一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求15-24任意一项所述方法的步骤。
26.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求15-24任意一项所述方法的步骤。
CN202311390726.6A 2023-10-25 2023-10-25 一种网络通信拓扑系统、路由方法、设备及介质 Active CN117135107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311390726.6A CN117135107B (zh) 2023-10-25 2023-10-25 一种网络通信拓扑系统、路由方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311390726.6A CN117135107B (zh) 2023-10-25 2023-10-25 一种网络通信拓扑系统、路由方法、设备及介质

Publications (2)

Publication Number Publication Date
CN117135107A true CN117135107A (zh) 2023-11-28
CN117135107B CN117135107B (zh) 2024-02-13

Family

ID=88860375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311390726.6A Active CN117135107B (zh) 2023-10-25 2023-10-25 一种网络通信拓扑系统、路由方法、设备及介质

Country Status (1)

Country Link
CN (1) CN117135107B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014074546A1 (en) * 2012-11-12 2014-05-15 Alcatel Lucent Network node and method in a node operable in a virtual chassis system wherein it is determined whether to issue a warning that an administrative action triggers a virtual chassis split
CN104486237A (zh) * 2014-12-18 2015-04-01 西安电子科技大学 clos网络中无乱序分组路由及调度方法
CN111510309A (zh) * 2020-04-08 2020-08-07 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
CN114244708A (zh) * 2021-04-26 2022-03-25 无锡江南计算技术研究所 一种胖树网络结构上的通信优化方法
CN115529266A (zh) * 2022-09-08 2022-12-27 深圳市有方科技股份有限公司 一种路由选择方法、装置及设备
CN116506348A (zh) * 2022-01-21 2023-07-28 华为技术有限公司 通信网络系统、报文转发方法及报文转发装置
CN116866440A (zh) * 2023-09-05 2023-10-10 苏州浪潮智能科技有限公司 一种集群节点选择调度方法、装置、电子设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014074546A1 (en) * 2012-11-12 2014-05-15 Alcatel Lucent Network node and method in a node operable in a virtual chassis system wherein it is determined whether to issue a warning that an administrative action triggers a virtual chassis split
CN104486237A (zh) * 2014-12-18 2015-04-01 西安电子科技大学 clos网络中无乱序分组路由及调度方法
CN111510309A (zh) * 2020-04-08 2020-08-07 深圳大学 区块链数据传输方法、装置、设备及计算机可读存储介质
CN114244708A (zh) * 2021-04-26 2022-03-25 无锡江南计算技术研究所 一种胖树网络结构上的通信优化方法
CN116506348A (zh) * 2022-01-21 2023-07-28 华为技术有限公司 通信网络系统、报文转发方法及报文转发装置
CN115529266A (zh) * 2022-09-08 2022-12-27 深圳市有方科技股份有限公司 一种路由选择方法、装置及设备
CN116866440A (zh) * 2023-09-05 2023-10-10 苏州浪潮智能科技有限公司 一种集群节点选择调度方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN117135107B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
JP6093867B2 (ja) インターコネクトにおける不均一なチャネル容量
EP1005745B1 (en) Router with virtual channel allocation
US6370145B1 (en) Internet switch router
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
Bolding et al. The case for chaotic adaptive routing
US7773616B2 (en) System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
US7773618B2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
KR100905802B1 (ko) 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘
CN117135059B (zh) 一种网络拓扑结构、构造方法、路由算法、设备及介质
KR100968250B1 (ko) 컴퓨터 시스템 i/o 노드
CN109716719B (zh) 数据处理方法及装置、交换设备
CN117135107B (zh) 一种网络通信拓扑系统、路由方法、设备及介质
US20080109586A1 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US9590924B1 (en) Network device scheduler and methods thereof
Gómez et al. VOQ/sub SW: a methodology to reduce HOL blocking in InfiniBand networks
CN117176648B (zh) 一种分布式路由的实现方法、系统、设备及介质
WO2008057821A2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system
Sayankar et al. A Dynamic NOC Arbitration Technique using Combination of VCT and XY Routing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant