CN109802889B - 一种信息传输方法及装置 - Google Patents

一种信息传输方法及装置 Download PDF

Info

Publication number
CN109802889B
CN109802889B CN201711148094.7A CN201711148094A CN109802889B CN 109802889 B CN109802889 B CN 109802889B CN 201711148094 A CN201711148094 A CN 201711148094A CN 109802889 B CN109802889 B CN 109802889B
Authority
CN
China
Prior art keywords
node
port
path
information
paths
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.)
Active
Application number
CN201711148094.7A
Other languages
English (en)
Other versions
CN109802889A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711148094.7A priority Critical patent/CN109802889B/zh
Publication of CN109802889A publication Critical patent/CN109802889A/zh
Application granted granted Critical
Publication of CN109802889B publication Critical patent/CN109802889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种信息传输方法及装置,涉及通信技术领域,用于减小信息传输的时延。该方法应用于包括多个NC节点的系统中,所述方法包括:当第一NC节点确定第一路径满足预设条件时,所述第一NC节点开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径;所述第一NC节点获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态;所述第一NC节点根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径,所述M为大于或等于1的整数;所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息。

Description

一种信息传输方法及装置
技术领域
本申请实施例涉及信息技术领域,尤其涉及一种信息传输方法及装置。
背景技术
在一致性高速缓存非均匀存储访问(Cache Coherent Non-uniform MemoryAccess,CC-NUMA)系统中,每个处理器都带有各自的扩展内存,处理器之间通过超级通道互联(Ultra Path Interconnect,UPI))形成多处理器系统,多个处理器之间彼此可以交换数据,所有处理器共享内存,即任何一个处理器都可以访问本地的内存、或者其他处理器所带内存。为了组成多处理器系统,实现处理器之间的互联访问,通常通过节点控制器(NodeController,NC)芯片来扩展节点,NC芯片一端通过UPI接口连接处理器,另一端通过(Network Interface,Ni)端口和其他NC芯片互联,从而组成整个系统。系统中由NC芯片、以及与该NC芯片连接的多个处理器组成的节点可以称为NC节点。
目前,在系统初始化时,会为每个NC节点中处理器所带的内存分配一定的地址空间,每个NC节点的Ni端口分别路由除本节点地址空间以外的其他地址段,并设置内存访问的系统路由表,从而在处理器访问内存时,按照该系统路由表中的路由信息访问相应的内存。由于UPI接口的带宽通常会大于Ni端口的带宽,当一个NC节点内的多个处理器在同一时间段内对同一段地址的内存发起访问时,容易造成链路拥塞的问题,从而增大了访问延时,影响整个系统的服务性能。
发明内容
本申请的实施例提供一种信息传输方法及装置,解决了现有技术中当一个NC节点内的多个处理器在同一时间段内对同一段地址的内存发起访问时容易造成链路拥塞的问题,从而减小了数据的访问延时,提高了系统的服务性能。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供一种信息传输方法,应用于包括多个节点控制器NC节点的系统中,所述多个NC节点的系统包括第一NC节点和第二NC节点,该方法包括:当所述第一NC节点确定第一路径满足预设条件时,所述第一NC节点开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径;所述第一NC节点获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态;所述第一NC节点根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径,所述M为大于或等于1的整数;所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息。
上述技术方案中,当所述第一路径满足预设条件时,启动动态路由并建立动态路由信息,根据动态路由信息选择所述第一NC节点与所述第二NC节点之间处于非拥塞状态的M条路径,所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息,从而避免了所述第二NC节点与所述第一NC节点之间通信的时延,提高了数据访问效率,进而提高了系统的服务性能。
在第一方面的一种可能的实现方式中,所述第一路径满足预设条件可以是指:所述第一路径发生拥塞或者所述第一路径发生故障。
在第一方面的一种可能的实现方式中,每个NC节点包括多个Ni端口,所述第一NC节点获取动态路由信息,包括:所述第一NC节点获取所述多个NC节点中至少一个NC节点的多个Ni端口的拥塞状态信息,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点;所述第一NC节点根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述第一NC节点与所述第二NC节点之间多条路径的链路状态,以确定所述动态路由信息。上述可能的技术方案中,所述第一NC节点可以获取所述动态路由信息,从而可以根据所述动态路由信息选择处于非拥塞状态的M条路径传输信息,进而减小信息传输的时延。
在第一方面的一种可能的实现方式中,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口。
在第一方面的一种可能的实现方式中,所述第一NC节点根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述第一NC节点与所述第二NC节点之间多条路径的链路状态,包括:所述第一NC节点根据该条路径上所述至少一个NC节点的多个Ni端口中与所述第一NC节点连接的Ni端口的拥塞状态信息,和/或该条路径上所述至少一个NC节点的多个Ni端口中与所述第二NC节点连接的Ni端口的拥塞状态信息,获取该条路径的拥塞值;当该条路径的拥塞值大于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为拥塞状态,当该条路径的拥塞值小于或等于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为非拥塞状态。上述可能的技术方案中,所述第一NC节点确定所述多条路径中每条路径的拥塞值,从而根据每条路径的拥塞值确定链路状态。
在第一方面的一种可能的实现方式中,所述第一NC节点通过第一Ni端口与所述第二NC节点相连,所述第一Ni端口为所述第一NC节点的多个Ni端口中的端口,所述方法还包括:所述第一NC节点确定所述第一Ni端口的状态信息,所述第一Ni端口的状态信息包括第一时长内所述所述第一Ni端口处累积的请求信息和/或所述所述第一Ni端口处累积的发送信息;所述第一NC节点根据所述第一Ni端口的状态信息,确定所述第一Ni端口的拥塞状态信息,进而根据所述第一Ni端口的拥塞状态信息,确定所述第一路径的链路状态。
在第一方面的一种可能的实现方式中,所述预设条件包括以下中的至少一种:所述第一路径当前的链路状态为拥塞状态、所述第一路径在未来一段时长内的链路状态为拥塞状态、所述第一路径发生故障。其中,当所述第一路径当前的链路状态为拥塞状态、或者所述第一路径在未来一段时长内的链路状态为拥塞状态时,所述第一NC节点通过所述M条路径中的一条或者多条路径和所述第一路径向所述第二NC节点传输信息;当所述第一路径发生故障时,所述第一NC节点通过所述M条路径中的一条或者多条路径向所述第二NC节点传输信息。
在第一方面的一种可能的实现方式中,所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息,包括:所述第一NC节点按照负载平均分配的方式,通过至少所述M条路径向所述第二NC节点传输信息;或者,所述第一NC节点按照负载预设权重分配方式,通过至少所述M条路径向所述第二NC节点传输信息。上述可能的实现方式中,通过将所述第一路径上需要传输的信息进行负载均衡,分担至所述M条路径进行传输,可以提高信息传输的效率,减小传输时延。
在第一方面的一种可能的实现方式中,所述第一NC节点通过至少M条路径向所述第二NC节点传输信息,包括:所述第一NC节点通过所述M条路径或所述M条路径中的部分路径,向所述第二NC节点传输信息;或者,所述第一NC节点通过所述M条路径或所述M条路径中的部分路径,以及所述第一NC节点与所述第二NC节点之间的直连路径向所述第二NC节点传输信息。
在第一方面的一种可能的实现方式中,所述方法还包括:当所述第一NC节点确定所述第一路径的链路状态为非拥塞状态、或者所述第一路径的故障恢复时,所述第一NC节点关闭所述动态路由;所述第一NC节点通过所述第一路径向所述第二NC节点传输信息。上述可能的实现方式中,在所述第一路径处于空闲状态或者故障恢复时,通过第一路径传输信息,可以减小路径开销,同时第一路径为直连路径,也可以减小信息传输的时延。
在第一方面的一种可能的实现方式中,所述M条路径还满足以下条件中的至少一个:所述M条路径中的每条路径的拥塞值小于第二拥塞门限,所述第二拥塞门限小于所述第一拥塞门限;所述M条路径中的每条路径的带宽占用率小于预设占用率、或每条路径的可用带宽大于预设带宽。上述可能的实现方式中,通过选择带宽占用率较小或可用带宽的较大的路径,可以保证选择的M条路径能够承载更多的信息传输,进而在信息传输时可以提高信息传输的效率。
在第一方面的一种可能的实现方式中,对于所述多条路径中的每条路径,所述第一NC节点确定该条路径中每段链路的拥塞状态信息,将每段链路的拥塞状态信息进行归一化处理,得到该条路径的拥塞状态信息;所述第一NC节点根据该条路径的拥塞状态信息确定该条路径的链路状态。
在第一方面的一种可能的实现方式中,所述通过归一化处理得到该条路径的拥塞状态信息包括:按照每条路径中每段链路的拥塞状态信息,以及预设的拥塞状态信息与链路负荷的分担比率,获取该条路径的拥塞状态信息。
在第一方面的一种可能的实现方式中,所述多个NC节点的系统还包括第三NC节点,当所述第三NC节点中的Ni端口发生拥塞时,所述第一NC节点接收所述第三NC节点发送的所述Ni端口的拥塞状态信息;所述第一NC节点根据所述Ni端口的拥塞状态信息,更新所述动态路由信息。上述可能的实现方式中,当某一NC节点的Ni端口发生拥塞时,通过向所述第一NC节点发送所述Ni端口的拥塞状态信息,使所述第一NC节点更新所述动态路由信息,从而可以保证所述动态路由信息的有效性。
在第一方面的一种可能的实现方式中,所述方法还包括:所述第一NC节点确定其自身多个Ni端口的状态信息,一个Ni端口的状态信息包括该Ni端口处累积的请求信息和/或该Ni端口处累积的发送信息;所述第一NC节点根据所述第一NC节点的多个Ni端口的状态信息,确定所述第一NC节点的多个Ni端口中每个Ni端口的拥塞状态信息;所述第一NC节点向第四NC节点发送给其自身多个Ni端口的拥塞状态信息,所述第四NC节点为多个NC节点中除所述第一NC节点以外的任意一个NC节点。上述可能的实现方式中,所述第一NC节点可以向所述第四NC节点发送其自身多个Ni端口的拥塞状态信息,以在所述第四NC节点可以获取动态路由信息,从而在其传输的路径出现拥塞或者故障时选择非拥塞的路径传输信息。
第二方面,提高一种信息传输方法,其特征在于,应用于包括多个节点控制器NC节点的系统中,所述包括多个NC节点的系统包括第一NC节点和第二NC节点,该方法包括:所述第二NC节点通过第一路径接收第一NC节点传输的信息,所述第一路径为所述第一NC节点与所述第二NC节点之间的直连路径;当所述第一路径满足预设条件时,所述第二NC节点通过至少M条路径接收所述第一NC节点传输的信息;其中,所述M条路径是所述第一NC节点根据动态路由信息获取的链路状态为非拥塞状态的路径,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态,所述M条路径为非直连路径,所述多条路径包括所述M条路径,所述M为大于或等于1的整数。
在第二方面的一种可能的实现方式中,所述方法还包括:所述第二NC节点确定所述第二NC节点的多个Ni端口的状态信息,一个Ni端口的状态信息包括该Ni端口处累积的请求信息和/或该Ni端口处累积的发送信息;所述第二NC节点根据所述第二NC节点的多个Ni端口的状态信息,确定所述第二NC节点的多个Ni端口的拥塞状态信息;所述第二NC节点向所述第一NC节点发送所述第二NC节点的多个Ni端口的拥塞状态信息。
在第二方面的一种可能的实现方式中,所述预设条件包括以下中的至少一种:所述第一路径当前的链路状态为拥塞状态、所述第一路径未来一段时长内的链路状态为拥塞状态、所述第一路径发生故障。
在第二方面的一种可能的实现方式中,当所述第一路径当前的链路状态为拥塞状态、或者所述第一路径在未来一段时长内的链路状态为拥塞状态,所述第二NC节点通过所述M条路径中的至少一个路径和所述第一路径接收所述第一NC节点传输的信息;当所述第一路径发生故障时,所述第二NC节点通过所述M条路径中的至少一个路径接收所述第一NC节点传输的信息。
在第二方面的一种可能的实现方式中,所述方法还包括:当所述第一路径的链路状态为非拥塞状态、或者所述第一路径的故障恢复时,所述第一NC节点关闭所述动态路由;所述第二NC节点接收所述第一NC节点通过所述第一路径传输的信息。
在第二方面的一种可能的实现方式中,所述多个NC节点的系统还包括第三NC节点,所述方法还包括:所述第二NC节点接收所述第三NC节点发送的所述第三NC节点的多个Ni端口的拥塞状态信息,所述第三NC节点为多个NC节点中除所述第二NC节点以外的任意一个NC节点。
第三方面,提供一种NC节点,所述NC节点可以为包含多个NC节点的系统中的任一NC节点,该NC节点可以包括NC芯片和多个Ni端口,所述NC芯片可通过所述多个Ni端口与其他多个NC节点相连,一个Ni端口连接一个NC节点,所述NC节点通过所述多个Ni端口实现与其他多个NC节点之间的通信。
在第三方面的任一种可能的实现方式中,所述NC节点的NC芯片包括:处理单元、存储单元和路由控制器;其中,所述存储单元用于存储程序代码和数据,所述处理单元可运行所述程序代码以执行所述NC芯片的功能,所述处理单元可通过所述路由控制器开启或者关闭动态路由。
在本申请的又一方面,提供了一种节点,该节点作为第一NC节点,用于实现上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元。
在一种可能的实现方式中,所述第一NC节点包括NC芯片和多个Ni端口,所述NC芯片的结构中包括处理器和通信接口,该处理器被配置为支持该第一NC节点执行上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法。所述第一NC节点还可以包括存储器,该存储器用于与处理器耦合,其保存所述第一NC节点必要的程序代码和数据。
在本申请的又一方面,提供了一种节点,该节点作为第二NC节点,用于实现上述第二方面或第二方面的任一种可能的实现方式所提供的信息传输方法中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的单元。
在一种可能的实现方式中,所述第二NC节点包括NC芯片和多个Ni端口,所述NC芯片的结构中包括处理器和通信接口,该处理器被配置为支持第二NC节点执行上述第二方面或第二方面的任一种可能的实现方式所提供的信息传输方法。所述第二NC节点还可以包括存储器,该存储器用于与处理器耦合,其保存所述第二NC节点必要的程序代码和数据。
本申请的又一方面,提供了一种芯片系统,包括:应用于NC节点中,所述芯片系统包括至少一个处理器,存储器和收发器,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行,以执行上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法、或者执行上述第二方面或第二方面的任一种可能的实现方式所提供的信息传输方法。
本申请的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法、或者执行上述第二方面或第二方面的任一种可能的实现方式所提供的信息传输方法。
本申请的又一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法、或者执行上述第二方面或第二面的任一种可能的实现方式所提供的信息传输方法。
本申请的又一方面,提供一种包括多个节点控制器NC节点的系统,所述多个NC节点包括第一NC节点和第二NC节点;其中,所述第一NC节点为上述各方面所提供的第一NC节点,用于支持该第一NC节点执行上述第一方面或第一方面的任一种可能的实现方式所提供的信息传输方法;和/或,所述第二NC节点为上述各方面所提供的第二NC节点,用于支持第二NC节点执行上述第二方面或第二方面的任一种可能的实现方式所提供的信息传输方法。
可以理解地,上述提供的任一种信息传输方法的装置、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种CC-NUMA系统的结构示意图;
图2为本申请实施例提供的一种系统的结构示意图;
图3为本申请实施例提供的另一种系统的结构示意图;
图4为本申请实施例提供的一种信息传输方法的流程示意图;
图5为本申请实施例提供的一种获取Ni端口的状态信息的示意图;
图6为本申请实施例提供的一种链路拥塞值的分布示意图;
图7为本申请实施例提供的一种确定动态路由信息的流程示意图;
图8为本申请实施例提供的一种更新动态路由信息的示意图;
图9为本申请实施例提供的一种缓存数据的分布示意图;
图10为本申请实施例提供的第二种信息传输方法的流程示意图;
图11为本申请实施例提供的第三种信息传输方法的流程示意图;
图12为本申请实施例提供的第四种信息传输方法的流程示意图;
图13为本申请实施例提供的一种第一NC节点中NC芯片的结构示意图;
图14为本申请实施例提供的另一种第一NC节点中NC芯片的结构示意图;
图15为本申请实施例提供的一种第二NC节点中NC芯片的结构示意图;
图16为本申请实施例提供的另一种第二NC节点中NC芯片的结构示意图;
图17为本申请实施例提供的一种包括多个NC节点的系统的结构示意图。
具体实施方式
图1为一种CC-NUMA系统的结构示意图,参见图1,该系统包括多个NC节点,每个NC节点可以包括一个NC芯片和多个处理器(CPU)。其中,NC芯片的一端通过UPI端口连接CPU,另一端通过网络端口(Network interface,Ni)与其他NC节点的NC芯片互联,该多个NC节点之间通过网络进行通信。在CC-NUMA系统中,每个处理器(CPU)都携带一个memory,多个处理器之间的memory可以共享,即任一NC节点中的任一处理器可以访问该NC节点中的任一memory,也可以通过网络访问其他NC节点中的任一memory。图1中的所示的CC-NUMA系统也可以称为NC系统、或者多处理器系统。图1中以一个NC节点为例,对NC节点的结构进行说明,其他NC节点的结构类似。
目前,在系统初始化过程中,会配置系统路由表。例如,在如图2所示的16P(Processors)系统中,2P组成一个NC节点,总共有8个NC(即NC0-NC7)节点,整个系统的地址空间为[0-16T],NC0节点代理0-2T地址段,NC1节点代理2T-4T地址段,…,NC7节点代理14T-16T地址段。每个NC节点的7个Ni端口分别路由除本节点的地址空间外的地址段,本节点的地址空间是指本节点包括的CPU携带的memory对应的地址空间。如图2中所示,NC0的7个Ni端口分别路由地址段2T-4T,…,14T-16T。当NC0节点内的CPU访问地址段[2T-4T]对应的数据时,该CPU发出的请求只能通过NC0的第一个Ni端口进行路由,即通过第一个Ni端口访问NC0节点内的地址段[2T-4T]。
在实际应用中,由于同一NC节点内的多个CPU与NC芯片之间的UPI带宽通常会大于不同NC节点之间的Ni端口的带宽。因此,Ni端口的带宽瓶颈会对整个系统的性能造成影响。例如,当一个NC节点内的多个CPU在同一时间段内对同一地址段的内存发起访问时,首先请求报文会阻塞在该NC节点内NC芯片的相对应地址段的那个Ni端口处。当请求报文超过缓存深度时,那些在缓存末尾的请求报文则需要等待一段时间后才能从Ni端口发送出去,从而增加了这些访问的延迟。再者,如果发送的是大量读请求,则过一段时间之后,目标NC节点会返回大量携带数据的读响应报文,这样会又一次造成链路拥塞,进一步增大访问延时,从而影响整个系统的服务性能。
另外,由于系统路由表是在系统初始化过程中静态配置的,在系统工作过程中不能修改,即NC节点之间的访问路径不能动态修改,因此NC节点之间物理线缆的故障会影响整个系统的正常工作。例如,当NC0节点通过第一个Ni端口到NC1节点的第一个Ni端口的物理线缆发生了故障,则导致NC0节点中的CPU无法访问处于[2-4T]地址段的地址空间,严重时甚至会造成整个系统的宕机。
图3为本申请实施例提供的一种系统的结构示意图,参见图3,该系统包括多个NC节点(比如,NC0节点~NCn节点),图3中以NC0节点为例对NC节点的结构进行说明。每个NC节点可以包括一个NC芯片和多个Ni端口,所述NC芯片可通过所述多个Ni端口与其他多个NC节点相连,且一个Ni端口可以连接一个NC节点,该NC节点通过该多个Ni端口实现与其他多个NC节点之间的通信。比如,以NC0节点为例,NC0节点包括n个Ni端口(比如,端口1~端口n),则端口1可以对应连接NC1节点,端口2可以对应连接NC2节点,……,端口n可以对应连接NCn节点。此外,所述NC节点还包括至少一个处理器CPU,所述至少一个CPU通过超级通道互联UPI端口与所述NC芯片连接,所述至少一个CPU中的每个CPU可携带一个memory。
具体的,对于图3中每个NC节点中的NC芯片,该NC芯片可以包括处理单元、存储单元和路由控制器。处理器单元是NC芯片的控制中心,可利用各种接口和线路连接NC芯片的各个部分,比如连接存储单元和路由控制器。存储单元可用于存储下述至少其中之一:NC芯片的软件程序、软件模块或数据等。处理单元可以通过运行或执行存储单元内的软件程序和/或软件模块,执行NC芯片的各种功能;或调用存储在存储单元内的数据,实现对数据的处理。路由控制器可用于接收处理单元的控制指令,根据控制指令开启或关闭动态路由,当开启动态路由时,NC芯片可以通过动态路由的方式传输信息,当关闭动态路由时,NC芯片可以通过静态路由的方式传输信息。
在实际应用中,所述NC芯片还可以包括比图示更多或更少的部件,或者组合某些部件(比如,将处理单元和存储单元集成为一个单元,),或者不同的部件布置等等,本申请实施例对此不作具体限定。图3中同一NC节点内UPI端口与Ni端口之间不存在固定不变的静态路由配置,NC芯片不仅可以通过静态路由的方式进行信息传输,也可以通过动态路由的方式选择不同的Ni端口传输信息,从而实现不同NC节点之间的信息传输。
基于此,本申请实施例提供一种信息传输方法及装置,通过对传输链路状态的预测,在传输链路的状态为阻塞状态时,通过触发动态路由的方法,减小系统中处理器对内存的访问时延,从而提高系统的服务性能。此外,本申请实施例提供的信息传输方法中,在检测到某两个NC节点之间的物理线缆发生故障时,也可以启动动态路由,选择其他的可用路径实现发生故障的两个NC节点之间的信息传输,从而可以避免因为物理线缆发生故障等造成整个系统的宕机的问题。
图4为本申请实施例提供一种信息传输方法的流程示意图,应用于包括多个节点控制器NC节点的系统中,参见图4,该方法包括以下几个步骤。
步骤401:第一NC节点的NC芯片确定所述第一NC节点的第一Ni端口处累积的请求信息,所述第一NC节点通过所述第一Ni端口与第二NC节点连接。
其中,所述第一NC节点的结构可以为图3中所示的NC0节点的结构,所述第一NC节点包括NC芯片和多个处理器CPU,每个CPU携带有一个memory,多个CPU与NC芯片之间可以通过UPI端口连接。所述第一NC节点上可以设置有多个Ni端口,用于通过网络与其他NC节点互联。所述第二NC节点与所述第一NC节点的结构类似,在此不再赘述。
另外,所述第一NC节点可以通过所述第一NC节点的第一Ni端口与所述第二NC节点的第二Ni端口连接。所述第一NC节点的第一Ni端口可以是所述第一NC节点的多个Ni端口中的任一Ni端口,所述第二NC节点的第二Ni端口可以是所述第二NC节点的多个Ni端口中的任一Ni端口。
需要说明的是,步骤401中的请求信息可以包括读请求的信息,本申请实施例以读请求为例进行说明。在静态路由配置下,此时动态路由处于关闭状态,当所述第二NC节点中的CPU需要读取所述第一NC节点中CPU的地址空间时,所述第二NC节点可以通过所述第二NC节点中的第二Ni端口向所述第一NC节点发送读请求,所述第一NC节点通过所述第一Ni端口接收所述读请求,所述第一NC节点的NC芯片可以获取到所述第一Ni端口接收到的所述请求信息。为便于描述,后续将所述第一NC节点的NC芯片称为第一NC芯片。
所述请求信息可以包括读请求的数量、和/或读请求的总数据量(所有读请求所请求的数据量的总和)。即所述第一NC芯片可以获取所述第一Ni端口处累积的读请求的数量,或者获取所述第一Ni端口处累积的读请求所请求的总数据量,或者同时获取所述第一Ni端口处累积的读请求的数量和读请求所请求的总数据量。其中,这里的读请求是指所述第一Ni端口处接收到的读请求,接收到的所述读请求存入队列中,所述第一NC节点中的CPU从所述队列中依次读取并处理。
具体的,所述第一NC芯片获取所述第一Ni端口处的所述请求信息,具体可以是所述第一NC芯片的处理单元获取所述请求信息。在静态路由配置下,当所述第二NC节点中的CPU需要访问所述第一NC节点中CPU的地址空间时,所述第二NC节点中的CPU可以通过所述第二NC节点中的所述第二Ni端口向所述第一NC节点发送读请求。所述第二NC节点发送的读请求通过所述第二Ni端口到达所述第一NC节点的第一Ni端口处。之后,所述第一NC芯片的处理单元可以从所述第一Ni端口处获取到所述第二NC节点发送的读请求,所述第一NC芯片的处理单元对所述第一Ni端口处累积的读请求进行统计,从而得到所述读请求的数量、和/或读请求所请求的总数据量。进一步的,所述第一NC芯片的处理单元还可以将获取的所述读请求的数量、和/或读请求所请求的总数据量存储在所述第一NC芯片中的存储单元中。
在实际应用中,所述第一NC芯片的处理单元可以实时的获取所述第一Ni端口处接收到的所述请求信息,也可以周期性的获取所述第一Ni端口处接收到的所述请求信息,本申请实施例对此不作具体限定。
步骤402:当所述第一NC芯片根据第一时长内所述第一Ni端口处累积的请求信息,确定第一路径的链路状态为拥塞状态时,所述第一NC芯片开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径。
本申请实施例中,链路可以是指一个节点与另一个节点之间的一段物理线路,该物理线路可以是光纤或者线缆等,通过该物理线缆两个节点之间可进行通信。所述第一路径具体可以包括所述第一NC节点的第一Ni端口与所述第二NC节点的第二Ni端口之间的链路。所述第一路径为直连路径,可以是指所述第一NC节点和所述第二NC节点之间可以直接通信,中间不需要经过其他NC节点的转发。
当所述第一NC节点在第一时长内通过所述第一路径接收到所述第二NC节点发送的读请求时,所述第一NC节点中的CPU需要根据所述读请求从所述第一NC节点的内存中读取数据,并在第二时长内通过所述第一路径向所述第二NC节点返回读响应报文。因此,所述第一NC芯片可以根据第一时长内获取的所述第一Ni端口处累积的请求信息,确定所述第一路径在第二时长内的链路状态,所述第二时长可以是指所述第一NC节点向所述第二NC节点返回读响应报文的时长。这样可以确定第一路径未来一定时间段内的链路状态。
另外,所述请求信息可以包括读请求的数量,和/或读请求所请求的总数据量。因此,所述第一时长内第一Ni端口累积的请求信息可以包括所述第一时长内累积在所述第一Ni端口处的读请求的数量,和/或累积的读请求所请求的总数据量。
具体的,所述第一NC芯片的处理单元可以根据所述第一时长内所述第一Ni端口的请求信息,确定第二时长内所述第一路径的链路状态。具体实现方式可以包括:当所述第一Ni端口在所述第一时长内接收到的读请求的数量大于或等于第一阈值时,所述第一NC芯片的处理单元可以确定所述第一路径在第二时长内的链路状态为拥塞状态。或者,当所述第一Ni端口在所述第一时长内接收到的读请求所请求的总数据量大于或等于第二阈值时,所述第一NC芯片的处理单元可以确定所述第一路径在第二时长内的链路状态为拥塞状态。或者,当所述读请求的数量大于或等于第一阈值,且所请求的总数据量大于或等于第二阈值时,所述第一NC芯片的处理单元可以确定所述第一路径在第二时长内的链路状态为拥塞状态。
进而,当所述第一NC芯片的处理单元确定所述第一路径在第二时长内的链路状态为拥塞状态时,所述第一NC芯片可以开启动态路由。结合图3中所示的NC0节点的结构,开启动态路由具体实现过程可以为:所述第一NC芯片的处理单元向所述第一NC芯片的路由控制器发送路由开启指令,当所述路由控制器接收到所述路由开启指令时,所述路由控制器根据所述路由开启指令开启所述动态路由。
步骤403:所述第一NC节点获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态。
其中,步骤403与步骤402不分先后顺序,即所述第一NC节点可以在开启动态路由之前获取所述动态路由信息,也可以在开启动态路由之后获取所述动态路由信息,或者在获取在所述动态路由的过程中开启动态路由,本申请实施例对此不作具体限定。
另外,所述第一NC节点与所述第二NC节点之间可以存在多条路径,所述多条路径可以仅包括所述第一NC节点与所述第二NC节点之间的非直连路径,也可以包括所述第一NC节点与所述第二NC节点之间的非直连路径和直连路径,所述直连路径为所述第一路径。所述第一NC节点获取的动态路由信息可指示所述多条路径的链路状态。
所述第一NC节点可以通过以下步骤4031-步骤4032获取所述动态路由信息:
步骤4031:所述第一NC节点获取所述多个NC节点中至少一个NC节点的多个Ni端口的拥塞状态信息,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点。
其中,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口。
比如,以所述第一NC节点和所述第二NC节点之间的某一路径包括第三NC节点为例,假设第三NC节点包括8个Ni端口(比如,Ni1端口~Ni8端口),且第三NC节点使用Ni1端口与第一NC节点连接,使用Ni2端口与第二NC节点连接,则对于该条路径来说,所述至少一个NC节点的多个Ni端口中至少包括Ni1端口和Ni2端口,当然还可以包括Ni3端口~Ni8端口中的一个或多个,本申请实施例对此不作具体限定。
比如,以所述第一NC节点和所述第二NC节点之间的另一路径包括第三NC节点和第四NC节点为例,假设第三NC节点包括8个Ni端口(比如,Ni1端口~Ni8端口),第四NC节点包括8个Ni端口(比如,Ni9端口~Ni16端口),且第三NC节点使用Ni1端口与第一NC节点连接,第三NC节点使用Ni2端口与所述第四NC节点的Ni9端口连接,第四NC节点使用Ni10端口与第二NC节点连接。则对于该条路径来说,所述至少一个NC节点的多个Ni端口中至少包括Ni1端口、Ni10端口、以及Ni2端口和Ni9端口中的至少一个,当然还可以包括Ni3端口~Ni8端口以及Ni11端口~Ni16端口中一个或者多个,本申请实施例对此不作具体限定。
比如,以所述第一NC节点和所述第二NC节点之间的另一路径包括第三NC节点、第四NC节点和第五NC节点为例,假设第三NC节点包括8个Ni端口(比如,Ni1端口~Ni8端口),第四NC节点包括8个Ni端口(比如,Ni9端口~Ni16端口),第五NC节点包括8个Ni端口(比如,Ni17端口~Ni24端口),且第三NC节点使用Ni1端口与第一NC节点连接,第三NC节点使用Ni2端口与所述第四NC节点的Ni9端口连接,第四NC节点使用Ni10端口与第五NC节点的Ni17端口连接,第五NC节点使用Ni18与第二NC节点连接。则对于该条路径来说,所述至少一个NC节点的多个Ni端口中至少包括Ni1端口、Ni18端口、以及Ni2端口和Ni9端口中的至少一个、Ni10端口和Ni17端口中的至少一个,当然还可以包括Ni3端口~Ni8端口、Ni11端口~Ni16端口以及Ni19端口~Ni24端口中一个或者多个,本申请实施例对此不作具体限定。
另外,所述第一NC节点可以与多个NC节点相连,所述第一NC节点可以获取多个NC节点中所述至少一个NC节点的多个Ni端口的拥塞状态信息,即所述第一NC节点可以获取与所述第一NC节点连接的所有NC节点的多个Ni端口的拥塞状态信息,也可以获取与所述第一NC节点连接的部分NC节点的多个Ni端口的拥塞状态信息,本申请实施例对比不作限定。
具体的,对于所述至少一个NC节点中的任一NC节点,所述第一NC节点可以向所述该NC节点发送信息获取请求,当该NC节点接收到所述信息获取请求时,该NC节点可以确定其自身多个Ni端口的拥塞状态信息,并将其多个Ni端口的拥塞状态信息发送给所述第一NC节点,即所述第一NC节点主动的获取所述至少一个NC节点的多个Ni端口的拥塞状态信息;或者,所述至少一个NC节点确定其自身多个Ni端口的拥塞状态信息后,可以通过广播的方式发送其自身多个Ni端口的拥塞状态信息发送给所述第一NC节点,即所述第一NC节点被主动的获取所述至少一个NC节点的多个Ni端口的拥塞状态信息。
为便于理解,这里以该NC节点为所述第二NC节点为例进行说明,对所述第二NC节点确定所述第二NC节点的多个Ni端口的拥塞状态信息的过程进行详细说明,具体如下步骤a-步骤b所述。
步骤a:所述第二NC节点的NC芯片确定所述第二NC节点的多个Ni端口的状态信息。为便于描述,后续将所述第二NC节点的NC芯片称为第二NC芯片。
其中,一个Ni端口的状态信息包括该Ni端口处累积的请求信息、和/或该Ni端口处累积的发送信息。该Ni端口处累积的请求信息与上述步骤401中所述第一Ni端口处累积的请求信息类似,具体参见上述步骤401中的描述,本申请实施例在此不再赘述。所述发送信息可以包括写请求报文的信息,本申请实施例以所述写请求报文为例进行说明。因此,所述Ni端口处累积的发送信息可以包括累积的写请求报文的数量,和/或累积的写请求报文所携带的总数据量(即所有写请求报文所携带的数据量的总和)。
需要说明的是,所述Ni端口处累积的写请求报文是指需要通过所述Ni端口发送的写请求报文。所述累积的写请求报文按照先后到达所述Ni端口处的顺序在所述Ni端口处排列,在发送时按照所述排列顺序依次通过所述Ni端口发送。
对于所述第二NC节点的多个Ni端口的任一Ni端口,所述第二NC节点确定该Ni端口的状态信息时,可以仅确定所述Ni端口处累积的请求信息,或者仅确定所述Ni端口处累积的发送信息,或者同时确定所述Ni端口处累积的请求信息和累积的发送信息。
具体的,这里以同时确定所述Ni端口处累积的请求信息和累积的发送信息为例进行说明。在接收方向上,所述第二NC节点可以记录所述Ni端口处累积的请求信息,即累积的读请求的数量、和/或累积的读请求所请求的总数量,每个读请求所请求的数据量可以通过该读请求中的相应字段来获取。发送方向上,所述第二NC节点可以记录所述第一Ni端口处累积的发送信息,所述发送信息可以包括累积的写请求报文的数量、和/或所述写请求报文所携带的总数据量,每个写请求报文所携带的数据量可以通过该写请求报文中的相应字段来获取。
结合图3中所示的NC0节点的结构,确定所述第二NC节点的多个Ni端口的状态信息的过程具体可以由所述第二NC芯片的处理单元来实现。如图5所示,以所述第二NC节点中的一个Ni端口和一个CPU为例进行说明。具体的,所述第二NC芯片中的处理单元可以同时在接收方向和发送方向上获取所述Ni端口的状态信息,即所第二NC芯片可以获取通过所述Ni端口的请求信息和发送信息。其中,接收方向是指图5中由网络向CPU传输的方向,发送方向是指由CPU向网络传输的方向。在接收方向上,所述第二NC芯片的处理单元可以对所述Ni端口接收到的读请求进行报文信息提取,比如统计读请求的数量,以及每个读请求所请求的数据量等。在发送方向上,所述第二NC芯片的处理单元可以对写请求报文进行报文信息提取,比如,统计写请求报文的数量等。之后,所述第二NC芯片的处理单元可以根据接收方向和发送方向上提取的报文信息,确定所述Ni端口的状态信息。
需要说明的是,图5中接收方向上的报文处理可以是指对读请求报文的处理,发送方向上的报文处理是指对写请求报文发送前的处理。
步骤b:所述第二NC芯片根据所述第二NC节点的多个Ni端口的状态信息,确定所述多个Ni端口的拥塞状态信息。
其中,一个NC节点的多个Ni端口中的每个Ni端口可以对应一个拥塞状态信息,所述拥塞状态信息可以包括拥塞值、带宽占用率和可用带宽中的一种或者多种。在实际应用中,所述拥塞状态信息还可以包括其它用于指示Ni端口的拥塞程度的信息,本申请实施例对此不作具体限定。这里以所述多个Ni端口中的一个Ni端口为例,当所述第二NC节点确定该Ni端口的拥塞值时,所述第二NC节点可以将该Ni端口的状态信息进行归一化处理,从而得到该Ni端口的拥塞值。
比如,如下表1所示,该Ni端口的状态信息可以包括所述读请求的数量、所述读请求所请求的总数据量、所述写请求报文的数量和所述写请求报文所携带的总数据量。将所述写请求报文的数量和所述写请求报文所携带的总数据量进行归一化处理,可以得到该Ni端口的当前拥塞值P1;将所述读请求的数量和所述读请求所请求的总数据量进行归一化处理,可以得到该Ni端口在第二时长内的预测拥塞值P2。
表1
Figure BDA0001472904700000111
需要说明的是,上述表1所示的Ni端口的拥塞状态信息仅为示例的,上述表1并不对本申请实施例构成限定。
结合图3中所示的NC0节点的结构,这里将所述第二NC节点的NC芯片称为第二NC芯片。具体的,对于所述第二NC节点的多个Ni端口中的任一Ni端口,所述第二NC芯片的处理单元可以对所述Ni端口的状态信息进行归一化处理,得到所述Ni端口的拥塞状态信息。
步骤4032:所述第一NC节点根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述第一NC节点与所述第二NC节点之间多条路径的链路状态,以确定所述动态路由信息。
其中,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口。则所述第一NC芯片的处理单元确定所述多条路径的链路状态的过程可以为:对于所述多条路径中的每条路径,所述第一NC芯片的处理单元根据该条路径上所述至少一个NC节点的多个Ni端口中与所述第一NC节点连接的Ni端口的拥塞状态信息和/或该条路径上所述至少一个NC节点的多个Ni端口中与所述第二NC节点连接的Ni端口的拥塞状态信息,获取该条路径的拥塞状态信息;所述第一NC芯片的处理单元根据该条路径的拥塞状态信息,确定该条路径的链路状态。
比如,以所述第一NC节点和所述第二NC节点之间的某一路径包括第三NC节点为例,假设所述第三NC节点包括8个Ni端口(比如,Ni1端口~Ni8端口),且第三NC节点使用Ni1端口与第一NC节点连接,使用Ni2端口与第二NC节点连接,则所述至少一个NC节点的多个Ni端口中至少包括Ni1端口和Ni2端口。则所述第一NC芯片的处理单元根据所述Ni1端口的拥塞状态信息确定所述第一NC节点与所述第三NC节点之间的链路的状态信息,根据所述Ni2端口的拥塞状态信息确定所述第三NC节点与所述第二NC节点之间的链路的拥塞状态信息,再根据这两段链路的拥塞状态信息,确定该条路径的链路状态。
比如,以所述第一NC节点和所述第二NC节点之间的另一路径包括第三NC节点和第四NC节点为例,假设第三NC节点包括8个Ni端口(比如,Ni1端口~Ni8端口),第四NC节点包括8个Ni端口(比如,Ni9端口~Ni16端口),且第三NC节点使用Ni1端口与第一NC节点连接,第三NC节点使用Ni2端口与所述第四NC节点的Ni9端口连接,第四NC节点使用Ni10端口与第二NC节点连接。对于该条路径来说,所述至少一个NC节点的多个Ni端口中至少包括Ni1端口、Ni10端口、以及Ni2端口和Ni9端口中的至少一个。则所述第一NC芯片的处理单元根据所述Ni1端口的拥塞状态信息确定所述第一NC节点与所述第三NC节点之间的链路的状态信息,根据所述Ni2端口或Ni9端口的拥塞状态信息确定所述第三NC节点与所述第四NC节点之间的链路的拥塞状态信息,根据所述Ni10端口的拥塞状态信息确定所述第四NC节点与所述第二NC节点之间的链路的拥塞状态信息,再根据这三段链路的拥塞状态信息,确定该条路径的链路状态。
当所述第一NC节点接收到所述至少一个NC节点的多个Ni端口的拥塞状态信息后,所述第一NC节点可以根据所述至少一NC节点的多个Ni端口的拥塞状态信息,确定所述动态路由信息。结合图3中所示的NC0节点的结构,具体是由所述第一NC芯片的处理单元根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述动态路由信息。
比如,所述动态路由信息可以包括如下表2所示的字段。其中,目的节点是指路由的目的(比如,所述第一NC节点需要向所述第二NC发送读响应报文,则所述第二NC节点即为目的节点)。
表2
目的节点 路由的目的
是否为主路径 是表示主路径,否表示备用路径
拥塞值0 主路径的拥塞值
拥塞值11 备用路径的第一段链路的拥塞值
拥塞值12 备用路径的第二段链路的拥塞值
拥塞值1 备用路径的拥塞值
…… ……
需要说明的是,上述表2中的主路径是指直连路径,备用路径以通过一个NC节点中转的路径为例进行说明。比如,如图6所示,所述第一NC节点向所述第二NC发送读响应报文,则所述第一NC节点与所述第二NC节点之间的直连路径为主路径(即第一路径),对应的拥塞值可以表示为拥塞值0。所述第一NC节点通过第三NC节点向所述第二NC节点发送读响应报文,则所述第一NC节点与所述第三NC节点之间链路的拥塞值可以是拥塞值11,所述第三NC节点与所述第二NC节点之间链路的拥塞值可以是拥塞值12。将所述拥塞值11和所述拥塞值12进行归一化处理,即得到所述备用路径的拥塞值1。比如,拥塞值11为0.4,拥塞值12为0.8,归一化处理时每条链路对应的预设比例为50%,则拥塞值1为0.4*50%+0.8*50%=0.6。
具体的,对于所述多条路径中的每条路径,所述通过归一化处理得到该条路径的拥塞状态信息可以包括:当该条路径包括多条链路时,所述第一NC节点可以按照每段链路的拥塞状态信息,以及预设的拥塞状态信息与链路负荷的分担比率,获取该条路径的拥塞状态信息。
在实际应用中,所述第一NC节点也可以通过两个或者多个NC节点的中转向所述第二NC节点发送所述读响应报文,本申请实施例对此不做限定。另外,上述表2所述动态路由信息包括的字段仅为示例的,上述表2并不对本申请实施例构成限定。
具体的,当所述第一NC芯片确定所述多条路径中每条路径的拥塞状态信息之后,所述第一NC芯片可以根据每条路径的拥塞状态信息,确定该条路径的链路状态,具体如下所述。
示例性的,以所述拥塞状态信息为拥塞值为例进行说明。对于所述多条路径中的每条路径,当该条路径的拥塞值大于第一拥塞门限时,所述第一NC芯片的处理单元可以确定该条路径的链路状态确定为拥塞状态;当该条路径的拥塞值小于或等于所述第一拥塞门限时,所述第一NC芯片的处理单元可以确定该条路径的链路状态确定为非拥塞状态。进一步的,还可以将非拥塞状态分为空闲状态和正常状态。具体的,当该条路径的拥塞值小于所述第一拥塞门限,且大于第二拥塞门限时,所述第一NC芯片的处理单元可以确定该条路径的链路状态确定为正常状态;当该条路径的拥塞值小于或等于第二拥塞门限时,所述第一NC芯片的处理单元可以确定该条路径的链路状态确定为空闲状态。其中,所述第一拥塞门限大于所述第二拥塞门限,所述第一拥塞门限和所述第二拥塞门限可以事先进行设置。
进一步的,所述第一NC芯片的处理单元可以通过步骤4031-步骤4032,周期性的确定所述动态路由信息。在一个周期内,当某个链路忽然发生拥塞情况时,则发生拥塞的Ni端口的NC节点可以向其他NC节点发送新的拥塞状态信息。以第三NC节点的第三Ni端口发生拥塞为例,当所述第三NC节点中的第三Ni端口发生拥塞时,所述第三NC节点可以向所述第一NC节点发送所述第三Ni端口的拥塞状态信息(即链路状态反馈信息)。当所述第一NC节点接收到所述第三NC节点发送的第三Ni端口的拥塞状态信息时,所述第一NC节点可以根据所述第三Ni端口的拥塞状态信息,更新动态路由信息。
具体的,如图7所示,所述第一NC芯片的处理单元可以通过设置定时中断的方式,周期性的确定动态路由信息。以所述第一Ni端口为例,所述第一NC芯片的处理单元遍历所述第一Ni端口连接的NC节点的所有链路信息,即获取与所述第一Ni端口连接的所述第二NC节点的多个Ni端口的拥塞状态信息。同理,所述第一NC节点遍历所述第一NC节点的其他所有Ni端口连接的NC节点的所有链路信息,从而建立动态路由信息。
在一个周期内,当其他NC节点的Ni端口发生拥塞时,发生拥塞的Ni端口的NC节点可以向所述第一NC节点发送拥塞状态信息,以更新动态路由信息。具体的,以第三NC节点为例,当所述第三NC节点中的Ni端口发生拥塞时,所述第三NC节点确定所述Ni端口的拥塞状态信息,并发送给所述第一NC节点;所述第一NC节点接收所述第三NC节点发送的所述Ni端口的拥塞状态信息,所述第一NC芯片根据所述Ni端口的拥塞状态信息,更新所述动态路由信息。通过动态更新所述动态路由信息,可以保证所述动态路由信息的有效性。
如图8所示,假设该系统包括8个NC节点,每个NC节点都通过物理线缆与其他7个NC节点相连。以NC0节点为例,NC0节点通过每个Ni端口获取其连接的NC节点的7个Ni端口的拥塞状态信息,从而得到动态路由信息。当在下一周期更新前,NC3节点到NC2节点的链路发生拥塞时,即NC2节点中的某个Ni端口发生拥塞,则NC2节点可以将该Ni端口的拥塞值发送给NC0,以实时更新NC0节点中的路由状态信息(假设所述第三NC节点为NC2节点)。
此外,该方法还可以包括:所述第一NC节点向第四NC节点发送所述第一NC节点的多个Ni端口的拥塞状态信息,所述第四NC节点为多个NC节点中除所述第一NC节点以外的任意一个NC节点。即在所述第四NC节点启动动态路由时,所述第一NC节点也可以将自身的多个Ni端口的拥塞状态信息发送给所述第四NC节点,以使所述第四NC节点根据上述方法确定动态路由信息,从而根据所述动态路由信息选择处于非拥塞状态的路径传输信息,以减小信息传输的时延。
步骤404:所述第一NC芯片根据所述动态路由信息,从所述多条路径中选择链路状态为空闲状态的M条路径,所述M条路径为非直连路径。
需要说明的是,步骤404中以从所述多条路径中选择链路状态为空闲状态的M条路径为例进行说明。在实际应用中,也可以从所述多条路径中选择链路状态为非拥塞状态的M条路径,即所述M条路径中可以包括链路状态为空闲状态的路径,还可以包括链路状态为正常状态的路径,本申请实施例对此不作限定。
具体的,当所述第一NC芯片的处理单元根据所述动态路由信息,确定出链路状态为非空闲状态的路径的数量可以为N(N为大于或等于1的整数),所述第一NC芯片的处理单元从所述N条路径中选择M条路径,所述M为大于或等于1的整数,且所述M小于或等于所述N。比如,所述第一NC芯片的处理单元确定出链路状态为空闲状态的N条路径有10(即N=10)条,从中选择出5(M=5)条路径用于信息传输。
所述第一NC芯片的处理单元从所述N条路径中选择M条路径的具体过程可以包括:所述M条路径的数量已事先设置,则所述第一NC芯片的处理单元可以按照所述N条路径的拥塞值、带宽占用率或可用带宽,选择拥塞值较小的M条路径、或者选择带宽占用率较小的M条路径,或选择可用带宽较大的M条路径。或者,所述M条路径的数量未事先设置,则所述第一NC芯片的处理单元可以从所述N条路径中选择拥塞值小于或等于预设拥塞值的路径作为所述M条路径,或者选择带宽占用率小于或等于预设占用率门限的路径作为所述M条路径,或者选择可用带宽大或等于预设带宽门限的路径作为所述M条路径。在实际应用中,所述第一NC芯片的处理单元还可以根据其他方式从所述N条路径中选择所述M条路径,本申请实施例对此不作具体限定。
步骤405:所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息。
以所述第一NC节点向所述第二NC节点发送读响应报文为例,当所述第一NC芯片选择所述M条路径之后,所述第一NC节点可以在第二时长内通过所述M条路径和所述第一路径向所述第二NC节点发送读响应报文。图4中以所述M条路径中的一条路径包括第三NC节点为例进行说明,即所述第一NC节点可以将所述读响应报文发送给所述第三NC节点,由所述第三NC节点将其转发给所述第二NC节点。
比如,以所述第一NC节点为NC0节点、所述第二NC节点为NC1节点、所述M条路径为NC0-NC2-NC1和NC0-NC3-NC1为例,当NC0节点与NC1节点之间的第一路径在第二时长内为拥塞状态时,如图9中的(a)所示,则第二时长内所述第一Ni端口的缓存中会阻塞大量数据(比如,读响应报文)。当NC0节点通过NC0-NC2-NC1和NC0-NC3-NC1向NC1节点发送数据(比如,读响应报文)时,如图9中的(b)所示,所述第一Ni端口的缓存中阻塞的大量数据会通过所述M条路径分担。
具体的,当通过所述M条路径和所述第一路径向所述第二NC节点发送读响应报文(即M+1条路径)时,具体是由所述第一NC芯片的处理单元通过所述M条路径和所述第一路径发送所述读响应报文,所述第一NC芯片的处理单元可以按照平均分配的方式分担在所述M条路径中的每条路径上。或者,为所述M条路径中的每条路径设置一个权重值,所述第一NC芯片的处理单元按照对应的权重值将所述第一Ni端口的缓存中阻塞的大量数据分担至所述M条路径中的每条路径上。
具体的,所述第一NC芯片的处理单元可以按照平均分配的方式在所述(M+1)条路径上发送所述读响应报文。其中,所述M+1中的“1”是所述第一NC节点与所述第二NC节点之间的直连路径。即所述第一NC芯片的处理单元按照接收到的读请求的顺序,逐一在所述(M+1)条路径的每条路径上发送所述读响应报文。或者,所述(M+1)条路径中的每条路径对应一个权重值,所述第一NC芯片的处理单元按照所述接收到的读请求的顺序、以及所述每条路径对应的权重值,在所述(M+1)条路径上发送所述读响应报文。比如,所述(M+1)条可用路径的数量为3,其对应的权重值分别为0.3、0.2和0.5,当所述读响应报文的数量为10时,则在0.3对应的可用路径发送的读响应报文的数量为3,在0.2对应的可用路径发送的读响应报文的数量为2,在0.5对应的可用路径发送的读响应报文的数量为5。在实际应用中,所述第一NC芯片的处理单元也可以按照其他的方法在所述(M+1)条可用路径中发送所述读响应报文,本申请实施例对此不作具体限定。
进一步的,如图10所示,该方法还包括步骤406-步骤407。
步骤406:当所述请求信息满足第二预设条件时,所述第一NC芯片确定所述第一路径的链路状态为非拥塞状态。
其中,第二预设条件为所述读请求的数量小于所述第一阈值和/或所述读请求所请求的总数据量小于所述第二阈值时,所述第一NC芯片确定所述第一路径的链路状态为非拥塞状态。
进一步的,所述非拥塞状态可以包括空闲状态和正常状态。具体的,当所述读请求的数量小于第三阈值和/或所述读请求所请求的总数据量小于第四阈值时,所述第一NC芯片确定所述第一路径的链路状态为空闲状态。所述第三阈值小于所述第一阈值,且所述第三阈值可以是事先设置的所述第一NC节点的第一Ni端口处累积的读请求的数据的门限阈值。所述第四阈值小于所述第二阈值,且所述第四阈值可以是事先设置的第一NC节点的第一Ni端口处累积的读请求所请求的总数据量的门限阈值。
具体的,以所述空闲状态为例,当所述读请求的数量小于第三阈值或者所述请求的总数据量小于第四阈值,或者所述读请求的数量小于第三阈值且所述请求的总数据量小于第四阈值时,所述第一NC芯片的处理单元可以确定所述第一路径的链路状态为空闲状态,所述第一NC芯片的处理单元可以关闭动态路由,即所述第一NC芯片的处理单元向所述第一芯片的路由控制器发送关闭动态路由指令,当所述路由控制器接收所述关闭动态路由指令时,所述路由控制器关闭动态路由。
步骤407:所述第一NC节点通过所述第一路径向所述第二NC节点传输信息。
以所述第一NC节点向所述第二NC节点发送读响应报文为例,在所述第一NC节点通过所述(M+1)条路径向所述第二NC节点发送读响应报文一段时间后,如果所述读请求的数量小于第三阈值或者所请求的总数据量小于第四阈值,或者所述读请求的数量小于第三阈值且所请求的总数据量小于第四阈值,则所述第一NC芯片的处理单元可以确定所述第一路径的链路状态为空闲状态,从而可以通过所述路由控制器关闭动态路径。此时,所述第一NC节点可以仅通过所述第一路径向所述第二NC节点发送读响应报文。否则,当所述第一NC芯片的处理单元确定所述第一路径的链路状态仍为拥塞状态时,所述第一NC节点仍通过所述(M+1)条路径继续向所述第二NC节点发送读响应报文。
在所述第一路径处于非拥塞状态或者所述第一路径的故障恢复后,所述第一NC节点通过所述第一路径向所述第二NC节点传输信息,由于所述第一路径为直连路径,即所述第一路径最短,可以提高第一路径处于非拥塞状态时所述第一NC节点与所述第二NC节之间信息传输的效率,降低传输时延,同时还可以节省路径开销。
在本申请实施例中,所述第一NC节点可以确定第一Ni端口处累积的请求信息,当所述第一NC节点根据第一时长内所述第一Ni端口处的所述请求信息,确定第二时长内所述第一路径的链路状态为拥塞状态时,所述第一NC节点提前开启动态路径,根据动态路由信息选择所述第一NC节点与所述第二NC节点之间处于空闲状态的M条路径,通过所述M条路径和所述第一路径向所述第二NC节点发送读响应报文,从而解决了所述第二NC节点与所述第一NC节点之间因为读请求的累积而造成所述第一路径出现链路拥塞的问题,同时减小了访问时延,提高了系统的服务性能。
图11为本申请实施例提供的另一种信息传输方法的流程示意图,应用于包括多个NC节点的系统中,参见图11,该方法包括以下几个步骤。
步骤1101:第一NC节点的NC芯片确定所述第一NC节点的第一Ni端口处累积的发送信息,所述第一NC节点通过所述第一Ni端口与第二NC节点连接,所述发送信息是发送给所述第二NC节点的信息。
其中,所述第一NC节点和所述第二NC节点的结构可以为图3中所示的NC节点的结构,具体参见图3中的描述。所述第一NC节点可以通过所述第一Ni端口与所述第二NC节点的第二Ni端口连接。所述第一Ni端口可以是所述第一NC节点的多个Ni端口中的任一Ni端口,所述第二Ni端口可以是所述第二NC节点的多个Ni端口中的任一Ni端口。
需要说明的是,所述发送信息可以包括写请求报文,本申请实施例以写请求报文读请求为例进行说明。在静态路由配置下,此时动态路由处于关闭状态,当所述第一NC节点中的CPU需要向所述第二NC节点中CPU的地址空间中写数据时,所述第一NC节点可以通过所述第一Ni端口向所述第二NC节点发送写请求报文,在所述写请求报文发送给所述第二NC节点之前,所述写请求报文从所述第一NC节点的CPU发出后先到达所述第一NC节点的第一Ni端口处。所述第一NC节点的NC芯片可以获取到所述第一NC节点的第一Ni端口处的所述发送信息。为便于描述,后续将所述第一NC节点的NC芯片称为第一NC芯片。
所述发送信息可以包括写请求报文的数量(即累积的写请求报文的数量)和/或写请求报文所携带的总数据量(所有写请求报文所携带的数据量的总和)。即所述第一NC芯片可以获取所述第一Ni端口处累积的写请求报文的数量,或者获取所述第一Ni端口处累积的写请求报文所携带的总数据量,或者同时获取所述第一Ni端口处累积的写请求报文的数量和写请求报文所携带的总数据量。其中,所述第一Ni端口处累积的写请求报文是指所述第一NC节点的CPU发送的写请求报文,所述写请求报文在所述第一Ni端口处按照先后到达的顺序排列,所述第一NC节点按照排列顺序依次通过所述第一Ni端口向所述第二NC发送所述写请求报文。
具体的,所述第一NC芯片确定所述第一Ni端口处的所述发送信息,具体可以由所述第一NC芯片的处理单元进行获取。在静态路由配置下,当所述第一NC节点中的CPU通过所述第一Ni端口向所述第二NC节点发送写请求报文时,所述写请求报文先到达所述第一Ni端口处,从而所述第一NC芯片的处理单元可以获取所述第一Ni端口处的发送信息。所述第一NC芯片的处理单元对所述第一Ni端口处累积的写请求报文进行统计,从而得到所述写请求报文的数量、和/或写请求报文所携带的总数据量。进一步的,所述第一NC芯片的处理单元还可以将获取的所述写请求报文的数量、和/或所述写请求报文所请求的总数据量存储在所述第一NC芯片的存储单元中。
在实际应用中,所述第一NC芯片可以实时的获取所述第一NC节点的第一Ni端口处的所述发送信息,也可以周期性的获取所述第一NC节点的第一Ni端口处的所述发送信息,本申请实施例对此不作具体限定。
步骤1102:当所述第一NC芯片根据所述第一Ni端口处累积的发送信息,确定第一路径当前的链路状态为拥塞状态时,所述第一NC芯片开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径。
其中,链路可以是指一个节点与另一个节点之间的一段物理线路,该物理线路可以是光纤或者线缆等,通过该物理线缆两个节点之间可进行通信。所述第一路径具体可以包括所述第一NC节点的第一Ni端口与所述第二NC节点的第二Ni端口之间的链路。所述第一路径为直连路径,可以是指所述第一NC节点和所述第二NC节点之间可以直接通信,中间不需要经过其他NC节点的转发。
当所述第一NC节点获取到第一时长内所述第一Ni端口的发送信息时,所述第一NC节点可以根据所述第一时长内所述第一Ni端口的发送信息,确定所述第一路径当前的链路状态。所述发送信息可以包括写请求报文的数量和/或写请求报文的总数据量。因此,第一时长内所述第一Ni端口的发送信息可以包括所述第一时长内累积在所述第一Ni端口处的写请求报文的数量,和/或累积的写请求报文所请求的总数据量。
具体的,所述第一NC芯片的处理单元可以根据所述第一时长内所述第一Ni端口的发送信息,确定所述第一路径当前的链路状态。具体实现方式可以包括:当所述第一Ni端口在所述第一时长内累积的写请求报文的数量大于或等于第五阈值时,所述第一NC芯片中的处理单元可以确定所述第一路径当前的链路状态为拥塞状态。或者,当所述第一Ni端口在所述第一时长内累积的写请求报文所携带的总数据量大于或等于第六阈值时,所述第一NC芯片的处理单元可以确定所述第一路径当前的链路状态为拥塞状态。或者,当所述写请求报文的数量大于或等于第五阈值,且所述写请求报文所携带的总数据量大于或等于第六阈值时,所述第一NC芯片的处理单元可以确定所述第一路径当前的链路状态为拥塞状态。
进而,当所述第一NC芯片的处理单元确定所述第一路径当前的链路状态为拥塞状态时,所述第一NC芯片可以开启动态路由。结合图3中所示的NC0节点的结构,具体实现过程可以为:所述第一NC芯片的处理单元向所述第一NC芯片的路由控制器发送路由开启指令,当所述路由控制器接收到所述路由开启指令时,所述路由控制器根据所述路由开启指令开启所述动态路由。
步骤1103:所述第一NC节点获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态。
其中,所述第一NC节点获取动态路由信息的方法与上一实施例中步骤403的方法一致,具体参见上述步骤403中的描述,本申请实施例在此不再赘述。
此外,该方法还可以包括:所述第一NC节点向第四NC节点发送所述第一NC节点的多个Ni端口的拥塞状态信息,所述第四NC节点为多个NC节点中除所述第一NC节点以外的任意一个NC节点。即在所述第四NC节点启动动态路由时,所述第一NC节点也可以将自身的多个Ni端口的拥塞状态信息发送给所述第四NC节点,以使所述第四NC节点根据上述方法确定动态路由信息,从而根据所述动态路由信息选择处于非拥塞状态的路径传输信息,以减小信息传输的时延。
步骤1104:所述第一NC芯片根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径。
其中,当所述第一NC芯片确定所述第一路径当前的链路状态为拥塞状态时,为了减小所述第一NC节点与所述第二NC节点之间通信的时延,所述第一NC芯片可以开启动态路由,获取动态路由信息,并根据所述动态路由信息选择处于非拥塞状态的M条路径。具体的实现方式与上一个实施例中步骤404的实现方式一致,具体的实现方式参见上述步骤404中的阐述,本申请实施例在此不再赘述。
步骤1105:所述第一NC节点通过至少所述M条路径向所述第二NC节点发送所述写请求报文。
当所述第一NC芯片选择所述M条路径之后,所述第一NC节点可以通过所述M条路径和所述第一路径向所述第二NC节点发送写请求报文。图11中以所述M条路径中的一条路径包括第三NC节点为例进行说明,即所述第一NC节点可以将所述写请求报文发送给所述第三NC节点,由所述第三NC节点将其转发给所述第二NC节点。具体的,所述第一NC节点通过所述M条路径和所述第一路径向所述第二NC节点发送所述写请求报文的具体实现方式与上一个实施例中步骤405的实现方式类似,不同的是步骤405中发送的是读响应报文,步骤1105中发送的是写请求报文,具体的实现方式参见上述步骤405中的描述,本申请实施例在此不再赘述。
进一步的,结合图11所述的实施例,在所述第一NC节点通过所述M条路径和所述第一路径向所述第二NC节点发送所述写请求报文一段时间后,所述第一NC芯片的处理单元还可以根据所述第一Ni端口当前的状态信息,确定所述第一路径的链路状态是否为拥塞状态,从而根据所述第一路径的链路状态,确定发送所述写请求报文的路径。若所述第一路径的链路状态为非拥塞状态,则所述第一NC芯片的处理单元可以关闭所述动态路由,所述第一NC节点仅通过所述第一路径向所述第二NC节点发送写请求报文;若所述第一路径的链路状态为拥塞状态,则所述第一NC节点仍通过所述至少一条可用路径向所述第二NC节点发送写请求报文。具体的,所述第一NC芯片的处理单元根据所述第一Ni端口当前的状态信息,确定所述第一路径的链路状态是否为拥塞状态,从而根据所述第一路径的链路状态,确定发送所述写请求报文的路径的实现方式,与上一个实施例中步骤406-步骤407的实现方式类似,不同的是步骤406-步骤407确定的是发送读响应报文的路径,本实施例中确定的是发送写请求报文的路径,具体的实现方式具体参见上述步骤406-步骤407中的阐述,本申请实施例在此不再赘述。
在本申请实施例中,所述第一NC芯片可以获取所述第一Ni端口处累积的发送信息,当所述第一NC芯片根据第一时长内所述第一Ni端口处的所述发送信息,确定所述第一路径当前的链路状态为拥塞状态时,所述第一NC芯片开启动态路径,根据获取的所述动态路由信息选择所述第一NC节点与所述第二NC节点之间处于空闲状态的M条路径,所述第一NC节点通过所述M条路径和所述第一路径向所述第二NC节点发送写请求报文,从而解决了所述第二NC节点与所述第一NC节点之间因为写请求报文的累积而造成所述第一路径出现拥塞的问题,同时减小了访问时延,提高了系统的服务性能。
图12为本申请实施例提供的又一种信息传输方法的流程示意图,应用于包括多个NC节点的NC系统中,参见图12,该方法包括以下几个步骤。
步骤1201:第一NC芯片确定第一路径上的信息传输中断,所述第一NC节点通过所述第一NC节点的第一Ni端口与第二NC节点连接,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径。
其中,所述第一NC节点和所述第二NC节点的结构可以为图3中所示的NC节点的结构,具体参见图3中的描述。所述第一NC节点可以通过所述第一NC节点的第一Ni端口与所述第二NC节点的第二Ni端口连接。所述第一NC节点的第一Ni端口可以是所述第一NC节点的多个Ni端口中的任一Ni端口,所述第二NC节点的第二Ni端口可以是所述第二NC节点的多个Ni端口中的任一Ni端口。
在静态路由配置下,此时动态路由处于关闭状态,当所述第一NC节点通过所述第一Ni端口向所述第二NC节点传输信息时,如果所述第一NC节点与所述第二NC节点之间的第一路径故障(比如,所述第一NC节点与所述第二NC节点之间的物理线缆发生故障),则所述信息传输会出现中断。其中,如果是所述第一NC节点向所述第二NC节点发送信息,则发送的信息会滞留在所述第一Ni端口处。如果是所述第二NC节点向所述第一NC节点发送数据,则发送的信息会滞留在所述第二Ni端口处,从而所述第一NC节点接收不到所述第二NC节点发送的信息。因此,当所述第一NC节点确定发送给所述第二NC节点的信息全部滞留在所述第一Ni端口处时,所述第一NC节点可以确定所述第一路径故障。或者,当所述第一NC节点接收不到所述第二NC节点发送的信息时,所述第一NC节点也可以确定所述第一路径故障。
具体的,所述第一NC芯片确定所述第一路径上的信息传输中断,具体可以由所述第一NC芯片的处理单元进行获取。在静态路由配置下,当所述第一NC节点向所述第二NC节点发送信息时,所述第一NC节点中CPU发送的信息会经过所述第一NC芯片的处理单元,经过所述处理单元后到达所述第一Ni端口处。当所述第一NC芯片的处理单元确定所述第一NC节点发送给所述第二NC节点的信息全部滞留在所述第一Ni端口处时,所述第一NC芯片的处理单元可以确定所述第一路径上的信息传输中断。或者,当所述第一NC芯片的处理单元确定长时间段内所述第一Ni端口处未接收到所述第二NC节点发送给所述第一NC节点的信息时,所述第一NC芯片的处理单元可以确定所述第一路径上的信息传输中断。
可选的,当所述第一NC节点向所述第二NC节点发送的信息经过所述第一NC芯片的处理单元时,所述第一NC芯片的处理单元可以统计所述信息的数据量,如果所述第一Ni端口处滞留信息的数据量与发送的所述信息的数据量相同,则所述第一NC芯片的处理单元可以确定所述第一路径上的信息传输中断。或者,当所述第二NC节点向所述第一NC节点发送信息时,如果所述第一NC芯片的处理单元确定长时间段内所述第一Ni端口处接收到的信息的数据量为零,则所述第一NC芯片的处理单元可以确定所述第一路径上的信息传输中断。
在实际应用中,所述第一NC芯片的处理单元可以实时的获取所述第一Ni端口处所述第一NC节点与所述第二NC节点之间传输信息的数据量,也可以周期性的获取所述第一Ni端口处所述第一NC节点与所述第二NC节点之间传输信息的数据量,本申请实施例对此不作具体限定。
步骤1202:所述第一NC芯片开启动态路由,并根据动态路由信息选择处于非拥塞状态的M条路径,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态,所述M条路径为非直连路径。
当所述第一NC芯片的处理单元确定所述第一路径上的信息传输中断时,所述第一NC芯片的处理单元可以开启动态路由,并根据动态路由信息选择处于非拥塞状态的M条路径。具体的,所述第一NC芯片的处理单元开启动态路由,并根据所述动态路由信息选择处于非拥塞状态的M条路径的实现方式与上述实施例步骤402中的实现方式类似,具体实现方式参见步骤402中的描述,本申请实施例在此不再赘述。
进一步的,所述方法还包括:所述第一NC芯片获取动态路由信息。具体的,所述第一NC芯片获取动态路由信息的过程与上述实施例中步骤403中的实现方式类似,具体实现方式参见步骤403中的描述,本申请实施例在此不再赘述。
其中,所述第一NC芯片获取动态路由信息的过程与所述第一NC芯片开启动态路由的过程可以不分先后顺序,即所述第一NC节点可以在开启动态路由之前获取所述动态路由信息,也可以在开启动态路由之后获取所述动态路由信息,或者在获取在所述动态路由的过程中开启动态路由,本申请实施例对此不作具体限定。
步骤1203:所述第一NC节点通过所述M条路径向所述第二NC节点传输信息。
当所述第一NC芯片的处理单元选择所述M条路径之后,所述第一NC节点可以通过所述M条路径向所述第二NC节点传输信息。图12中以所述M条路径中的一条路径包括第三NC节点为例进行说明,则所述第一NC节点向所述第二NC节点传输信息时,可以将信息通过所述第三NC节点进行转发。即所述第一NC节点将信息发送给所述第三NC节点,由所述第三NC节点将其转发给所述第二NC节点。或者,当所述第二NC节点向所述第一NC节点传输信息时,所述第二NC节点将信息发送给所述第三NC节点,由所述第三NC节点将其转发给所述第一NC节点。具体的,所述第一NC节点通过所述M条路径向所述第二NC节点传输信息的具体实现方式与上述实施例中步骤404的实现方式类似,具体的实现方式参见上述步骤404中的阐述,本申请实施例在此不再赘述。
进一步的,当所述第一路径上的信息传输恢复(比如,线路故障恢复)时,所述第一NC芯片的处理单元可以关闭动态路由,仅通过所述第一路径向所述第二NC节点传输信息。具体的所述第一NC芯片的处理单元关闭动态路由的实现方式也可以参考上述实施例中关于关闭所述动态路由的描述,本申请实施例在此不再赘述。
在本申请实施例中,当所述第一NC芯片确定第一路径上的信息传输中断时,所述第一NC芯片开启动态路径,并根据获取的所述动态路由信息选择所述第一NC节点与所述第二NC节点之间处于空闲状态的M条路径,通过所述M条路径向所述第二NC节点传输信息,从而解决了因为物理线缆故障等造成信息传输中断的问题,提高了系统的服务性能。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如第一NC节点、第二NC节点和第三NC节点等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的网元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对第一NC节点和第二NC节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图13示出了上述实施例中所涉及的第一NC节点的NC芯片(即第一NC芯片)的一种可能的结构示意图,该第一NC节点的NC芯片可以包括:处理单元1301、获取单元1302和收发单元1303。其中,处理单元1301用于支持第一NC节点的NC芯片执行图4中的步骤401-步骤402和步骤404,图10中步骤401-步骤402、步骤404和步骤406、图11中的步骤1101-步骤1102和步骤1104,或者图12中的步骤1201和步骤1202等;获取单元1302用于支持第一NC节点的NC芯片执行图4或图10中的步骤403、图11中的步骤1103;收发单元1303用于支持第一NC节点的NC芯片执行图4中的步骤405、图10中的步骤405和步骤407、图11中的步骤1105、或者图12中的步骤1203。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在硬件实现上,上述处理单元1301可以为处理器,获取单元1302可以为接收器,收发单元1303可以为接收器和发送器集成的单元,接收器与发送器也可以构成通信接口。
图14所示,为本申请的实施例提供的上述实施例中所涉及的第一NC节点的NC芯片的一种可能的逻辑结构示意图。所述第一NC节点的NC芯片包括:处理器1402、通信接口1403、存储器1401以及总线1404。处理器1402、通信接口1403以及存储器1401通过总线1404相互连接。在本申请的实施例中,处理器1402用于对所述第一NC节点的NC芯片的动作进行控制管理,例如,处理器1402用于支持所述第一NC节点的NC芯片执行图4中的步骤401-步骤402和步骤404,图10中步骤401-步骤402、步骤404和步骤406、图11中的步骤1101-步骤1102和步骤1104,或者图12中的步骤1201-步骤1202,和/或用于本文所描述的技术的其他过程。通信接口1403用于支持所述第一NC节点的NC芯片进行通信。存储器1401,用于存储所述第一NC节点的NC芯片的程序代码和数据。
其中,处理器1402可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1404可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用对应各个功能划分各个功能模块的情况下,图15示出了上述实施例中所涉及的第二NC节点的NC芯片的一种可能的结构示意图,所述第二NC节点的NC芯片包括:处理单元1501和收发单元1502。其中,处理单元1501支持所述第二NC节点的NC芯片确定其自身多个Ni端口的拥塞状态信息的步骤;收发单元1502用于支持所述第二NC节点的NC芯片向第一NC节点发送读请求的步骤、向第一NC节点发送第二NC节点的多个Ni端口的拥塞状态信息的步骤、执行图12中的步骤1203、接收图4中步骤405发送的读响应报文的步骤、接收图10中步骤404和步骤406发送的读响应报文的步骤、或者接收图11中步骤1104发送的写请求报文的步骤等。上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在硬件实现上,上述处理单元1501可以为处理器,收发单元1502可以为接收器和发送器集成的单元,接收器与发送器也可以构成通信接口。
图16所示,为本申请的实施例提供的上述实施例中所涉及的第二NC节点的NC芯片一种可能的逻辑结构示意图。所述第二NC节点的NC芯可以包括:处理器1602、通信接口1603、存储器1601以及总线1604。处理器1602、通信接口1603以及存储器1601通过总线1604相互连接。在本申请的实施例中,处理器1602用于对所述第二NC节点的NC芯片的动作进行控制管理,例如,处理器1602用于支持所述第二NC节点的NC芯片执行确定所述第二NC节点的多个Ni端口的拥塞状态信息的步骤,和/或用于本文所描述的技术的其他过程。通信接口1603用于支持所述第二NC节点的NC芯片进行通信。存储器1601,用于存储所述第二NC节点中的NC芯片的程序代码和数据。
其中,处理器1602可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1604可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,提供了一种芯片系统,包括:应用于NC节点中,所述芯片系统包括至少一个处理器,存储器和收发器,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有指令;所述指令被所述处理器执行,以执行图10-图12中任一图示所提供的信息传输方法中所述第一NC节点的步骤,或者执行所述第二NC节点的步骤。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行图4、图10-图12中任一图示所提供的信息传输方法中所述第一NC节点的步骤,或者执行所述第二NC节点的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施图4、图10-图12中任一图示所提供的信息传输方法中所述第一NC节点的步骤,或者执行所述第二NC节点的步骤。前述的可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的另一实施例中,如图17所示,还提供一种包括多个NC节点的系统,该多个NC节点中包括第一NC节点和第二NC节点,该多个NC节点还包括至少一个NC节点,所述至少一个NC节点为所述多个NC节点中除所述第一NC节点和所述第二NC节点之外的NC节点。其中,第一NC节点中的NC芯片可以为图13或图14所示的第一NC节点的NC芯片,用于执行图4、图10-图12中任一图示所提供的信息传输方法中所述第一NC节点的步骤;和/或,第二NC节点中的NC芯片可以为图15或图16所示的第二NC节点的NC芯片,用于执行图4、图10-图12中任一图示所提供的信息传输方法中所述第二NC节点的步骤。
在本申请实施例中,第一NC芯片可以获取第一Ni端口的状态信息,当根据第一Ni端口的状态信息确定第一NC节点与第二NC节点之间的第一路径为拥塞状态时,启动动态路由,并根据获取的所述动态路由信息选择第一NC节点与第二NC节点之间处于空闲状态的M条路径,所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息,从而避免了第一路径在当前处于拥塞状态、或者未来一段时间段内处于拥塞状态时造成访问时延大的问题。同时,在确定第一NC节点与第二NC节点之间第一路径故障时,通过本申请实施例的方法环可以避免整个系统可能出现宕机的问题。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种信息传输方法,其特征在于,应用于包括多个节点控制器NC节点的系统中,所述多个NC节点的系统包括第一NC节点和第二NC节点,所述方法包括:
当所述第一NC节点确定第一路径满足预设条件时,所述第一NC节点开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径;
所述第一NC节点获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态;
所述第一NC节点根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径,所述M为大于或等于1的整数;
所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息。
2.根据权利要求1所述的方法,其特征在于,所述第一NC节点获取动态路由信息,包括:
所述第一NC节点获取所述多个NC节点中至少一个NC节点的多个Ni端口的拥塞状态信息,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点;其中,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口;
所述第一NC节点根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述多条路径的链路状态,以获取所述动态路由信息。
3.根据权利要求2所述的方法,其特征在于,所述第一NC节点根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述多条路径的链路状态,包括:
对于所述多条路径中的每条路径,所述第一NC节点根据该条路径上所述至少一个NC节点的多个Ni端口中与所述第一NC节点连接的Ni端口的拥塞状态信息,和/或该条路径上所述至少一个NC节点的多个Ni端口中与所述第二NC节点连接的Ni端口的拥塞状态信息,获取该条路径的拥塞值;当该条路径的拥塞值大于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为拥塞状态,当该条路径的拥塞值小于或等于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为非拥塞状态。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一NC节点包括多个Ni端口,所述第一NC节点通过第一Ni端口与所述第二NC节点相连,所述第一Ni端口为所述第一NC节点的多个Ni端口的端口,所述方法还包括:
所述第一NC节点确定所述第一Ni端口的状态信息,所述第一Ni端口的状态信息包括第一时长内所述第一Ni端口处累积的请求信息和/或所述第一Ni端口处累积的发送信息;
所述第一NC节点根据所述第一Ni端口的状态信息,确定所述第一Ni端口的拥塞状态信息。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述预设条件包括以下中的至少一种:所述第一路径当前的链路状态为拥塞状态、所述第一路径在未来一段时长内的链路状态为拥塞状态、所述第一路径发生故障。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
当所述第一NC节点确定所述第一路径的链路状态为非拥塞状态、或者所述第一路径的故障恢复时,所述第一NC节点关闭所述动态路由;
所述第一NC节点通过所述第一路径向所述第二NC节点传输信息。
7.一种节点,其特征在于,应用于包括多个节点控制器NC节点的系统中,所述节点作为第一NC节点,包括:
处理单元,用于当确定第一路径满足预设条件时开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径;
获取单元,用于获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态;
所述处理单元,还用于根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径,所述M为大于或等于1的整数;
收发单元,用于所述第一NC节点通过至少所述M条路径向所述第二NC节点传输信息。
8.根据权利要求7所述的节点,其特征在于,每个NC节点包括多个Ni端口,
所述获取单元,还用于获取所述多个NC节点中至少一个NC节点的多个Ni端口的拥塞状态信息,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点;其中,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口;
所述处理单元,还用于根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述多条路径的链路状态,以确定所述动态路由信息。
9.根据权利要求8所述的节点,其特征在于,所述处理单元,具体用于:
对于所述多条路径中的每条路径,根据该条路径上所述至少一个NC节点的多个Ni端口中与所述第一NC节点连接的Ni端口的拥塞状态信息和/或该条路径上所述至少一个NC节点的多个Ni端口中与所述第二NC节点连接的Ni端口的拥塞状态信息,获取该条路径的拥塞值;
当该条路径的拥塞值大于第一拥塞门限时,将该条路径的链路状态确定为拥塞状态,当该条路径的拥塞值小于或等于第一拥塞门限时,将该条路径的链路状态确定为非拥塞状态。
10.根据权利要求7-9任一项所述的节点,其特征在于,所述第一NC节点包括多个Ni端口,所述第一NC节点通过第一Ni端口与所述第二NC节点相连,所述第一Ni端口为所述第一NC节点的多个Ni端口的端口,所述处理单元,还用于:
确定所述第一Ni端口的状态信息,所述第一Ni端口的状态信息包括第一时长内所述所述第一Ni端口处累积的请求信息和/或所述所述第一Ni端口处累积的发送信息;
根据所述第一Ni端口的状态信息,确定所述第一Ni端口的拥塞状态信息。
11.根据权利要求7-9任一项所述的节点,其特征在于,所述预设条件包括以下中的至少一种:所述第一路径当前的链路状态为拥塞状态、所述第一路径在未来一段时长内的链路状态为拥塞状态、所述第一路径发生故障。
12.根据权利要求7-9任一项所述的节点,其特征在于,
所述处理单元,还用于当确定所述第一路径的链路状态为非拥塞状态、或者所述第一路径的故障恢复时,关闭所述动态路由;
所述收发单元,还用于通过所述第一路径向所述第二NC节点传输信息。
13.一种包括多个节点控制器NC节点的系统,其特征在于,所述多个NC节点包括第一NC节点和第二NC节点;其中,
所述第一NC节点,用于当确定第一路径满足预设条件时,所述第一NC节点开启动态路由,所述第一路径为所述第一NC节点与第二NC节点之间的直连路径;
所述第一NC节点,用于获取动态路由信息,所述动态路由信息指示所述第一NC节点与所述第二NC节点之间的多条路径的链路状态;
所述第一NC节点,用于根据所述动态路由信息,从所述多条路径中选择链路状态为非拥塞状态的M条路径,所述M条路径为非直连路径,所述M为大于或等于1的整数;
所述第一NC节点,用于通过至少所述M条路径向所述第二NC节点传输信息;
所述第二NC节点,用于通过至少所述M条路径接收所述第一NC节点传输的信息。
14.根据权利要求13所述的系统,其特征在于,所述第一NC节点,还用于:
获取所述多个NC节点中至少一个NC节点的多个Ni端口的拥塞状态信息,所述至少一个NC节点是所述第一NC节点和所述第二NC节点之外的NC节点;其中,所述至少一个NC节点的多个Ni端口至少包括所述至少一个NC节点中与所述第一NC节点连接的Ni端口或所述至少一个NC节点中与所述第二NC节点连接的Ni端口;
根据所述至少一个NC节点的多个Ni端口的拥塞状态信息,确定所述多条路径的链路状态,以获取所述动态路由信息。
15.根据权利要求14所述的系统,其特征在于,所述第一NC节点,还用于:
对于所述多条路径中的每条路径,根据该条路径上所述至少一个NC节点的多个Ni端口中与所述第一NC节点连接的Ni端口的拥塞状态信息和/或该条路径上所述至少一个NC节点的多个Ni端口中与所述第二NC节点连接的Ni端口的拥塞状态信息,获取该条路径的拥塞值;当该条路径的拥塞值大于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为拥塞状态,当该条路径的拥塞值小于或等于第一拥塞门限时,所述第一NC节点将该条路径的链路状态确定为非拥塞状态。
16.根据权利要求13-15任一项所述的系统,其特征在于,所述第一NC节点包括多个Ni端口,所述第一NC节点通过第一Ni端口与所述第二NC节点相连,所述第一Ni端口为所述第一NC节点的多个Ni端口的端口,所述第一NC节点,还用于:
确定所述第一Ni端口的状态信息,所述第一Ni端口的状态信息包括第一时长内所述第一Ni端口处累积的请求信息和/或所述第一Ni端口处累积的发送信息;
根据所述第一Ni端口的状态信息,确定所述第一Ni端口的拥塞状态信息。
17.根据权利要求13-15任一项所述的系统,其特征在于,所述预设条件包括以下中的至少一种:所述第一路径当前的链路状态为拥塞状态、所述第一路径在未来一段时长内的链路状态为拥塞状态、所述第一路径发生故障。
18.根据权利要求13-15任一项所述的系统,其特征在于,
所述第一NC节点,还用于当所述第一NC节点确定所述第一路径的链路状态为非拥塞状态、或者所述第一路径的故障恢复时,关闭所述动态路由;
所述第一NC节点,还用于通过所述第一路径向所述第二NC节点传输信息;
所述第二NC节点,还用于通过所述第一路径接收所述第一NC节点传输的信息。
19.一种节点,其特征在于,所述节点作为第一NC节点,包括存储器和处理器,所述存储器中存储代码和数据,所述处理器运行所述存储器中的代码,使得所述节点执行权利要求1-6任一项所述的信息传输方法。
20.一种可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述可读存储介质在设备上运行时,使得所述设备执行权利要求1-6任一项所述的信息传输方法。
CN201711148094.7A 2017-11-17 2017-11-17 一种信息传输方法及装置 Active CN109802889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711148094.7A CN109802889B (zh) 2017-11-17 2017-11-17 一种信息传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711148094.7A CN109802889B (zh) 2017-11-17 2017-11-17 一种信息传输方法及装置

