发明名称 一种基于通道依赖关系图的片上互联网络容错路由方法
摘要 一种基于通道依赖关系图的片上互联网络容错路由方法,首先,对应用程序的通信特性进行分析,建立应用程序模块的通信关系二分图,生成通信关系矩阵ATM,同时,生成无故障情况下的通道依赖关系有向图CDG,通过粗、细粒度故障检测,生成故障情况下的通道依赖关系有向图FCDG,应用转向模型最终生成对应的无环通道依赖关系有向图AFCDG及相应的数据流通信矩阵FCM,其次对ATM和FCM进行矩阵分析,选择可连通的单VC或多VC的AFCDG并对VC顺序进行设置,最后通过比较获得最佳的负载均衡路由方案,该方法通过粗,细粒度的故障检测方法最大限度地利用可用资源,构造基于单VC或多VC的带权重无环通道依赖关系有向图AFCDG实现避免死锁及负载均衡的目的。
申请公布号 CN102761475A 申请公布日期 2012.10.31
申请号 CN201210083054.X 申请日期 2012.03.27
申请人 西安交通大学 发明人 任鹏举;葛晨阳;孟庆欣;王全响;杨挺;刘卜;郑南宁
分类号 H04L12/56(2006.01)I;H04L12/24(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 弋才富
主权项 1.一种基于通道依赖关系图的片上互联网络容错路由方法,其特征在于,包括以下步骤:步骤一、首先对应用程序模块的通信特性进行分析,分析应用程序模块是否存在通信要求,根据应用程序模块之间是否存在通信要求生成二分图,二分图中的应用程序模块分别列于源节点和目标节点两侧,实线表示对应的应用程序模块间有通信需求;并生成相应的应用程序模块通信关系矩阵ATM,ATM由对应的通信关系二分图生成,ATM中元素1表示横纵坐标对应的两应用程序模块之间存在通信需求,元素0表示应用程序模块之间不存在通信需求;步骤二、步骤二、将无故障的片上互联网络拓扑结构生成无故障情况下的通道依赖关系有向图CDG;考虑故障模型及故障分布情况,通过粗、细粒度故障检测,根据不同粒度分析模式去除发生故障的链路,生成故障存在情况下的通道依赖关系有向图FCDG;将FCDG拓扑图中构成通道环路的路径去除,生成对应的无环通道依赖关系有向图AFCDG;根据AFCDG生成片上互联网络对应的数据流连通性矩阵FCM,FCM包含无环网络拓扑结构所有的连接信息,与特定的应用程序的通信要求无关;步骤三、对ATM和FCM进行矩阵分析,选择可连通的AFCDG:首先选择单VC情况下寻找满足通信要求的FCM,即对于ATM矩阵中任意非零元素T<sub>i,j</sub>,当FCM矩阵对应元素a<sub>i,j</sub>亦非零时,此时FCM矩阵对应的单VC AFCDG满足通信要求,基于单VC的AFCDG容错路由方法无法满足应用通信要求,需要采用多个VC并对顺序进行设置,每个VC组合采用转向模型,2VC情况下对于ATM矩阵中任意非零元素T<sub>i,j</sub>,FCM矩阵组合满足FCM<sup>0</sup>中<img file="FDA0000147342480000011.GIF" wi="181" he="60" />FCM<sup>1</sup>中<img file="FDA0000147342480000021.GIF" wi="190" he="62" />FCM<sup>0</sup>为VC0对应的AFCDG,FCM<sup>1</sup>为VC1对应的AFCDG,VC0和VC1采用转向模型可以进行选择,数据传输可以经由中间节点n从源节点i传输到目标节点n,满足通信要求,VC>2解决方案相同;步骤四、通过比较通道利用率和最小、最大通道负载,获得最佳的负载均衡路线,具体为:1、对于数据流i,它的源节点和目标节点分别为S<sub>i</sub>和D<sub>i</sub>,在AFCDG图上增加虚拟顶点S<sub>i</sub>和D<sub>i</sub>,将虚拟顶点通过增加路径与AFCDG图连接起来,即增加S<sub>i</sub>指向(S<sub>i</sub>,x)的路径,和(x,D<sub>i</sub>)指向D<sub>i</sub>的路径,这里(S<sub>i</sub>,x)为AFCDG中所有由节点S<sub>i</sub>指向节点x的物理链路,(x,D<sub>i</sub>)为AFCDG中所有由节点x指向节点D<sub>i</sub>的物理链路;2、每个链路具有初始权重值W=1,当有数据流i流过该链路时,该链路的权重将进行更新,W′为更新后权重,具体采用的权重计算公式如下:<maths num="0001"><![CDATA[<math><mrow><msup><mi>W</mi><mo>&prime;</mo></msup><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mrow><mn>1</mn><mo>-</mo><mfrac><mrow><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>d</mi><mi>i</mi></msub></mrow><mi>C</mi></mfrac></mrow></mfrac></mtd><mtd><mi>C</mi><mo>></mo><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>d</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mo>&infin;</mo></mtd><mtd><mi>C</mi><mo>&le;</mo><msub><mi>&Sigma;</mi><mi>i</mi></msub><msub><mi>d</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中C表示链路的带宽,d<sub>i</sub>表示通过该链路的数据流i所占用的的带宽;3、Dijktra的权重最短路径算法为每条数据流选择“最大可用带宽”的路径。数据流分配按照由高到低的带宽需求依次进行分配,最小权重路径采用Dijktra算法计算获得;4、确定该数据流的路径之后将虚拟顶点S<sub>i</sub>和D<sub>i</sub>以及增加的路径从AFCDG删除,再用同样的方法对其他数据流依次进行分析,通过这种方式数据的传输总是选择最高可用带宽的路径为主选项进行传输,这样数据传输路径分配方法中不会发生局部路径过负载,而其余路径闲置或低负载的情况,使通道负载相对平衡。
地址 710048 陕西省西安市咸宁路28号