基于拓扑重构和路径规划的Torus网络容错方法转让专利

申请号 : CN202110579743.9

文献号 : CN113347029B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐亚军李国梁阎冬李峭

申请人 : 北京航空航天大学北京空间飞行器总体设计部

摘要 :

本发明公开了一种基于拓扑重构和路径规划的Torus网络容错方法,以解决航空电子系统中TT消息在Torus网络发生故障时的重调度问题。该方法一方面改进了Torus结构使其支持拓扑重构;是在改进Torus网络结构的每个节点-区域块增加一个处理单元DPE和一个路由器DR;另一方面将节点繁忙度作为待调度TT消息获取最短路径及备选路径的依据,然后按照最短路径依次搜索能容纳当前TT消息传输的最早的连续空闲时间长度。本方法将片上系统拓扑结构的静态冗余和动态重构相结合,提高了Torus网络的可靠性,从而缩短了发生故障时TT消息的重调度时间。

权利要求 :

1.一种基于拓扑重构和路径规划的Torus网络容错方法,其特征在于有下列步骤:步骤一:对Torus网络结构进行区域划分;

采用区域块划分条件进行Torus网络结构的节点-区域块划分,得到改进Torus网络结构;按照行节点数Row及列节点数Col进行,其中Row和Col均为大于2的整数;

区域块划分条件中所有节点采用行数、列数的矩阵形式记为

Row为改进Torus网络结构中位于行的节点总数;a表示改进Torus网络结构中任意一行的标识号,且a∈Row;

Col为改进Torus网络结构中位于列的节点总数;b表示改进Torus网络结构中任意一列的标识号,且b∈Col;

nodea,b表示改进Torus网络结构中位于第a行第b列的节点标识号;

nodeRow,Col表示改进Torus网络结构中位于最后一行最后一列的标识号;

步骤二:在改进Torus网络结构中设置区域块-处理单元和区域块-路由器;

节点-区域块划分完以后,每个节点-区域块中心设置一个区域块-处理单元DPE和区域块-路由器DR,所述DPE和所述DR的特点是在无故障时均处于休眠状态;

在节点-区域块内部,每个DR通过一个5选1的复用器MUX选择与四个本地处理单元PE之一或DPE建立数据链路;

在节点-区域块内部,每个DPE通过一个5选1的复用器MUX选择与四个本地路由器R之一或DR建立数据链路;

每个R可以跟本地处理单元PE或DPE进行数据的收发;

每个PE可以跟本地路由器R或DR进行数据的收发;

DR与四个R之间都有链路相连,可代替节点-区域块内任意一个故障的R继续工作;DPE中事先备份四个PE中的处理任务,可代替节点-区域块内任意一个故障的PE继续工作,所有多路复用器MUX的信号均由控制器产生;

本地路由器R上还设有拓扑重构开关TRS;所述的拓扑重构开关TRS由若干个多路复用器MUX及一条环型链路组成,多路复用器MUX的控制信号由控制器产生,无故障时,拓扑重构开关TRS处于休眠状态,仅起到数据链路的作用;当R发生故障时,原本传向故障的R的数据包会通过其外层的拓扑重构开关TRS传向DR,从DR传过来的数据包则通过TRS绕过故障的R传向其他路由器;

步骤三:根据故障信息进行拓扑重构,若拓扑重构后仍存在故障执行步骤四,否则结束;

步骤301:利用内建自测试机制对改进Torus网络结构中的故障进行定位,并将故障信息发送给控制器;执行步骤302;

步骤302:控制器接收到故障信息后进行判断;

若仅发生本地处理单元PE故障,则执行步骤303;

若仅发生本地路由器R故障,则执行步骤304;

若同时发生PE和R故障,则依次执行步骤303及304;

步骤303:控制器将控制信号发送到相应的多路复用器MUX,使原本与故障的PE连接的本地路由器与区域块-处理单元DPE建立数据链路;所述DPE事先对当前节点-区域块内所有的本地处理单元的任务进行备份,根据故障的位置选择执行哪个本地处理单元的任务;

步骤304:故障的R外围的拓扑重构开关TRS接收到多路复用器MUX的控制信号后,使原本与故障的R连接的本地处理单元与区域块-路由器DR建立数据链路;原本与故障的R直接相连的其他路由器通过TRS与区域块-路由器DR相连;

任意一条TT消息为一个五元组信息表示,记为TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop];

tt.src表示TT消息的源节点编号;

tt.dest表示TT消息的目的节点编号;

tt.length表示TT消息的帧长,为64~1518B;

tt.period表示TT消息的周期;

tt.hop表示TT消息的最短路径的跳数;

其中,与TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop]中前四个元素相比,所述tt.hop并非消息的固有属性,需要在确定拓扑的行数和列数之后根据源节点和目的节点求得;并且,tt.hop恒大于0,即不允许源节点和目的节点为同一个节点;

步骤四:对待调度TT消息进行路径规划并依次增量化调度,执行步骤五;

步骤401,计算TT消息最短路径跳数;

计算每条TT消息从源节点到目的节点中仅包括普通直连链路的最短路径的跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括直连链路的最短路径的跳数h为:abs(a‑c)+abs(c‑d);计算出源节点到目的节点包括环绕链路的最短路径跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括环绕链路的最短路径的跳数为:h=min(abs(a‑c),Row‑abs(a‑c))+min(abs(b‑d),Col‑abs(b‑d)),其中,Row和Col分别表示行节点总数及列节点总数,abs表示取绝对值;

对每条TT消息,直连最短路径跳数大于等于环绕路径跳数,当二者跳数相等时选择路径更短的直连链路,否则选择跳数更小的环绕链路;

步骤402,对TT消息进行可调度排序;

计算出每条TT消息的最短路径跳数后,将TT消息按照周期由小到大、跳数由大到小、帧长由长到短进行可调度性排序;

步骤403,计算最短路径和备用路径;

用经过节点的所有TT消息的帧长周期比之和计算当前节点的繁忙度相邻节点实时互传数据包来获取对方的繁忙度,若某个节点收不到相邻节点的互传数据包,则将此方向的相邻节点的繁忙度视为无穷大;首先将源节点加入到最短路径P最短及备用路径P备用中,计算出源节点的四个相邻节点到目的节点的跳数,根据跳数由小到大进行排序,若存在两个以上的节点到目的节点的跳数相同,则按照繁忙度由小到大排序,并将排在首位的结点加入到当前的最短路径P最短,将排在次位的结点加入到备选路径P备用;P最短和P备用中的最后一个节点依次重复所述源节点确定下一跳结点的步骤,直至P最短和P备用中的节点数等于当前TT消息的最短路径跳数;最后将目的节点加入到P最短和P备用中,计算P最短和P备用中的所有节点的繁忙度之和,若P备用的繁忙度之和小于P最短的繁忙度之和,则将二者交换;

步骤404,增量化调度;

采用TT流量约束条件对TT消息按其最短路径P最短依次增量化调度;

若某条TT消息无可行解,则采用备选路径P备用进行增量化调度;

当所有TT消息完成增量化调度后,然后执行步骤五;

步骤五:检查待调度消息组是否完成调度;

将计数变量count初始值置为0,每成功调度一条TT消息,count值加1,当所有TT消息完成求解后,若count值等于TT消息总数,表示成功完成故障隔离;若count值小于TT消息总数,表示未能成功完成故障隔离。