Publications (2)

Publication Number Publication Date
CN109802889A CN109802889A (zh) 2019-05-24
CN109802889B true CN109802889B (zh) 2020-10-27

Family

ID=66556044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711148094.7A Active CN109802889B (zh) 2017-11-17 2017-11-17 一种信息传输方法及装置

Country Status (1)

Country Link
CN (1) CN109802889B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901709B (zh) * 2020-03-25 2023-01-17 北京控制与电子技术研究所 一种多网络控制备份的光纤通信网络系统
CN113543206B (zh) * 2020-04-21 2023-08-22 华为技术有限公司 数据传输的方法、系统和装置
CN114268936B (zh) * 2022-03-01 2022-07-12 荣耀终端有限公司 数据传输方法及装置
CN117785788B (zh) * 2024-02-27 2024-04-26 南京达道电子科技有限公司 一种基于权重因子的片间通信方法及通信系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286929A (zh) * 2008-05-30 2008-10-15 广东工业大学 基于负载多变的路由器间隔式拥塞控制方法
CN101534523A (zh) * 2009-04-08 2009-09-16 西安电子科技大学 具有业务感知能力的认知网络路由方法
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
CN105634694A (zh) * 2014-11-03 2016-06-01 杭州华为数字技术有限公司 一种节点间传输数据的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9059867B2 (en) * 2005-03-02 2015-06-16 Cisco Technology, Inc. Technique for selecting a path computation element based on response time delay
US9584443B2 (en) * 2014-08-08 2017-02-28 Pismo Labs Technology Limited Methods and systems for transmitting data through an aggregated connection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286929A (zh) * 2008-05-30 2008-10-15 广东工业大学 基于负载多变的路由器间隔式拥塞控制方法
CN101534523A (zh) * 2009-04-08 2009-09-16 西安电子科技大学 具有业务感知能力的认知网络路由方法
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
CN105634694A (zh) * 2014-11-03 2016-06-01 杭州华为数字技术有限公司 一种节点间传输数据的方法和系统

