CN113568863A - 数据传输方法、路由节点、众核***、计算机可读介质 - Google Patents
数据传输方法、路由节点、众核***、计算机可读介质 Download PDFInfo
- Publication number
- CN113568863A CN113568863A CN202110880755.5A CN202110880755A CN113568863A CN 113568863 A CN113568863 A CN 113568863A CN 202110880755 A CN202110880755 A CN 202110880755A CN 113568863 A CN113568863 A CN 113568863A
- Authority
- CN
- China
- Prior art keywords
- routing node
- port
- data
- transmitted
- offset address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000005540 biological transmission Effects 0.000 title claims abstract description 56
- 230000002159 abnormal effect Effects 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种数据传输方法,应用于众核***的路由节点,包括:在当前路由节点中用于转发待传输数据的第一端口异常的情况下,根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口;通过所述第二端口转发所述待传输数据;其中,所述第二端口与接收所述待传输数据的端口不同;所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。本公开还提供一种数据传输方法、一种路由节点、一种众核***、一种计算机可读介质。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种数据传输方法、一种数据传输方法、一种众核***及其中的路由节点、一种计算机可读介质。
背景技术
众核***可以是由至少一个芯片构成的,每个芯片具有多个计算单元,每个芯片中可独立调度并拥有完整计算能力的最小计算单元称为核心。
在众核***中,多个核心可以联合工作,各个核心可以分别独立运行程序指令,利用并行计算的能力加快程序的运行速度,并提供多任务处理能力。
在一些相关技术中,众核***中的路由拓扑会对众核***的性能和成本产生制约。
发明内容
本公开提供一种数据传输方法、一种数据传输方法、一种众核***及其中的路由节点、一种计算机可读介质。
第一方面,本公开实施例提供一种数据传输方法,应用于众核***的路由节点,包括:
在当前路由节点中用于转发待传输数据的第一端口异常的情况下,根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口;
通过所述第二端口转发所述待传输数据;
其中,所述第二端口与接收所述待传输数据的端口不同;所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
在一些实施例中,所述目标路由节点的信息包括通过所述第一端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第一偏移地址;根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口的步骤包括:
根据所述第一偏移地址确定所述第二端口。
在一些实施例中,当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口,不同方向的优先级不同;所述第一偏移地址包括与多个方向一一对应的多个偏移地址分量;根据所述第一偏移地址确定所述第二端口的步骤包括:
根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向;
将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口。
在一些实施例中,所述第一端口所在的方向为第一方向,多个方向中除所述第一方向以外的方向为第二方向;所述第一方向对应的偏移地址分量为第一偏移地址分量,所述第二方向对应的偏移地址分量为第二偏移地址分量;根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤包括:
当所述第二偏移地址分量均为零时,将所述第二方向中优先级最高的一者确定为所述第一目标方向。
在一些实施例中,根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤还包括:
当存在非零的所述第二偏移地址分量时,将非零的所述第二偏移地址分量对应的第二方向中优先级最高的一者确定为所述第一目标方向。
在一些实施例中,每个方向包括两个子方向;将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:
将在所述第一目标方向上的两个端口中,使所述第一目标方向对应的第二偏移地址分量趋于零的子方向对应的一者确定为所述第二端口。
在一些实施例中,将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:
将所述第一目标方向上的两个端口中正常的一者确定为所述第二端口。
在一些实施例中,通过所述第二端口转发所述待传输数据的步骤之前,所述数据传输方法还包括:
根据所述第二端口将所述待传输数据携带的第一偏移地址更新为第三偏移地址,所述第三偏移地址为所述目标路由节点相对于下一跳路由节点的偏移地址,所述下一跳路由节点与当前路由节点通过所述第二端口相连接。
在一些实施例中,所述目标路由节点的信息包括所述目标路由节点的绝对地址;根据所述待传输数据携带的目标路由节点的信息确定所述第二端口的步骤包括:
根据与当前路由节点的绝对地址和所述目标路由节点的绝对地址,确定所述第二端口。
在一些实施例中,所述路由节点包括输出缓冲器,通过所述第二端口转发所述待传输数据的步骤包括:
将所述待传输数据写入所述输出缓冲器;
根据优先级仲裁转发所述输出缓冲器中的所述待传输数据。
在一些实施例中,所述数据传输方法还包括:
将当前路由节点中连接异常路由节点的端口标记为异常,所述异常路由节点为与当前路由节点相连接的多个路由节点中发生故障的一者。
第二方面,本公开实施例提供一种数据传输方法,应用于众核***的路由节点,所述路由节点为接收根据本公开实施例第一方面所述的任意一种数据传输方法转发的待传输数据的路由节点,所述数据传输方法包括:
根据第一端口选择策略和待传输数据携带的目标路由节点的信息,确定转发所述待传输数据的第三端口;
当所述第三端口与接收所述待传输数据的端口相同时,修改所述第一端口选择策略,得到第二端口选择策略;
根据所述目标路由节点的信息和所述第二端口选择策略,确定第四端口;
通过所述第四端口转发所述待传输数据;
其中,所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
在一些实施例中,所述目标路由节点的信息包括通过所述第三端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第四偏移地址;当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口;所述第四偏移地址包括与多个方向一一对应的多个第四偏移地址分量;所述第一端口选择策略包括用于选择端口的多个方向的优先级;修改所述第一端口选择策略,得到第二端口选择策略的步骤包括:
修改多个方向的优先级,得到所述第二端口选择策略。
第三方面,本公开实施例提供一种路由节点,包括:
一个或多个处理单元;
存储单元,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理单元执行,使得所述一个或多个处理单元实现本公开实施例第一方面所述的任意一种数据传输方法和/或本公开实施例第二方面所述的任意一种数据传输方法。
第四方面,本公开实施例提供一种众核***,包括:
多个处理核和片上网络;
所述片上网络包括多个本公开第三方面所述的路由节点。
第五方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开实施例第一方面所述的任意一种数据传输方法和/或本公开实施例第二方面所述的任意一种数据传输方法。
在本公开实施例中,众核***中的路由节点的任意一个端口异常时,路由节点自动选择备选端口,并通过备选端口转发待传输数据。相比于一些相关技术中需要更换路由节点或芯片等硬件或对众核***的路由重新映射,有利于降低众核***的成本,提高众核***的性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是本公开实施例中一种数据传输方法的流程图;
图2是本公开实施例中另一种数据传输方法中部分步骤的流程图;
图3是本公开实施例中又一种数据传输方法中部分步骤的流程图;
图4是本公开实施例中一种路由结构的示意图;
图5是本公开实施例中一种数据传输的示意图;
图6是本公开实施例中另一种数据传输的示意图;
图7是本公开实施例中又一种数据传输的示意图;
图8是本公开实施例中再一种数据传输方法中部分步骤的流程图;
图9是本公开实施例中再一种数据传输方法中部分步骤的流程图;
图10是本公开实施例中一种数据传输方法的流程图;
图11是本公开实施例中一种路由节点的组成框图;
图12是本公开实施例中一种众核***的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目标任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
第一方面,参照图1,本公开实施例提供一种数据传输方法,应用于众核***的路由节点,包括:
在步骤S100中,在当前路由节点中用于转发待传输数据的第一端口异常的情况下,根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口;
在步骤S200中,通过所述第二端口转发所述待传输数据;
其中,所述第二端口与接收所述待传输数据的端口不同;所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
在一些实施例中,第一端口为当前路由节点到目标路由节点的默认路由路径所对应的端口,即在当前路由节点的各个端口均正常的情况下,用于转发待传输数据的默认端口。在一些实施例中,默认路由路径是预先配置在众核***中的。
在一些实施例中,第二端口为第一端口的备选端口,第二端口可以是当前路由节点中除第一端口和接收待传输数据之外的端口的任意一个端口。本公开实施例对于如何执行步骤S100不做特殊限定。在一些实施例中,在第一端口异常的情况下,通过重新选择路由路径确定第二端口。
需要说明的是,本公开实施例对众核***中多个路由节点的结构不做特殊限定。例如,众核***中包括多个路由节点,每一个路由节点连接一个众核***中的处理核,每个路由节点包括多个端口,各个路由节点相互连接可以构成2d mesh结构,也可以构成3dmesh结构。图4为2d mesh结构的示意图,在图4中,路由节点F1至F9中,任意一对相邻的路由节点通过双向端口相连接,其中,双向端口是指路由节点中的任意一个段口既可以用于接收,也可以用于发送。
在本公开实施例中,对第一端口异常的原因不做特殊限定。例如,第一端口异常是因为路由节点损坏或路由节点之间的通路损坏造成的。
还需要说明的是,在本公开实施例中,待传输数据可以是通过当前路由节点的任意一个端口接收的,目标路由节点可以是众核***中的任意一个路由节点,相应的,第一端口也可以是当前路由节点的任意一个端口;目标路由节点可以与当前路由节点相邻,也可以与当前路由节点不相邻。本公开实施例对此不做特殊限定。
在本公开实施例提供的数据传输方法中,众核***中的路由节点的任意一个端口异常时,路由节点自动选择备选端口,并通过备选端口转发待传输数据。相比于一些相关技术中需要更换路由节点或芯片等硬件或对众核***的路由重新映射,有利于降低众核***的成本,提高众核***的性能。
本公开实施例对于如何执行步骤S100不做特殊限定。
在一些实施例中,根据第一端口、接收待传输数据的端口和路由节点中的其他端口之间的位置关系确定第二端口。在一些实施例中,根据第一端口、接收待传输数据的端口和路由节点中的其他端口之间的位置关系确定第二端口时,不选择异常端口,不选择接收待传输数据的端口,不选择在位置上与异常端口相对的端口。其中,以2d mesh结构为例,在位置上与异常端口相对的端口是指与异常端口呈180°的端口。
例如,参照图4和图5,以2d mesh结构为例。目标路由节点为路由节点E1。
在路由节点A1中,待传输数据携带的偏移地址由(1,1)修改为(0,1)并发送到路由节点B1。在路由节点B1中,按照传输待传输数据的默认端口,路由节点B1应该将待传输数据携带的偏移地址修改为(0,0)并发送到路由节点E1,但是由于路由节点B1到路由节点E1的端口异常,在路由节点B1中根据接收待传输数据的端口、路由节点B1到路由节点E1的端口的位置关系确定第二端口时,不选择接收待传输数据的端口,不选择异常的路由节点B1到路由节点E1的端口,也不选择在位置上与路由节点B1到路由节点E1的端口呈180°的端口,最终将路由节点B1到路由节点C1的端口确定为第二端口。在路由节点B1中,将待传输数据携带的偏移地址修改为(-1,1)并发送到路由节点C1。
在路由节点C1中,按照传输待传输数据的默认端口,路由节点C1应该将待传输数据携带的偏移地址修改为(0,1)并发送到路由节点B1。但是,由于在路由节点C1中确定的发送待传输数据的默认端口与接收待传输数据的端口相同,故需要修改路由节点C1中的端口选择策略。按照修改后的端口选择策略,将不选择接收待传输数据的端口,而将路由节点C1到路由节点D1的端口确定为第二端口。在路由节点C1中,将待传输数据携带的偏移地址修改为(-1,0)并发送到路由节点D1。
在路由节点D1中,按照传输待传输数据的默认端口,将待传输数据携带的偏移地址修改为(0,0)并发送到路由节点E1,即最终将待传输数据传输到了目标路由节点E1。
在本公开实施例中,众核***中的路由节点可以根据目标路由节点的绝对地址寻找目标路由节点,也可以根据目标路由节点的相对地址寻找目标路由节点。本公开实施例对此不做特殊限定。在一些实施例中,相对地址为偏移地址。
在一些实施例中,根据待传输数据携带的偏移地址确定第二端口。
相应地,在一些实施例中,所述目标路由节点的信息包括通过所述第一端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第一偏移地址;参照图2,步骤S100包括:
在步骤S110中,根据所述第一偏移地址确定所述第二端口。
在一些实施例中,当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口,不同的方向的优先级不同;所述第一偏移地址包括与多个方向一一对应的多个偏移地址分量;参照图3,步骤S110包括:
在步骤S111中,根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向;
在步骤S112中,将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口。
结合图4、图6,以2d mesh为例对步骤S111到S112进行说明。如图6所示,路由节点对应X和Y两个方向,X方向的优先级高于Y方向。目标节点的偏移地址用坐标(x,y)表示。在图6中,路由节点E2为目标路由节点,待传输数据由路由节点A2传输到路由节点E2,路由节点E2相对于路由节点A2的偏移地址为(1,1);因为X方向的优先级高于Y方向,按照默认端口,路由节点A2将待传输数据传输到路由节点B2,其中,路由节点E2相对于路由节点B2的偏移地址为(0,1),然后路由节点B2应当将待传输数据传输到偏移地址(0,0)的目标路由节点E2。但是,路由节点B2与路由节点E2之间的通路异常,路由节点B2根据偏移地址中的偏移地址分量和方向的优先级选择第二端口,将待传输数据传输到的路由节点C2,其中,路由节点E2相对于路由节点C2的偏移地址为(-1,1)。路由节点C2通过修改端口选择策略,使得Y方向的优先级高于X方向,然后将待传输数据传输到路由节点D2,其中,路由节点E2相对于路由节点D2的偏移地址为(-1,0),路由节点D2按照默认端口,将待传输数据传输到目标路由节点E2。
相应地,在一些实施例中,所述第一端口所在的方向为第一方向,多个方向中除所述第一方向以外的方向为第二方向;所述第一方向对应的偏移地址分量为第一偏移地址分量,所述第二方向对应的偏移地址分量为第二偏移地址分量;根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤包括:当所述第二偏移地址分量均为零时,将所述第二方向中优先级最高的一者确定为所述第一目标方向。
如图6所示,路由节点B2为当前节点,按照默认的各方向的优先级,路由节点B2中的偏移地址分量x为0时,应当沿Y方向传输待传输数据,Y方向即为第一方向,X方向为第二方向。在Y方向端口异常时,本公开实施例中,将X方向确定为第一目标方向。
在一种可选实施方式中,如图7所示,路由节点对应X和Y两个方向,X方向的优先级高于Y方向。目标节点的偏移地址用坐标(x,y)表示。在图7中,路由节点M为当前路由节点,路由节点Q为目标路由节点。路由节点Q相对于路由节点M的偏移地址为(1,1);因为X方向的优先级高于Y方向,按照默认的各方向的优先级,路由节点M应当将待传输数据传输到路由节点N,其中,路由节点Q相对于路由节点N的偏移地址为(0,1)。然后路由节点N将待传输数据传输到偏移地址为(0,0)的目标路由节点Q。但是,路由节点M与路由节点N之间的通路异常,路由节点M通过选择第二端口,将待传输数据传输到(1,0)的路由节点P,路由节点P将待传输数据传输到(0,0)的路由节点Q。
相应地,在一些实施例中,根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤还包括:当存在非零的所述第二偏移地址分量时,将非零的所述第二偏移地址分量对应的第二方向中优先级最高的一者确定为所述第一目标方向。
相应地,在一些实施例中,将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:将在所述第一目标方向上的两个端口中,使所述第一目标方向对应的第二偏移地址分量趋于零的子方向对应的一者确定为所述第二端口。
在一些实施例中,将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:将所述第一目标方向上的两个端口中正常的一者确定为所述第二端口。
如图7所示,在路由节点M为当前节点,按照默认的各方向的优先级,偏移地址分量x为1时,应当沿X方向传输待传输数据,X方向即为第一方向,Y方向为第二方向。在X方向端口异常时,本公开实施例中,将Y方向确定为第一目标方向。
在一些实施例中,在路由节点M中偏移地址分量y为1,故将连接路由节点P的端口确定为第二端口,以使偏移地址分量y趋于零。
在一些实施例中,在确定第一目标方向之后,进一步判断第一目标方向上的两个端口中是否存在正常端口,当存在正常端口时,将该正常端口确定为第二端口。例如,在图7中,在路由节点M中,将Y方向确定为第一目标方向,连接路由节点P的端口异常而连接路由节点R的端口正常,则将连接路由节点R的端口确定为第二端口。
在一些实施例中,当前路由节点接收到待传输数据时,待传输数据携带目标路由节点相对于当前路由节点的偏移地址;在转发待传输数据时,当前路由节点重新计算目标路由节点相对于下一跳路由节点的偏移地址,并将待传输数据重新打包,使待传输数据携带目标路由节点相对于下一跳路由节点的偏移地址。例如,如图6所示,路由节点B2接收到待传输数据时,待传输数据携带的路由节点E2相对于路由节点B2的偏移地址为(0,1),路由节点B2将待传输数据转发到路由节点C2时,将待传输数据携带的偏移地址更新为(-1,1),即路由节点E2相对于路由节点2C的偏移地址。
需要说明的是,在本公开实施例中,路由节点接收到待传输数据时,若需要修改端口选择策略,路由节点根据修改后的端口选择策略更新待传输数据携带的偏移地址。例如,如图6所示,路由节点C2接收到的待传输数据携带的偏移地址为(-1,1),在路由节点C2中需要修改端口选择策略以先将Y方向的偏移地址分量趋于零,根据修改后的端口选择策略,路由节点C2将待传输数据携带的偏移地址更新为路由节点E2相对于路由节点D2的偏移地址(-1,0)。在本公开实施例中,节点接收到待传输数据时,若不需要修改端口选择策略,路由节点根据当前的端口选择策略更新待传输数据携带的偏移地址。例如,如图7所示,路由节点P接收到的待传输数据携带的偏移地址为(1,0),按照当前的端口选择策略,路由节点P将待传输数据携带的偏移地址更新为(0,0)并发送到路由节点Q。
相应地,在一些实施例中,参照图8,在步骤S100之前,所述数据传输方法还包括:
在步骤S300中,根据所述第二端口将所述待传输数据携带的第一偏移地址更新为第三偏移地址,所述第三偏移地址为所述目标路由节点相对于下一跳路由节点的偏移地址,所述下一跳路由节点与当前路由节点通过所述第二端口相连接。
在一些实施例中,众核***的片上网络还支持绝对地址。
相应地,在一些实施例中,在当前路由节点中用于转发待传输数据的第一端口异常的情况下,根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口的步骤包括:根据与当前路由节点的绝对地址和所述目标路由节点的绝对地址,确定所述第二端口。
作为一种可选的实施方式,路由节点的每个端口都包括输出缓冲器(Buffer)。端口待传输数据可以存储在该端口的输出缓冲器中,然后根据优先级仲裁转发。
相应地,在一些实施例中,参照图9,步骤S200包括:
在步骤S210中,将所述待传输数据写入输出缓冲器;
在步骤S220中,根据优先级仲裁转发所述输出缓冲器中的所述待传输数据。
在一些实施例中,所述数据传输方法还包括:将当前路由节点中连接异常路由节点的端口标记为异常,所述异常路由节点为与当前路由节点相连接的多个路由节点中发生故障的一者。
例如,在图4中,路由节点F5发生故障,则在路由节点F2、F4、F6、F8中,均需要将与路由节点F5连接的端口标记为异常。
第二方面,参照图10,本公开实施例提供一种数据传输方法,应用于众核***的路由节点,所述路由节点为接收本公开实施例第一方面所述的任意一种数据传输方法的待传输数据的路由节点,包括:
在步骤S410中,根据第一端口选择策略和待传输数据携带的目标路由节点的信息,确定转发所述待传输数据的第三端口;
在步骤S420中,当所述第三端口与接收所述待传输数据的端口相同时,修改所述第一端口选择策略,得到第二端口选择策略;
在步骤S430中,根据所述目标路由节点的信息和所述第二端口选择策略,确定第四端口;
在步骤S440中,通过所述第四端口转发所述待传输数据;
其中,所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
在一些实施例中,第一端口选择策略为当前路由节点中当前所采用的端口选择策略。第一端口选择策略可以是配置到众核***中的默认端口选择策略,也可以是经过修改后得到的端口选择策略。本公开实施例对此不做特殊限定。
在一些实施例中,所述目标路由节点的信息包括通过所述第三端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第四偏移地址;当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口;所述第四偏移地址包括与多个方向一一对应的多个偏移地址分量;所述端口选择策略为包括用于选择端口的多个方向的优先级;修改所述第一端口选择策略,得到第二端口选择策略的步骤包括:修改多个方向的优先级,得到所述第二端口选择策略。
以图6为例对步骤S410至步骤S440进行说明。如图6所示,路由节点对应X和Y两个方向,X方向的优先级高于Y方向。目标节点的偏移地址用坐标(x,y)表示。在图6中,路由节点C2为当前路由节点,路由节点E2为目标路由节点,待传输数据需要由路由节点A2传输到路由节点E2,路由节点E2相对于路由节点A2的偏移地址为(1,1);因为X方向的优先级高于Y方向,按照第一端口选择策略,路由节点A2将数据传输到路由节点B2,其中,路由节点E2相对于路由节点B2的偏移地址为(0,1),然后路由节点B2应当将数据传输到偏移地址为(0,0)的目标路由节点E2。但是,路由节点B2与路由节点E2之间的通路异常,路由节点B2根据偏移地址中的偏移地址分量和方向的优先级选择备选端口,将待传输数据传输到路由节点C2,其中,路由节点E2相对于路由节点C2的偏移地址为(-1,1),路由节点C2通过将第一端口选择策略修改为第二端口选择策略,使得Y方向的优先级高于X方向,然后将待传输数据传输到路由节点D2,其中,路由节点E2相对于路由节点D2的偏移地址为(-1,0),路由节点D2按照第一端口选择策略,将数据传输到偏移地址为(0,0)的目标路由节点E2。
第三方面,参照图11,本公开实施例提供一种路由节点,包括:
一个或多个处理单元101;
存储单元102,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理单元101执行,使得所述一个或多个处理单元101实现本公开实施例第一方面所述的任意一种数据传输方法和/或本公开实施例第二方面所述的任意一种数据传输方法。
第四方面,参照图12,本公开实施例提供一种众核***,包括:
多个处理核201和片上网络202;多个处理核201均与片上网络202连接,片上网络202用于交互多个处理核间的数据和外部数据;所述片上网络202包括多个本公开第三方面所述的路由节点。
第五方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开实施例第一方面所述的任意一种数据传输方法和/或本公开实施例第二方面所述的任意一种数据传输方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目标。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (16)
1.一种数据传输方法,应用于众核***的路由节点,包括:
在当前路由节点中用于转发待传输数据的第一端口异常的情况下,根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口;
通过所述第二端口转发所述待传输数据;
其中,所述第二端口与接收所述待传输数据的端口不同;所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
2.根据权利要求1所述的数据传输方法,其中,所述目标路由节点的信息包括通过所述第一端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第一偏移地址;根据所述待传输数据携带的目标路由节点的信息确定当前路由节点中用于转发所述待传输数据的第二端口的步骤包括:
根据所述第一偏移地址确定所述第二端口。
3.根据权利要求2所述的数据传输方法,其中,当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口,不同方向的优先级不同;所述第一偏移地址包括与多个方向一一对应的多个偏移地址分量;根据所述第一偏移地址确定所述第二端口的步骤包括:
根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向;
将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口。
4.根据权利要求3所述的数据传输方法,其中,所述第一端口所在的方向为第一方向,多个方向中除所述第一方向以外的方向为第二方向;所述第一方向对应的偏移地址分量为第一偏移地址分量,所述第二方向对应的偏移地址分量为第二偏移地址分量;根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤包括:
当所述第二偏移地址分量均为零时,将所述第二方向中优先级最高的一者确定为所述第一目标方向。
5.根据权利要求4所述的数据传输方法,其中,根据各个所述偏移地址分量和各个所述偏移地址分量对应的方向的优先级,确定第一目标方向的步骤还包括:
当存在非零的所述第二偏移地址分量时,将非零的所述第二偏移地址分量对应的第二方向中优先级最高的一者确定为所述第一目标方向。
6.根据权利要求5所述的数据传输方法,其中,每个方向包括两个子方向;将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:
将在所述第一目标方向上的两个端口中,使所述第一目标方向对应的第二偏移地址分量趋于零的子方向对应的一者确定为所述第二端口。
7.根据权利要求3至5中任意一项所述的数据传输方法,其中,将当前路由节点在所述第一目标方向上的两个端口中的一者确定为所述第二端口的步骤包括:
将所述第一目标方向上的两个端口中正常的一者确定为所述第二端口。
8.根据权利要求2至6中任意一项所述的数据传输方法,其中,通过所述第二端口转发所述待传输数据的步骤之前,所述数据传输方法还包括:
根据所述第二端口将所述待传输数据携带的第一偏移地址更新为第三偏移地址,所述第三偏移地址为所述目标路由节点相对于下一跳路由节点的偏移地址,所述下一跳路由节点与当前路由节点通过所述第二端口相连接。
9.根据权利要求1所述的数据传输方法,其中,所述目标路由节点的信息包括所述目标路由节点的绝对地址;根据所述待传输数据携带的目标路由节点的信息确定所述第二端口的步骤包括:
根据与当前路由节点的绝对地址和所述目标路由节点的绝对地址,确定所述第二端口。
10.根据权利要求1至6、9中任意一项所述的数据传输方法,其中,所述路由节点包括输出缓冲器;通过所述第二端口转发所述待传输数据的步骤包括:
将所述待传输数据写入所述输出缓冲器;
根据优先级仲裁转发所述输出缓冲器中的所述待传输数据。
11.根据权利要求1至6、9中任意一项所述的数据传输方法,其中,所述数据传输方法还包括:
将当前路由节点中连接异常路由节点的端口标记为异常,所述异常路由节点为与当前路由节点相连接的多个路由节点中发生故障的一者。
12.一种数据传输方法,应用于众核***的路由节点,所述路由节点为接收根据权利要求1至11中任意一项所述数据传输方法转发的待传输数据的路由节点,所述数据传输方法包括:
根据第一端口选择策略和待传输数据携带的目标路由节点的信息,确定转发所述待传输数据的第三端口;
当所述第三端口与接收所述待传输数据的端口相同时,修改所述第一端口选择策略,得到第二端口选择策略;
根据所述目标路由节点的信息和所述第二端口选择策略,确定第四端口;
通过所述第四端口转发所述待传输数据;
其中,所述众核***中包括多个所述路由节点,所述目标路由节点为多个所述路由节点中的一者。
13.根据权利要求12所述的数据传输方法,其中,所述目标路由节点的信息包括通过所述第三端口转发所述待传输数据时所述目标路由节点相对于当前路由节点的第四偏移地址;当前路由节点对应多个方向,当前路由节点在每个方向上包括两个端口;所述第四偏移地址包括与多个方向一一对应的多个第四偏移地址分量;所述第一端口选择策略包括用于选择端口的多个方向的优先级;修改所述第一端口选择策略,得到第二端口选择策略的步骤包括:
修改多个方向的优先级,得到所述第二端口选择策略。
14.一种路由节点,包括:
一个或多个处理单元;
存储单元,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理单元执行,使得所述一个或多个处理单元实现根据权利要求1至11中任意一项所述的数据传输方法和/或根据权利要求12或13所述的数据传输方法。
15.一种众核***,包括:
多个处理核和片上网络;
所述片上网络包括多个根据权利要求14所述的路由节点。
16.一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至11中任意一项所述的数据传输方法和/或根据权利要求12或13所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110880755.5A CN113568863A (zh) | 2021-08-02 | 2021-08-02 | 数据传输方法、路由节点、众核***、计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110880755.5A CN113568863A (zh) | 2021-08-02 | 2021-08-02 | 数据传输方法、路由节点、众核***、计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568863A true CN113568863A (zh) | 2021-10-29 |
Family
ID=78169987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110880755.5A Pending CN113568863A (zh) | 2021-08-02 | 2021-08-02 | 数据传输方法、路由节点、众核***、计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568863A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578522A (zh) * | 2023-07-13 | 2023-08-11 | 中电海康集团有限公司 | 基于众核架构的数据处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000201160A (ja) * | 1998-10-27 | 2000-07-18 | Matsushita Electric Ind Co Ltd | 通信ノ―ドおよびネットワ―クシステム、並びにネットワ―クシステムの制御方法 |
CN1668032A (zh) * | 2004-03-09 | 2005-09-14 | 日本电气株式会社 | 具有交替路由控制的标签交换路径网络 |
CN101841432A (zh) * | 2010-05-26 | 2010-09-22 | 中兴通讯股份有限公司 | 一种业务接入路由器的端口备份方法、装置和*** |
CN109327383A (zh) * | 2017-07-31 | 2019-02-12 | 北京华为数字技术有限公司 | 一种故障处理方法及设备 |
CN111404822A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 数据传输方法、装置、设备以及计算机可读存储介质 |
CN112511340A (zh) * | 2020-11-11 | 2021-03-16 | 平安科技(深圳)有限公司 | 数据传输方法、装置、电子设备及存储介质 |
-
2021
- 2021-08-02 CN CN202110880755.5A patent/CN113568863A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000201160A (ja) * | 1998-10-27 | 2000-07-18 | Matsushita Electric Ind Co Ltd | 通信ノ―ドおよびネットワ―クシステム、並びにネットワ―クシステムの制御方法 |
CN1668032A (zh) * | 2004-03-09 | 2005-09-14 | 日本电气株式会社 | 具有交替路由控制的标签交换路径网络 |
CN101841432A (zh) * | 2010-05-26 | 2010-09-22 | 中兴通讯股份有限公司 | 一种业务接入路由器的端口备份方法、装置和*** |
CN109327383A (zh) * | 2017-07-31 | 2019-02-12 | 北京华为数字技术有限公司 | 一种故障处理方法及设备 |
CN111404822A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 数据传输方法、装置、设备以及计算机可读存储介质 |
CN112511340A (zh) * | 2020-11-11 | 2021-03-16 | 平安科技(深圳)有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
CYRIEL MINKENBERG ET AL.: "Adaptive Routing in Data Center Bridges", 《IEEE COMPUTER SOCIETY》, 31 December 2009 (2009-12-31), pages 33 - 41 * |
杨庆苇: "基于SDN的CMTS路由监控***的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 October 2016 (2016-10-15), pages 138 - 185 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578522A (zh) * | 2023-07-13 | 2023-08-11 | 中电海康集团有限公司 | 基于众核架构的数据处理方法、装置、设备及存储介质 |
CN116578522B (zh) * | 2023-07-13 | 2023-12-01 | 中电海康集团有限公司 | 基于众核架构的数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3672168B1 (en) | Link state advertisement (lsa) transmission method, device, and system | |
CN113300949B (zh) | 转发报文的方法、发布路由信息的方法、装置及*** | |
US5898826A (en) | Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network | |
KR102640600B1 (ko) | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 | |
US9282031B2 (en) | Network system and routing method | |
CN110417569B (zh) | 一种网络链路故障处理方法和隧道端点设备 | |
CN113824638A (zh) | 一种转发报文的方法、设备和*** | |
CN112448900A (zh) | 一种数据传输方法及装置 | |
CN111382115B (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
US10305825B2 (en) | Bus control device, relay device, and bus system | |
CN113872868A (zh) | 通知消息传输方法、装置及***、存储介质 | |
CN113568863A (zh) | 数据传输方法、路由节点、众核***、计算机可读介质 | |
JP6191703B2 (ja) | 通信制御システム、通信制御方法および通信制御プログラム | |
CN109286564B (zh) | 一种报文转发方法及装置 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN112187635B (zh) | 报文转发方法及装置 | |
CN114760165A (zh) | 报文传输方法、设备及*** | |
CN111464443A (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
CN104348737A (zh) | 一种组播报文的传输方法及交换机 | |
CN107181678B (zh) | 一种路由收敛的方法及装置 | |
US11803506B2 (en) | PCIe routing | |
CN113824633B (zh) | 园区网中路由发布方法及网络设备 | |
CN113079128B (zh) | 信息封堵方法、装置、计算设备及计算机存储介质 | |
CN110825689B (zh) | 电子芯片的实现方法及电子芯片 | |
CN108390780B (zh) | 用于处理信息的方法和装置 |
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 |