2.根据权利要求1所述的基于拓扑重构和路径规划的Torus网络容错方法,其特征在于:节点-区域块划分条件为:改进Torus网络结构的行数标记为Row,列数标记为Col;

节点-区域块划分条件A:

行数Row和列数Col均为偶数,具有Torus结构的航空电子片上网络中的所有节点从第一个节点开始,然后平均分为 的节点-区域块;

节点-区域块划分条件B:

若行数Row为偶数,列数Col为奇数,具有Torus结构的航空电子片上网络中的节点除最后一列节点以外,剩余节点从第一个节点开始,然后平均分为的节点-区域块;最后一列从上到下顺次相连的四个节点为一个节点-区域块,剩余不满四个的节点为一个节点-区域块,共计得到 个节点-区域块;

节点-区域块划分条件C:

若行数Row为奇数,列数Col为偶数,具有Torus结构的航空电子片上网络中的节点除最后一行节点以外,剩余节点从第一个节点开始,然后平均分为的节点-区域块;最后一行从左到右顺次相连的四个节点为一个节点-区域块,剩余不满四个的节点为一个节点-区域块,共计得到 个节点-区域块;

节点-区域块划分条件D:

若行数Row和列数Col均为奇数,具有Torus结构的航空电子片上网络中的节点除最后一行 及 最后 一列 以 外 ,剩余 节 点从 第一 个 节点 开始 ,然后 平均 分 为

2×2的节点-区域块;最后一行从左到右顺次相连的四个节点为一个节点-区域块,最后一列从上到下顺次相连的四个节点为一个节点-区域块,共计得到 个节点-区域块。

说明书 :

基于拓扑重构和路径规划的Torus网络容错方法

技术领域

[0001] 本发明涉及航空电子片上网络的容错方法,更特别地说,是指一种基于拓扑重构和路径规划的Torus网络的容错方法。本发明针对的是航空电子片上网络,其网络结构采用了Torus网络构型。

背景技术

[0002] 随着分布式综合模块化航空电子系统(Distributed Integrated Modular Avionics,DIMA)体系的提出以及集成电路技术的发展,未来航空电子系统将朝着以芯片实现的微小型智能组件的方向发展。其中,跨域微小型智能组件(比如传感器、微控制器、数字信号处理单元等)的互连网络称为芯片间网络;单一芯片上多核之间的互联网络称为片上网络(Network‑on‑chip,NoC)。航空电子系统对可靠性要求较高,因此提高航空电子时间触发片上网络的容错性是确保其能应用于航空电子系统的前提条件。如图1所示的航空电子系统的体系结构,片上系统(SoC)是执行某种特定功能的模块;片上系统(SoC)之间通过TTE等有线网络互连;单一芯片上多核之间通过时间触发片上网络(TTNoC)通信,其中每个时间触发片上网络(TTNoC)节点都包括一个路由器(Route)、一个处理单元(PE);控制器(Controller)的功能是根据故障信息产生控制信号完成网络重构。
[0003] NoC上的拓扑分为直接互连和非直接互连两大类,直接互连结构的各个路由节点之间是通过链路直接相连的,而非直接互连方式中路由节点之间通过交叉开关相连。对于直接互连拓扑结构一般有Mesh网络(译文为,网格网络)、Torus网络(译文为,环形网络);所述Torus网络是将Mesh网络的每一行和每一列分别环绕起来,从而降低网络直径、提高网络通信速度,但是也增加了网络成本和功耗,并且给片上多处理器的布局布线带来一定困难。参考2011年10月第38卷第10期《计算机科学》,作者王炜等,“片上网络互连拓扑综述”中公开的Torus网络拓扑结构图,如图2所示。
[0004] 时间触发(Time‑Triggerd,TT)流量具有严格的时间确定性,其转发时刻遵循事先配置好的静态调度表。已有的TT消息调度表的生成大多基于可满足性模理论(Satisfiability Modulo Theories),将配置好的约束条件输入SMT求解器求得结果,一方面当拓扑规模较大时,求解时间呈指数型上升;另一方面,若有节点或链路发生故障时,需要更改约束条件重新求解,不适合在线重构,尚需一种支持在线重构的时间触发片上网络(TTNoC)的容错方法。

发明内容