Also Published As

Publication number Publication date
CN109802889A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
CN109802889B (zh) 一种信息传输方法及装置
US7924708B2 (en) Method and apparatus for flow control initialization
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US7633861B2 (en) Fabric access integrated circuit configured to bound cell reorder depth
KR101170262B1 (ko) 익스프레스 가상 채널을 사용하기 위한 방법, 라우터 노드 및 인스트럭션 세트
US20170118108A1 (en) Real Time Priority Selection Engine for Improved Burst Tolerance
US7165131B2 (en) Separating transactions into different virtual channels
US20170063734A1 (en) Automatic buffer sizing for optimal network-on-chip design
US7274660B2 (en) Method of flow control
WO2014051778A1 (en) Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices
JP2016501474A (ja) 分散型スイッチレス相互接続
JP2016501475A (ja) 受動相互接続及び分散型スイッチレススイッチングを行うルータ
JPH04227155A (ja) ネットワーク情報転送方法及び装置
CN105743816B (zh) 一种链路聚合方法及装置
US10135761B2 (en) Switch device, control method, and storage medium
CN111835652A (zh) 一种数据流的虚拟通道的设置方法及装置
US20130070779A1 (en) Interleaving Data Packets In A Packet-Based Communication System
JP2015536621A (ja) 受動接続性光学モジュール
US20190044872A1 (en) Technologies for targeted flow control recovery
CN115134304A (zh) 云计算数据中心避免数据包乱序的自适应负载均衡方法
US9497141B2 (en) Switch point having look-ahead bypass
CN110601996B (zh) 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法
US8068508B2 (en) Electronic circuit with processing units coupled via a communication network
JP3277924B2 (ja) 交換システム
Hu MiniCAR: Minimal Congestion-Aware Routing Method in Fine-Grained Circuit-Switched Networks for Parallel Computing Systems

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