[0005] 为提高Torus网络的可靠性并解决航空电子系统中时间触发(TT)消息在Torus网络发生故障时的重新调度问题,本发明提出了一种基于拓扑重构和路径规划的Torus网络容错方法。本发明一方面改进了Torus网络结构使其支持拓扑重构,即在每个节点-区域块增加一个处理单元DPE和一个路由器DR;另一方面将经过某节点的所有TT消息的帧长周期比之和定义为该节点的繁忙度,相邻节点通过实时互传数据包获取对方的繁忙度,待调度TT消息组按照可调度性由难到易的顺序依次规划出一条繁忙度最小的最短路径及备选路径,然后按照最短路径依次搜索能容纳当前TT消息传输的最早的连续空闲时间长度。本方法将静态冗余和动态重构相结合,提高了Torus网络的可靠性,进而缩短了发生故障时TT消息的重调度时间。
[0006] 本发明的一种基于拓扑重构和路径规划的Torus网络容错方法,包括有下列步骤:
[0007] 步骤一:对Torus网络结构进行区域划分;
[0008] 采用区域块划分条件进行Torus网络结构的节点-区域块划分,得到改进Torus网络结构;按照行节点数Row及列节点数Col进行,其中Row和Col均为大于2的整数;
[0009] 区域块划分条件中所有节点采用行数、列数的矩阵形式记为
[0010] Row为改进Torus网络结构中位于行的节点总数;a表示改进Torus网络结构中任意一行的标识号,且a∈Row;
[0011] Col为改进Torus网络结构中位于列的节点总数;b表示改进Torus网络结构中任意一列的标识号,且b∈Col;
[0012] nodea,b表示改进Torus网络结构中位于第a行第b列的节点标识号;
[0013] nodeRow,Col表示改进Torus网络结构中位于最后一行最后一列的标识号;
[0014] 步骤二:在改进Torus网络结构中设置区域块-处理单元和区域块-路由器;
[0015] 节点-区域块划分完以后,每个节点-区域块中心设置一个区域块-处理单元DPE和区域块-路由器DR,所述DPE和所述DR的特点是在无故障时均处于休眠状态;
[0016] 在节点-区域块内部,每个DR通过一个5选1的复用器MUX选择与四个本地处理单元PE之一或DPE建立数据链路;
[0017] 在节点-区域块内部,每个DPE通过一个5选1的复用器MUX选择与四个本地路由器R之一或DR建立数据链路;
[0018] 每个R可以跟本地处理单元PE或DPE进行数据的收发;
[0019] 每个PE可以跟本地路由器R或DR进行数据的收发;
[0020] DR与四个R之间都有链路相连,可代替节点-区域块内任意一个故障的R继续工作;DPE中事先备份四个PE中的处理任务,可代替节点-区域块内任意一个故障的PE继续工作,所有多路复用器MUX的信号均由控制器产生;
[0021] 本地路由器R上还设有拓扑重构开关TRS;所述的拓扑重构开关TRS由若干个多路复用器MUX及一条环型链路组成,多路复用器MUX的控制信号由控制器产生,无故障时,拓扑重构开关TRS处于休眠状态,仅起到数据链路的作用;当R发生故障时,原本传向故障的R的数据包会通过其外层的拓扑重构开关TRS传向DR,从DR传过来的数据包则通过TRS绕过故障的R传向其他路由器;
[0022] 步骤三:根据故障信息进行拓扑重构,若拓扑重构后仍存在故障执行步骤四,否则结束;
[0023] 步骤301:利用内建自测试机制对改进Torus网络结构中的故障进行定位,并将故障信息发送给控制器;执行步骤302;
[0024] 步骤302:控制器接收到故障信息后进行判断;
[0025] 若仅发生本地处理单元PE故障,则执行步骤303;
[0026] 若仅发生本地路由器R故障,则执行步骤304;
[0027] 若同时发生PE和R故障,则依次执行步骤303及304;
[0028] 步骤303:控制器将控制信号发送到相应的多路复用器MUX,使原本与故障的PE连接的本地路由器与区域块-处理单元DPE建立数据链路;所述DPE事先对当前节点-区域块内所有的本地处理单元的任务进行备份,根据故障的位置选择执行哪个本地处理单元的任务;
[0029] 步骤304:故障的R外围的拓扑重构开关TRS接收到多路复用器MUX的控制信号后,使原本与故障的R连接的本地处理单元与区域块-路由器DR建立数据链路;原本与故障的R直接相连的其他路由器通过TRS与区域块-路由器DR相连;
[0030] 任意一条TT消息为一个五元组信息表示,记为TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop];
[0031] tt.src表示TT消息的源节点编号;
[0032] tt.dest表示TT消息的目的节点编号;
[0033] tt.length表示TT消息的帧长,为64~1518B;
[0034] tt.period表示TT消息的周期;
[0035] tt.hop表示TT消息的最短路径的跳数;
[0036] 其中,与TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop]中前四个元素相比,所述tt.hop并非消息的固有属性,需要在确定拓扑的行数和列数之后根据源节点和目的节点求得;并且,tt.hop恒大于0,即不允许源节点和目的节点为同一个节点;
[0037] 步骤四:对待调度TT消息进行路径规划并依次增量化调度,执行步骤五;
[0038] 步骤401,计算TT消息最短路径跳数;
[0039] 计算每条TT消息从源节点到目的节点中仅包括普通直连链路的最短路径的跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括直连链路的最短路径的跳数h为:abs(a‑c)+abs(c‑d);计算出源节点到目的节点包括环绕链路的最短路径跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括环绕链路的最短路径的跳数为:
[0040] h=min(abs(a‑c),Row‑abs(a‑c))+min(abs(b‑d),Col‑abs(b‑d)),其中,Row和Col分别表示行节点总数及列节点总数,abs表示取绝对值;
[0041] 对每条TT消息,直连最短路径跳数大于等于环绕路径跳数,当二者跳数相等时选择路径更短的直连链路,否则选择跳数更小的环绕链路;
[0042] 步骤402,对TT消息进行可调度排序;
[0043] 计算出每条TT消息的最短路径跳数后,将TT消息按照周期由小到大、跳数由大到小、帧长由长到短进行可调度性排序;
[0044] 步骤403,计算最短路径和备用路径;
[0045] 用经过节点的所有TT消息的帧长周期比之和计算当前节点的繁忙度相邻节点实时互传数据包来获取对方的繁忙度,若某个节点收不到相
邻节点的互传数据包,则将此方向的相邻节点的繁忙度视为无穷大;首先将源节点加入到最短路径P最短及备用路径P备用中,计算出源节点的四个相邻节点到目的节点的跳数,根据跳数由小到大进行排序,若存在两个以上的节点到目的节点的跳数相同,则按照繁忙度由小到大排序,并将排在首位的结点加入到当前的最短路径P最短,将排在次位的结点加入到备选路径P备用;P最短和P备用中的最后一个节点依次重复所述源节点确定下一跳结点的步骤,直至P最短和P备用中的节点数等于当前TT消息的最短路径跳数;最后将目的节点加入到P最短和P备用中,计算P最短和P备用中的所有节点的繁忙度之和,若P备用的繁忙度之和小于P最短的繁忙度之和,则将二者交换;
[0046] 步骤404,增量化调度;
[0047] 采用TT流量约束条件对TT消息按其最短路径P最短依次增量化调度;
[0048] 若某条TT消息无可行解,则采用备选路径P备用进行增量化调度;
[0049] 当所有TT消息完成增量化调度后,然后执行步骤五;
[0050] 步骤五:检查待调度消息组是否完成调度;
[0051] 将计数变量count初始值置为0,每成功调度一条TT消息,count值加1,当所有TT消息完成求解后,若count值等于TT消息总数,表示成功完成故障隔离;若count值小于TT消息总数,表示未能成功完成故障隔离。
[0052] 本发明基于拓扑重构和路径规划的Torus网路的容错方法的优点在于:
[0053] ①本发明对传统Torus网络进行节点区域划分并在每个节点-区域块内增加设置一个处理单元DPE和一个路由器DR以使其支持拓扑重构,以较少的冗余代价提高了Torus网络的可靠性。
[0054] ②本发明通过改变若干个多路复用器的控制信号即可完成拓扑重构,且重构过程对于上层应用来讲是透明的,对整个网络的影响较小。
[0055] ③本发明设计的路由器外围有一层拓扑重构开关(TRS),当本地路由器发生故障时,TRS将故障的本地路由器隔离在整个网络外,保证区域块-路由器DR能够与其他节点-区域块内的故障的本地路由器的相邻本地路由器进行数据的收发。
[0056] ④本发明的路径优化方法可躲避故障链路以及超出拓扑重构范围内的故障路由器,并且路径规划时在保证跳数最短的同时考虑了整个网络各个节点的负载,降低了消息的时延、有利于网络的负载均衡。
[0057] ⑤本发明的静态冗余与动态重构结合的TT消息的重调度方法,在网络发生故障时,无需像SMT调度方法一样重新修改约束条件再输入到求解器中求解,缩短了故障时TT消息的重调度时间。

附图说明

[0058] 图1是航空电子片上系统的分布结构图。
[0059] 图2是传统的Torus网络拓扑结构图。
[0060] 图3是本发明改进的Torus结构的通信路径的输入通道示意图。
[0061] 图3A是本发明改进的Torus结构的通信路径的输出通道示意图。
[0062] 图4是本发明改进的Torus结构图,图中竖直方向上的链路未画出,实线表示无故障时各个节点间的链路,虚线表示重构形成的链路,细实线是故障。
[0063] 图5是本发明改进的Torus结构和拓扑重构开关示意图。
[0064] 图6是本发明基于拓扑重构及路径规划的改进Torus网络的容错方法的流程图。
[0065] 图7是本发明基于拓扑重构及路径规划的Torus网络的容错方法的流程图。
[0066] 图8是实施例1中具有Torus网络的直连链路部分拓扑结构图。
[0067] 图8A是实施例1中具有Torus网络的环绕链路部分拓扑结构图。
[0068] 图8B是实施例1中节点-区域块的连接示意图。
[0069] 图9是经本发明方法处理的实施例2的容错性能图。
[0070] 图10是经本发明方法与SMT方法的重构时间对比图。

具体实施方式

[0071] 下面将结合附图和实施例对本发明做进一步的详细说明。
[0072] 在本发明中,传统Torus网络结构和改进Torus网络结构中的节点用符号NE表示。将传统Torus网络结构采用每四个节点为一个节点-区域块的形式,称为改进Torus网络结构。
[0073] 在本发明中,节点繁忙度,记为δ,是指经过任意一个节点的所有TT消息的帧长周期比值之和。即
[0074] 参见图8、图8A所示,在本发明中,依据Torus网络中两两节点之间以消息传输方向形成的路径表述为:
[0075] L1,2表示第一个节点NE1向第二个节点NE2的路径。
[0076] L2,1表示第二个节点NE2向第一个节点NE1的路径。
[0077] 同理可得,其余节点上的路径表述。
[0078] 参见图8、图8A所示,传统Torus网络结构的两两节点之间形成的路径,以一个4行6列的Torus网络结构分别表述为:
[0079] 第一个节点的路径集为:
[0080] 在满足传统Torus网络拓扑结构中,与第一个节点NE1直接相连的节点形成的路径集为
[0081] 第二个节点的路径集为:
[0082] 在满足传统Torus网络拓扑结构中,与第二个节点NE2直接相连的节点形成的路径集为
[0083] 第三个节点的路径集为:
[0084] 在满足传统Torus网络拓扑结构中,与第三个节点NE3直接相连的节点形成的路径集为
[0085] 第四个节点的路径集为:
[0086] 在满足传统Torus网络拓扑结构中,与第四个节点NE4直接相连的节点形成的路径集为
[0087] 第五个节点的路径集为:
[0088] 在满足传统Torus网络拓扑结构中,与第五个节点NE5直接相连的节点形成的路径集为
[0089] 第六个节点的路径集为:
[0090] 在满足传统Torus网络拓扑结构中,与第六个节点NE6直接相连的节点形成的路径集为
[0091] 第七个节点的路径集为:
[0092] 在满足传统Torus网络拓扑结构中,与第七个节点NE7直接相连的节点形成的路径集为
[0093] 第八个节点的路径集为:
[0094] 在满足传统Torus网络拓扑结构中,与第八个节点NE8直接相连的节点形成的路径集为
[0095] 第九个节点的路径集为:
[0096] 在满足传统Torus网络拓扑结构中,与第九个节点NE9直接相连的节点形成的路径集为
[0097] 第十个节点的路径集为:
[0098] 在满足传统Torus网络拓扑结构中,与第十个节点NE10直接相连的节点形成的路径集为
[0099] 第十一个节点的路径集为:
[0100] 在满足传统Torus网络拓扑结构中,与第十一个节点NE11直接相连的节点形成的路径集为
[0101] 第十二个节点的路径集为:
[0102] 在满足传统Torus网络拓扑结构中,与第十二个节点NE12直接相连的节点形成的路径集为
[0103] 第十三个节点的路径集为:
[0104] 在满足传统Torus网络拓扑结构中,与第十三个节点NE13直接相连的节点形成的路径集为
[0105] 第十四个节点的路径集为:
[0106] 在满足传统Torus网络拓扑结构中,与第十四个节点NE14直接相连的节点形成的路径集为
[0107] 第十五个节点的路径集为:
[0108] 在满足传统Torus网络拓扑结构中,与第十五个节点NE15直接相连的节点形成的路径集为
[0109] 第十六个节点的路径集为:
[0110] 在满足传统Torus网络拓扑结构中,与第十六个节点NE16直接相连的节点形成的路径集为
[0111] 第十七个节点的路径集为:
[0112] 在满足传统Torus网络拓扑结构中,与第十七个节点NE17直接相连的节点形成的路径集为
[0113] 第十八个节点的路径集为:
[0114] 在满足传统Torus网络拓扑结构中,与第十八个节点NE18直接相连的节点形成的路径集为
[0115] 第十九个节点的路径集为:
[0116] 在满足传统Torus网络拓扑结构中,与第十九个节点NE19直接相连的节点形成的路径集为
[0117] 第二十个节点的路径集为:
[0118] 在满足传统Torus网络拓扑结构中,与第二十个节点NE20直接相连的节点形成的路径集为
[0119] 第二十一个节点的路径集为:
[0120] 在满足传统Torus网络拓扑结构中,与第二十一个节点NE21直接相连的节点形成的路径集为
[0121] 第二十二个节点的路径集为:
[0122] 在满足传统Torus网络拓扑结构中,与第二十二个节点NE22直接相连的节点形成的路径集为
[0123] 第二十三个节点的路径集为:
[0124] 在满足传统Torus网络拓扑结构中,与第二十三个节点NE23直接相连的节点形成的路径集为
[0125] 第二十四个节点的路径集为:
[0126] 在满足传统Torus网络拓扑结构中,与第二十四个节点NE24直接相连的节点形成的路径集为
[0127] 每个节点中包括的电子设备
[0128] 在本发明中,每个节点中至少包括有本地处理单元PE和本地路由器R。例如参见图8B所示,第一个节点NE1中的本地处理单元记为 第一个节点NE1中的本地路由器记为
[0129] 第二个节点NE2中的本地处理单元记为 第二个节点NE2中的本地路由器记为
[0130] 第七个节点NE7中的本地处理单元记为 第七个节点NE7中的本地路由器记为
[0131] 第八个节点NE8中的本地处理单元记为 第八个节点NE8中的本地路由器记为
[0132] 依据行列节点数的奇偶属性进行节点-区域块划分
[0133] 在本发明中,改进Torus网络结构的行数标记为Row,列数标记为Col。
[0134] 节点-区域块划分条件A:
[0135] 行数Row和列数Col均为偶数,具有Torus结构的航空电子片上网络中的所有节点从第一个节点开始,然后平均分为 的节点-区域块。
[0136] 节点-区域块划分条件B:
[0137] 若行数Row为偶数,列数Col为奇数,具有Torus结构的航空电子片上网络中的节点除 最 后一 列 节点 以 外 ,剩余 节 点从 第一 个 节点 开始 ,然后 平均 分 为的节点-区域块;最后一列从上到下顺次相连的四个节点为一个节点-区域块,剩余不满四个的节点为一个节点-区域块,共计得到
个节点-区域块。
[0138] 节点-区域块划分条件C:
[0139] 若行数Row为奇数,列数Col为偶数,具有Torus结构的航空电子片上网络中的节点除 最 后一 行 节点 以 外 ,剩余 节 点从 第一 个 节点 开始 ,然后 平均 分 为的节点-区域块;最后一行从左到右顺次相连的四个节点为一个节点-区域块,剩余不满四个的节点为一个节点-区域块,共计得到
个节点-区域块。
[0140] 节点-区域块划分条件D:
[0141] 若行数Row和列数Col均为奇数,具有Torus结构的航空电子片上网络中的节点除最后一行及最后一列以外,剩余节点从第一个节点开始,然后平均分为个2×2的节点-区域块;最后一行从左到右顺次相连的四个节点
为一个节点-区域块,最后一列从上到下顺次相连的四个节点为一个节点-区域块,共计得到 个节点-区域块。
[0142] 在本发明中,依据节点-区域块划分条件对具有Torus结构的航空电子片上网络中的所有节点进行划分得到的区域块数目,记为Q,采用集合形式表示出节点-区域块集MQU={QU1,QU2,…,QUQ},QU1为第一个节点-区域块,QU2为第二个节点-区域块,QUQ为最后一个节点-区域块。为了方便说明,将QUQ也称为任意一个节点-区域块,下角标Q为区域块的标识号。
[0143] 设置在区域块中的冗余电子设备
[0144] 在本发明中,布置在每一个节点-区域块中的路由器称为区域块-路由器,记为DR。
[0145] 在本发明中,布置在每一个节点-区域块中的处理单元称为区域块-处理单元,记为DPE。
[0146] 在本发明中,设置在任意一个节点-区域块QUQ中的区域块-处理单元,记为设置在任意一个节点-区域块QUQ中的区域块-路由器,记为
[0147] 通过对全部区域块MQU={QU1,QU2,…,QUQ}中都放置完成区域块-处理单元和区域块-路由器后,得到应用基于改进Torus结构的航空电子片上网络系统,改进后也称为片上系统拓扑结构。
[0148] 在本发明中,将改进Torus网络结构中所有节点采用行数、列数的矩阵形式记为:其中,
[0149] Row为改进Torus网络结构中位于行的节点总数;a表示改进Torus网络结构中任意一行的标识号,且a∈Row;
[0150] Col为改进Torus网络结构中位于列的节点总数;b表示改进Torus网络结构中任意一列的标识号,且b∈Col;
[0151] node1,1表示改进Torus网络结构中位于第1行第1列的节点标识号;
[0152] node1,2表示改进Torus网络结构中位于第1行第2列的节点标识号;
[0153] node1,b表示改进Torus网络结构中位于第1行第b列的节点标识号;
[0154] node1,Col表示改进Torus网络结构中位于第1行最后一列的标识号。
[0155] nodea,b表示改进Torus网络结构中位于第a行第b列的节点标识号;
[0156] nodeRow,Col表示改进Torus网络结构中位于最后一行最后一列的标识号。
[0157] 步骤一:对Torus网络结构进行区域划分;
[0158] 在本发明中,采用区域块划分条件进行Torus网络结构的节点-区域块划分,得到改进Torus网络结构;按照行节点数Row及列节点数Col进行,其中Row和Col均为大于2的整数;
[0159] 步骤二:在改进Torus网络结构中设置区域块-处理单元和区域块-路由器;
[0160] 在本发明中,节点-区域块划分完以后,每个节点-区域块中心设置一个区域块-处理单元DPE和区域块-路由器DR,所述DPE和所述DR的特点是在无故障时均处于休眠状态。
[0161] 在节点-区域块内部,每个DR通过一个5选1的复用器MUX选择与四个本地处理单元PE之一或DPE建立数据链路。
[0162] 在节点-区域块内部,每个DPE通过一个5选1的复用器MUX选择与四个本地路由器R之一或DR建立数据链路。
[0163] 每个R可以跟本地处理单元PE或DPE进行数据的收发。
[0164] 每个PE可以跟本地路由器R或DR进行数据的收发。
[0165] DR与四个R之间都有链路相连,可代替节点-区域块内任意一个故障的R继续工作;DPE中事先备份四个PE中的处理任务,可代替节点-区域块内任意一个故障的PE继续工作,所有多路复用器MUX的信号均由控制器产生,PE和DPE的通信路径图可参照图3、图3A,图中,C_in表示输入,C_out表示输出。
[0166] 在本发明中,由于每个节点-区域块仅有一个区域块-处理单元DPE和区域块-路由器DR,当每个节点-区域块内的故障数量小于等于冗余数量时,仅通过拓扑重构即可完成错误隔离,对于上层应用来讲,重构前后的拓扑结构并未发生改变,因此TT消息仍按照故障之前的调度表传输。拓扑重构的过程为图4。所述冗余数量是指DR与DPE的个数,即2。
[0167] 在本发明中,本地路由器R除了包括输入输出模块、路由计算模块、分配模块、交叉开关等常见模块外,还设有拓扑重构开关(Topology Rconfiguration Switches,TRS),如图5所示。所述的拓扑重构开关TRS由若干个多路复用器MUX及一条环型链路组成,多路复用器MUX的控制信号由控制器产生,无故障时,拓扑重构开关TRS处于休眠状态,仅起到数据链路的作用;当R发生故障时,原本传向故障的R的数据包会通过其外层的拓扑重构开关TRS传向DR,从DR传过来的数据包则通过TRS绕过故障的R传向其他路由器。
[0168] 步骤三:根据故障信息进行拓扑重构,若拓扑重构后仍存在故障执行步骤四,否则结束;
[0169] 具体的拓扑重构过程为:
[0170] 步骤301:利用内建自测试机制对改进Torus网络结构中的故障进行定位,并将故障信息发送给控制器;执行步骤302;
[0171] 步骤302:控制器接收到故障信息后进行判断;
[0172] 若仅发生本地处理单元PE故障,则执行步骤303;
[0173] 若仅发生本地路由器R故障,则执行步骤304;
[0174] 若同时发生PE和R故障,则依次执行步骤303及304;
[0175] 步骤303:控制器将控制信号发送到相应的多路复用器MUX,使原本与故障的PE连接的本地路由器与区域块-处理单元DPE建立数据链路;所述DPE事先对当前节点-区域块内所有的本地处理单元的任务进行备份,根据故障的位置选择执行哪个本地处理单元的任务;
[0176] 步骤304:故障的R外围的拓扑重构开关TRS接收到多路复用器MUX的控制信号后,使原本与故障的R连接的本地处理单元与区域块-路由器DR建立数据链路;原本与故障的R直接相连的其他路由器通过TRS与区域块-路由器DR相连。
[0177] 在本发明中,任意一条时间触发消息(即TT消息)为一个五元组信息表示,记为TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop];
[0178] tt.src表示TT消息的源节点编号;
[0179] tt.dest表示TT消息的目的节点编号;
[0180] tt.length表示TT消息的帧长,通常为64~1518B(B为字节单位);
[0181] tt.period表示TT消息的周期;
[0182] tt.hop表示TT消息的最短路径的跳数。
[0183] 其中,与TTINF=[tt.src,tt.dest,tt.length,tt.period,tt.hop]中前四个元素相比,所述tt.hop并非消息的固有属性,需要在确定拓扑的行数和列数之后根据源节点和目的节点求得。并且,tt.hop恒大于0,即不允许源节点和目的节点为同一个节点。
[0184] 参照图6,当拓扑重构不能解决所有本地路由器的故障或者出现链路故障时,需要对受故障影响的重发TT消息(即消息组MG)进行重调度,主要包括路径规划和搜索最早的能够容纳信息传输的连续空闲时间长度,其具体过程可由图6描述:
[0185] 步骤四:对待调度TT消息进行路径规划并依次增量化调度,执行步骤五;
[0186] 步骤401,计算TT消息最短路径跳数;
[0187] 计算每条TT消息从源节点到目的节点中仅包括普通直连链路的最短路径的跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括直连链路的最短路径的跳数h为:abs(a‑c)+abs(c‑d);计算出源节点到目的节点包括环绕链路的最短路径跳数,计算方法为:任意两个节点nodea,b与nodec,d之间包括环绕链路的最短路径的跳数为:
[0188] h=min(abs(a‑c),Row‑abs(a‑c))+min(abs(b‑d),Col‑abs(b‑d)),其中,Row和Col分别表示行节点总数及列节点总数,abs表示取绝对值;
[0189] 对每条TT消息,直连最短路径跳数大于等于环绕路径跳数,当二者跳数相等时选择路径更短的直连链路,否则选择跳数更小的环绕链路;
[0190] 步骤402,对TT消息进行可调度排序;
[0191] 计算出每条TT消息的最短路径跳数后,将TT消息按照周期由小到大、跳数由大到小、帧长由长到短进行可调度性排序;
[0192] 步骤403,计算最短路径和备用路径;
[0193] 用经过节点的所有TT消息的帧长周期比之和计算当前节点的繁忙度相邻节点实时互传数据包来获取对方的繁忙度,若某个节点收不到相
邻节点的互传数据包,则将此方向的相邻节点的繁忙度视为无穷大;首先将源节点加入到最短路径P最短及备用路径P备用中,计算出源节点的四个相邻节点到目的节点的跳数,根据跳数由小到大进行排序,若存在两个以上的节点到目的节点的跳数相同,则按照繁忙度由小到大排序,并将排在首位的结点加入到当前的最短路径P最短,将排在次位的结点加入到备选路径P备用;P最短和P备用中的最后一个节点依次重复所述源节点确定下一跳结点的步骤(若出现下一跳节点排序时首位和次位节点到目的节点的跳数不同的情况,则将首位节点加入到P最短和P备用中),直至P最短和P备用中的节点数等于当前TT消息的最短路径跳数;最后将目的节点加入到P最短和P备用中,计算P最短和P备用中的所有节点的繁忙度之和,若P备用的繁忙度之和小于P最短的繁忙度之和,则将二者交换;
[0194] 步骤404,增量化调度;
[0195] 采用TT流量约束条件对TT消息按其最短路径P最短依次增量化调度;
[0196] 若某条TT消息无可行解,则采用备选路径P备用进行增量化调度;
[0197] 当所有TT消息完成增量化调度后,然后执行步骤五。
[0198] 所述的“TT流量约束条件”请参考2018年11月北京航空航天学报第44卷11期,作者,宋梓旭,李峭等,“基于可调度性排序的时间触发调度表生成方法”中第一节“TT流量约束条件”中的流量周期约束、无冲突约束、路径依赖约束、端到端传输约束,对TT消息按其最短路径P最短依次增量化调度。
[0199] 步骤五:检查待调度消息组是否完成调度;
[0200] 将计数变量count初始值置为0,每成功调度一条TT消息,count值加1,当所有TT消息完成求解后,若count值等于TT消息总数,表示成功完成故障隔离;若count值小于TT消息总数,表示未能成功完成故障隔离。
[0201] 实施例1通过拓扑重构解决设备故障
[0202] 在实施例1中,列举的是行节点数为4,列节点数为6,总计24个节点的Torus网络拓扑结构,如图8、图8A、图8B所示。24个节点按照从左到右、从上到下进行编号(节点编号范围为NE1~NE24)。
[0203] 在实施例1中,假设共有10条TT消息,分别为:
[0204] 第一条TT消息,记为Msg1,所述Msg1包含的内容为[tt.src=NE10,tt.dest=NE1,tt.length=580,tt.period=8,tt.hop=4]。
[0205] tt.src表示源节点,tt.dest表示目的节点,tt.length表示消息帧长,tt.period表示消息转发的周期,tt.hop表示最小跳数。
[0206] 第二条TT消息,记为Msg2,所述Msg2包含的内容为[tt.src=NE4,tt.dest=NE9,tt.length=1329,tt.period=1,tt.hop=2]。
[0207] 第三条TT消息,记为Msg3,所述Msg3包含的内容为[tt.src=NE12,tt.dest=NE8,tt.length=871,tt.period=16,tt.hop=2]。
[0208] 第四条TT消息,记为Msg4,所述Msg4包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=1460,tt.period=16,tt.hop=2]。
[0209] 第五条TT消息,记为Msg5,所述Msg5包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=73,tt.period=4,tt.hop=2]。
[0210] 第六条TT消息,记为Msg6,所述Msg6包含的内容为[tt.src=NE7,tt.dest=NE9,tt.length=884,tt.period=4,tt.hop=2]。
[0211] 第七条TT消息,记为Msg7,所述Msg7包含的内容为[tt.src=NE22,tt.dest=NE8,tt.length=92,tt.period=16,tt.hop=4]。
[0212] 第八条TT消息,记为Msg8,所述Msg8包含的内容为[tt.src=NE19,tt.dest=NE3,tt.length=370,tt.period=16,tt.hop=3]。
[0213] 第九条TT消息,记为Msg9,所述Msg9包含的内容为[tt.src=NE1,tt.dest=NE24,tt.length=86,tt.period=8,tt.hop=2]。
[0214] 第十条TT消息,记为Msg10,所述Msg10包含的内容为[tt.src=NE18,tt.dest=NE12,tt.length=636,tt.period=32,tt.hop=1]。
[0215] 下表为实施例1中的故障分布:
[0216]
[0217] 表示第六节点NE6中的本地路由器。
[0218] 表示第十五节点NE15中的本地处理单元。
[0219] 参见图7所述的步骤,对实施例1执行所述的容错方法:
[0220] 步骤一:依据Torus拓扑结构的行数列数的奇偶属性进行节点-区域块划分;
[0221] 将航空电子片上网络按照Torus构型,得到航空电子片上网络拓扑结构。片上网络中执行任务的设备作为Torus网络中的一个节点。
[0222] 在实施例1中的行数为4、列数为6节点数均为偶数,故将其平均分为6个2×2的区域块,如图8所示。其中,第一个区域块QU1包含的节点有NE1、NE2、NE7和NE8;
[0223] 第二个区域块QU2包含的节点有NE3、NE4、NE9和NE10;
[0224] 第三个区域块QU3包含的节点有NE5、NE6、NE11和NE12;
[0225] 第四个区域块QU4包含的节点有NE13、NE14、NE19和NE20;
[0226] 第五个区域块QU5包含的节点有NE15、NE16、NE21和NE22;
[0227] 第六个区域块QU6包含的节点有NE17、NE18、NE23和NE24;
[0228] 步骤二:在每个节点-区域块中设置区域块-处理单元和区域块-路由器,得到改进Torus结构;
[0229] 在步骤一中获得的所述6个区域块中分别设置一个区域块-处理单元和一个区域块-路由器,从而构成对步骤一的航空电子片上网络拓扑结构的改进,即得到片上系统拓扑结构。
[0230] 例如,由节点NE1、NE2、NE7和NE8形成的第一个区域块QU1,在所述QU1中放置的冗余处理单元记为 在所述QU1中放置的冗余路由器记为 四个节点(NE1、NE2、NE7和NE8)与 和 以通信链路实现连接。
[0231] 同理可得:在第二个区域块QU2中放置的冗余处理单元记为 放置的冗余路由器记为
[0232] 在第三个区域块QU3中放置的冗余处理单元记为 放置的冗余路由器记为
[0233] 在第四个区域块QU4中放置的冗余处理单元记为 放置的冗余路由器记为
[0234] 在第五个区域块QU5中放置的冗余处理单元记为 放置的冗余路由器记为
[0235] 在第六个区域块QU6中放置的冗余处理单元记为 放置的冗余路由器记为
[0236] 对六个区域块全部放置完成冗余处理单元和冗余路由器后,从而构成对步骤一中的网络拓扑结构的改进。
[0237] 步骤三:根据故障信息进行拓扑重构,若拓扑重构后仍存在故障执行步骤四,否则结束;
[0238] 在本发明中,采用内建自测试机制获取故障信息。故障信息BD包括节点故障信息和链路故障信息,其中从节点NEa到节点NEb之间的单向链路La,b的故障信息表示为节点故障信息包括故障所在的节点编号NEa、路由器故障 和/或处理单元故障 采用集合形式表示为
[0239] 步骤301,采用内建自测试机制对片上系统拓扑结构中的故障进行定位,检测到第七个节点NE7中的路由器 和第十六个节点NE16中的处理单元 发生故障,形成的故障信息,记为
[0240] 步骤302,控制器接收到故障信息 后进行判断,由于同时发生了处理单元 和路由器 的故障,故依次执行步骤303及步骤304;
[0241] 步骤303,控制器根据故障信息 生成控制信号然后用所述控制信号 建立 与 的数据链路,使得 代
替故障的 执行任务;
[0242] 表示第十六节点NE16中的路由器。
[0243] 步骤304,控制器根据故障信息 生成控制信号 然后用所述控制信号 建立 与 的数据链路,使得 代替故障的 执
行任务;
[0244] 表示第七节点NE7中的处理单元。
[0245] 实施例1的每个节点-区域块内的故障单元数量等于冗余数量(第五个区域块QU5中放置的冗余处理单元 第一个区域块QU1中放置的冗余路由器 ),故仅通过拓扑重构即可完成故障隔离,无需执行步骤四及步骤五,故所有TT消息仍按原始调度表转发,无需进行重调度。实施示例1的重构示意图如图4所示,其中环绕链路未画出,实线表示无故障时的数据链路,虚线表示重构链路,R15处的PE为故障位置。
[0246] 实施例2通过拓扑重构和路径规划解决设备故障和链路故障
[0247] 实施例2中,Torus网络的行节点数Row为4,列节点数Col为6,总计24个节点按照从左到右、从上到下进行编号(节点编号范围为NE1~NE24);
[0248] 在实施例2中,假设共有10条TT消息,分别为:
[0249] 第一条TT消息,记为Msg1,所述Msg1包含的内容为[tt.src=NE10,tt.dest=NE1,tt.length=580,tt.period=8,tt.hop=4]。
[0250] tt.src表示源节点,tt.dest表示目的节点,tt.length表示消息帧长,tt.period表示消息转发的周期,tt.hop表示最小跳数。
[0251] 第二条TT消息,记为Msg2,所述Msg2包含的内容为[tt.src=NE4,tt.dest=NE9,tt.length=1329,tt.period=1,tt.hop=2]。
[0252] 第三条TT消息,记为Msg3,所述Msg3包含的内容为[tt.src=NE12,tt.dest=NE8,tt.length=871,tt.period=16,tt.hop=2]。
[0253] 第四条TT消息,记为Msg4,所述Msg4包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=1460,tt.period=16,tt.hop=2]。
[0254] 第五条TT消息,记为Msg5,所述Msg5包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=73,tt.period=4,tt.hop=2]。
[0255] 第六条TT消息,记为Msg6,所述Msg6包含的内容为[tt.src=NE7,tt.dest=NE9,tt.length=884,tt.period=4,tt.hop=2]。
[0256] 第七条TT消息,记为Msg7,所述Msg7包含的内容为[tt.src=NE22,tt.dest=NE8,tt.length=92,tt.period=16,tt.hop=4]。
[0257] 第八条TT消息,记为Msg8,所述Msg8包含的内容为[tt.src=NE19,tt.dest=NE3,tt.length=370,tt.period=16,tt.hop=3]。
[0258] 第九条TT消息,记为Msg9,所述Msg9包含的内容为[tt.src=NE1,tt.dest=NE24,tt.length=86,tt.period=8,tt.hop=2]。
[0259] 第十条TT消息,记为Msg10,所述Msg10包含的内容为[tt.src=NE18,tt.dest=NE12,tt.length=636,tt.period=32,tt.hop=1]。
[0260] 下表为实施例2中的故障分布,其中link11,17表示节点11与节点17之间的数据链路:
[0261]
[0262] 表示第七节点NE7中的本地路由器。
[0263] 表示第八节点NE8中的本地路由器。
[0264] 表示第十六节点NE16中的本地处理单元。
[0265] L12,18表示第十二节点NE12向第十八节点NE18的路径。
[0266] 参见图7所述的步骤,对实施例2执行所述的容错方法:
[0267] 步骤一:依据Torus拓扑结构的行数列数的奇偶属性进行区域块划分;
[0268] 将航空电子片上网络按照Torus构型,得到航空电子片上网络拓扑结构。片上网络中执行任务的设备作为Torus网络中的一个节点。
[0269] 在实施例2中的行数为4、列数为6节点数均为偶数,故将其平均分为6个2×2的区域块,如图8所示。其中,第一个区域块QU1包含的节点有NE1、NE2、NE7和NE8;
[0270] 第二个区域块QU2包含的节点有NE3、NE4、NE9和NE10;
[0271] 第三个区域块QU3包含的节点有NE5、NE6、NE11和NE12;
[0272] 第四个区域块QU4包含的节点有NE13、NE14、NE19和NE20;
[0273] 第五个区域块QU5包含的节点有NE15、NE16、NE21和NE22;
[0274] 第六个区域块QU6包含的节点有NE17、NE18、NE23和NE24;
[0275] 步骤二:在每个节点-区域块中设置区域块-处理单元和区域块-路由器,得到改进Torus结构;
[0276] 在步骤一中获得的所述6个区域块中分别放置一个冗余处理单元和一个冗余路由器,从而构成对步骤一的航空电子片上网络拓扑结构的改进,即得到片上系统拓扑结构。
[0277] 例如,由节点NE1、NE2、NE7和NE8形成的第一个区域块QU1,在所述QU1中放置的冗余处理单元记为 在所述QU1中放置的冗余路由器记为 四个节点(NE1、NE2、NE7和NE8)与 和 以通信链路实现连接。
[0278] 同理可得:在第二个区域块QU2中放置的冗余处理单元记为 放置的冗余路由器记为
[0279] 在第三个区域块QU3中放置的冗余处理单元记为 放置的冗余路由器记为
[0280] 在第四个区域块QU4中放置的冗余处理单元记为 放置的冗余路由器记为
[0281] 在第五个区域块QU5中放置的冗余处理单元记为 放置的冗余路由器记为
[0282] 在第六个区域块QU6中放置的冗余处理单元记为 放置的冗余路由器记为
[0283] 对六个区域块全部放置完成冗余处理单元和冗余路由器后,从而构成对步骤一中的网络拓扑结构的改进。
[0284] 步骤三:根据故障信息进行拓扑重构,若拓扑重构后仍存在故障执行步骤四,否则结束;
[0285] 在本发明中,采用内建自测试机制获取故障信息。故障信息BD包括节点故障信息和链路故障信息,其中从节点NEa到节点NEb之间的单向链路La,b的故障信息表示为节点故障信息包括故障所在的节点编号NEa、路由器故障 和/或处理单元故障 采用集合形式表示为
[0286] 步骤301,采用内建自测试机制对片上系统拓扑结构中的故障进行定位,检测到第七个节点NE7中的路由器 第八个节点NE8中的路由器 第十六个节点NE16中的处理单元 以及节点NE12与节点NE18之间的链路L12,18发生故障,形成的故障信息,记为[0287] 步骤302,控制器接收到故障信息 后进行判断,由于同
时发生了处理单元 路由器 路由器 和链路L12,18的故障,故依次执行步骤
303及步骤304;
[0288] 步骤303,控制器根据故障信息 生成控制信号然后用所述控制信号 建立 与 的数据链路,使得 代
替故障的 执行任务;
[0289] 步骤304,控制器根据故障信息 生成控制信号 然后用所述控制信号 建立 与 的数据链路,使得 代替故障的 执
行任务;
[0290] 由于 与 同属一个区域,故拓扑重构后,仅能解决其中一个故障,并且还存在L12,18的链路故障,故仍需继续执行步骤四到步骤五。
[0291] 受到上述故障影响的TT消息共有6条,即待调度消息组MG为:
[0292] 第三条TT消息,记为Msg3,所述Msg3包含的内容为[tt.src=NE12,tt.dest=NE8,tt.length=871,tt.period=16,tt.hop]。
[0293] 第四条TT消息,记为Msg4,所述Msg4包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=1460,tt.period=16,tt.hop]。
[0294] 第五条TT消息,记为Msg5,所述Msg5包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=73,tt.period=4,tt.hop]。
[0295] 第六条TT消息,记为Msg6,所述Msg6包含的内容为[tt.src=NE7,tt.dest=NE9,tt.length=884,tt.period=4,tt.hop]。
[0296] 第七条TT消息,记为Msg7,所述Msg7包含的内容为[tt.src=NE22,tt.dest=NE8,tt.length=92,tt.period=16,tt.hop]。
[0297] 第十条TT消息,记为Msg10,所述Msg10包含的内容为[tt.src=NE18,tt.dest=NE12,tt.length=636,tt.period=32,tt.hop]。
[0298] 步骤四,计算TT消息从源节点到目的节点的最短路径跳数,执行步骤五;
[0299] 步骤401,计算TT消息最短路径跳数;
[0300] 在实施例2中,计算每条TT消息从源节点到目的节点中仅包括普通直连链路的最短路径的跳数;计算出源节点到目的节点包括环绕链路的最短路径跳数;通过比较直连链路和环绕链路的最短跳数,确定每条TT消息的最短路径跳数;
[0301] 执行完步骤401后,将最短路径跳数加入到MG中,此时待调度消息组MG为:
[0302] 第三条TT消息,记为Msg3,所述Msg3包含的内容为[tt.src=NE12,tt.dest=NE8,tt.length=871,tt.period=16,tt.hop=2]。
[0303] 第四条TT消息,记为Msg4,所述Msg4包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=1460,tt.period=16,tt.hop=2]。
[0304] 第五条TT消息,记为Msg5,所述Msg5包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=73,tt.period=4,tt.hop=2]。
[0305] 第六条TT消息,记为Msg6,所述Msg6包含的内容为[tt.src=NE7,tt.dest=NE9,tt.length=884,tt.period=4,tt.hop=2]。
[0306] 第七条TT消息,记为Msg7,所述Msg7包含的内容为[tt.src=NE22,tt.dest=NE8,tt.length=92,tt.period=16,tt.hop=4]。
[0307] 第十条TT消息,记为Msg10,所述Msg10包含的内容为[tt.src=NE18,tt.dest=NE12,tt.length=636,tt.period=32,tt.hop=1]。
[0308] 步骤402,对TT消息进行可调度排序;
[0309] 在实施例2中,计算出TT消息的最短路径跳数后,将TT消息按照周期由小到大、跳数由大到小、帧长由长到短进行可调度性排序;
[0310] 排序后的MG为:
[0311] 第五条TT消息,记为Msg5,所述Msg5包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=73,tt.period=4,tt.hop=2]。
[0312] 第六条TT消息,记为Msg6,所述Msg6包含的内容为[tt.src=NE7,tt.dest=NE9,tt.length=884,tt.period=4,tt.hop=2]。
[0313] 第三条TT消息,记为Msg3,所述Msg3包含的内容为[tt.src=NE12,tt.dest=NE8,tt.length=871,tt.period=16,tt.hop=2]。
[0314] 第四条TT消息,记为Msg4,所述Msg4包含的内容为[tt.src=NE4,tt.dest=NE16,tt.length=1460,tt.period=16,tt.hop=2]。
[0315] 第七条TT消息,记为Msg7,所述Msg7包含的内容为[tt.src=NE22,tt.dest=NE8,tt.length=92,tt.period=16,tt.hop=4]。
[0316] 第十条TT消息,记为Msg10,所述Msg10包含的内容为[tt.src=NE18,tt.dest=NE12,tt.length=636,tt.period=32,tt.hop=1]。
[0317] 步骤403,计算最短路径和备用路径;
[0318] 在实施例2中,用经过该节点的所有TT消息的帧长周期比之和计算当前节点的繁忙度;相邻节点实时互传数据包来获取对方的繁忙度,由于R7发生故障,故其繁忙度为无穷大;由于L12,18发生故障,故节点NE12与节点NE18互相将对方的繁忙度视为无穷大;首先将源节点加入到最短路径P最短及备用路径P备用中,计算出源节点四个方向上相邻节点到目的节点的跳数,根据跳数由小到大进行排序,若存在两个以上的节点到目的节点的跳数相同,则按照繁忙度由小到大排序,并将排在首位的结点加入到最短路径P最短,将排在次位的结点加入到备选路径P备用;P和P备用中的最后一个节点依次重复所述源节点确定下一跳结点的步骤(若出现下一跳节点排序时首位和次位节点到目的节点的跳数不同的情况,则将首位节点加入到P最短和P备用中),直至P最短和P备用中的节点数等于当前TT消息的最短路径跳数;最后将目的节点加入到P最短和P备用中,计算P最短和P备用中的所有节点的繁忙度之和,若P备用的繁忙度之和小于P最短的繁忙度之和,则将二者交换;
[0319] 执行完步骤403后,MG中每条TT消息的最优路径及备选路径如下表所示:
[0320]消息编号 最短路径P最短 备选路径P备用
Msg5 L4,10、L10,16 L4,10、L10,16
Msg6 L7,8、L8,9 L7,8、L8,9
Msg3 L12,7、L7,8 L12,7、L7,8
Msg4 L4,10、L10,16 L4,10、L10,16
Msg7 L22,16、L16,15、L15,9、L9,8 L22,21、L22,15、L15,9、L9,8
Msg10 L18,12 L18,12
[0321] 步骤404,增量化调度;
[0322] 在实施例2中,超周期为32ms,将排序后的待调度消息组MG中的TT消息依次按照其最短路径P最短在每个子周期内搜索出最早能容纳其传输的连续的空闲时间长度,不失一般性,将每ms平均分为10个长度为100μs的时隙,假设网络速率能保证每个时隙内完成一个TT帧的传输,调度结果可由下表表示,其中转发时刻用时隙序号表示;
[0323]
[0324] 步骤五,检查调度过程是否完成;
[0325] 实施例2中待调度消息组MG中共包括6条消息,每条消息均成功搜索到转发时刻,调度成功。
[0326] 处理单元及路由器的寿命分布均服从指数分布,如图9所示,参考2011年ASP‑DAC会议发表的“On the design and analysis of fault tolerant NoC architectuR using spaR routers”提到的可靠行评估方法,得到同规模下改进Torus的拓扑结构与传统Torus结构的可靠性对比图。
[0327] 在实施例2中,采用C++语言开发,SMT法采用Z3求解器,分别用SMT方法与本发明方法对相同故障下的Torus网络进行TT消息的重调度。参见图10所示,对故障组、TT消息组在重构时间上的对比,经本发明方法缩短了170%~260%。