[发明专利]基于动态路由表的片上网络拥塞控制方法有效
申请号: | 201410384166.8 | 申请日: | 2014-08-06 |
公开(公告)号: | CN104202253B | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 才华;刘广文;陈广秋;耿振野;谷新超;杨勇 | 申请(专利权)人: | 长春理工大学 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L12/701 |
代理公司: | 长春市吉利专利事务所22206 | 代理人: | 李晓莉 |
地址: | 130022 吉林省长春*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于动态路由表的片上网络拥塞控制方法属于片上网络拥塞控制方法领域,包括定义动态路由表的自更新规则、片上网络的启动和初始化、求解和自身动态路由表、确定非故障邻近节点并交付数据等步骤。本方法首次在片上网络中采用动态路由表,该动态路由表可根据其他节点的当前状况动态更新和决策自身当前的最佳传送路径并且能够更好地体现全局意识,其每一个动态路由表内总是保存有去其他任意目的节点的全局拥塞度最小的最佳路径,便于快速读取和使用,大幅缩减了重复运算时间。此外,本方法还能减少各路由节点之间频繁的读写操作,削减数据计算量并节约运算占用的时间,从而缓解和限制了网络拥塞的产生,提高了整个片上网络的数据处理能力和吞吐量。 | ||
搜索关键词: | 基于 动态 路由 网络 拥塞 控制 方法 | ||
【主权项】:
基于动态路由表的片上网络拥塞控制方法,其特征在于:该方法包括如下步骤:步骤一:定义的基础的X‑Y传输规则:在2D mesh拓扑的片上网络上,由m×n个路由节点组成的矩形阵列栏目上的每一个路由节点都具有自己的唯一坐标,设任意一个路由节点A的坐标值(x,y),另外一个任意路由节点K的坐标值(p,q),则从节点A(x,y)始发并去往节点K(p,q)时,其遵循如下的基础规则:当节点A(x,y)与K(p,q)的横坐标和纵坐标均不相同时,A(x,y)总是忽略纵坐标上的差值,并优先选择能使横坐标差值的绝对值缩小的那一个横轴上的邻近节点作为下一跳时的交付地址;当节点A(x,y)与K(p,q)的横坐标相同但纵坐标不相同时,A(x,y)总是优先选择能使纵坐标差值的绝对值缩小的那一个纵轴上的邻近节点作为下一跳时的交付地址;步骤二:给m×n的2D mesh拓扑片上网络定义动态路由表的自更新规则,其具体包括如下子步骤:步骤2.1:分别定义动态路由表的自更新变量,包括如下子步骤:步骤2.1.1:定义动态路由表的内容:动态路由表中横向的每一行条目均包括四列栏目,各列栏目所记录的内容分别为平均拥塞度Acd、目标地址、下一跳地址和总跳数T1;动态路由表中的每一行条目均与片上网络中的一个路由节点唯一对应,并且该行条目内的四列栏目内容的初始值均为空;设当前传送任务欲从片上网络中的任意一个路由节点A将数据传至另一任意目标路由节点K,则将路由节点A称为数据源节点,并将目标路由节点K称为目标节点;位于路由节点A周边且直接与路由节点A相连的其它路由节点分别计作路由节点A的邻近节点X(A1)、邻近节点X(A2)……邻近节点X(An)(n≤4,n为自然数);定义目标地址:目标路由节点K在片上网络中的坐标地址(K)即为动态 路由表中所要记载的目标地址;定义下一跳地址:在路由节点A的多个邻近节点中,路由节点A准备将数据交付的那一个已被确定的邻近节点X(An)其在片上网络中的坐标地址(XAn)即为动态路由表中所要记载的下一跳地址;定义总跳数T1:将从路由节点A去往目标路由节点K所需的实际跳步数计作T1;定义平均拥塞度:定义从路由节点A去往目标路由节点K的平均拥塞度Acd(A‑K)的表达式为:式(2)中,路由节点A当前的满状态缓存数值计作b(A),其可由路由节点A自身求得;路由节点A的总缓存数值计作c(A),其可由路由节点A自身求得;路由节点A的增步总跳数T2=T1+1;路由节点A的邻近节点X(An)当前所记载的平均拥塞度数值计作Acd(XAn),其可从邻近节点X(An)所发来的路由更新报文中获得;步骤2.1.2:定义路由更新报文:为每一个路由节点定义其自身的路由更新报文,路由更新报文横向的每一行条目均包括三列栏目,各列栏目所记录的内容分别为该路由节点当前平均拥塞度Acd、目标地址(K)和增步总跳数T2;每一个路由更新报文均与步骤2.1.1所述的一个路由节点A唯一对应,路由节点A根据其自身的动态路由表的内容对其路由报文A中的三项数据进行更新;步骤2.1.3:定义片上网络可传输的最远距离L:设2D mesh拓扑的片上网络的是由m×n个路由节点组成的矩形阵列,则定义L=2×(m+n)……(3);步骤2.1.4:定义路由更新请求时钟:为片上网络中的每一个路由节点均定义一个独立的内置自更新时钟计时器Timer;步骤2.1.5:为片上网络中的每一个路由节点均定义四个本节点向其自身邻近节点发送更新请求的请求次数计数器Count,如步骤2.1.1所述的任意一个路由节点A的四个请求次数计数器Count(An)(n≤4,n为自然数)分别与该路由节点A的四个邻近节点X(An)(n≤4,n为自然数)一一对应;步骤2.1.6:以静态方式对步骤2.1.1所述动态路由表进行初始化:分别将步骤2.1.1所述的任意一个路由节点A的每一个邻近节点X(An)(n≤4,n为自然数)视作一个所述路由节点A为起点并以该确定的邻近节点X(An)为终点的独立传输路径,从而在所述路由节点A的动态路由表中创建四行新的邻近节点路由条目;所述每一行邻近节点路由条目均与一个邻近节点X(An)(n≤4,n为自然数)唯一对应;对所述路由节点A以静态方式对其自身动态路由表中前述四行邻近节点路由条目分别进行初始化,将与所述一行邻近节点路由条目唯一对应的那个确定的邻近节点X(An)的网络坐标地址(XAn)(n≤4,n为自然数)分别填入新创建的邻近节点路由条目内的下一跳地址列栏目以及目的地址列栏目;将所述一行邻近节点路由条目内的总跳数设置为1,并将该行邻近节点路由条目内的平均拥塞度设置为0;步骤2.2:定义如步骤2.1.1所述的任意一个路由节点A的平均拥塞度更新规则,其具体包括如下子步骤:步骤2.2.1:由路由节点A分别获取由步骤2.1.1所述的每一个邻近节点X(An)(n≤4,n为自然数)各自所发来的路由更新报文;步骤2.2.2:路由节点A分别判断,每一个如步骤2.2.1所述的邻近节点X(An)的路由更新报文中,是否包含有途经该邻近节点X(An)并且到达目标路由节点K的如步骤2.1.1所述的一行条目或多行条目;若不包含,则路由节点A直接将所述邻近节点X(An)路由更新报文中的一行或多行条目新增并加入路由节点A自身的动态路由表,并执行步骤2.3;若包含所述一行条目或多行条目,则直接执 行步骤2.2.3;步骤2.2.3:路由节点A从自身的处理器中读取路由节点A当前的总缓存c (A)和满状态缓存b(A)的值;步骤2.2.4:从该邻近节点报文中分别获得以该邻近节点作为数据源节点出发并去往相同的目标节点K时,该邻近路由节点X(An)所记录的当前的:平均拥塞度数值Acd(XAn‑K)、目标地址(KXAn)和增步总跳数T2(XAn);步骤2.2.5:由路由节点A将自身的满状态缓存值b(A)、总缓存值c(A)、总跳数T1、增步总跳数T2以及通过路由更新报文发来的邻近节点X(An)的平均拥塞度数值Acd(XAn‑K)分别代入式(2)中,并计算求得路由节点A的新平均拥塞度Acd(A‑K)新;步骤2.2.6:判断Acd(A‑K)新是否大于等于Acd(A‑K)原;若是,执行步骤2.2.8;若否,执行步骤2.2.7;步骤2.2.7:路由节点A对自身的动态路由表进行自更新,具体包括:保持目标地址(K)不变;用路由节点A的增步总跳数T2的当前值替代总跳数T1的当前值;用步骤2.2.5所求得的平均拥塞度Acd(A‑K)新替换路由节点A的动态路由表中原本所记载的平均拥塞度Acd(A‑K)原;然后执行步骤2.3;步骤2.2.8:路由节点A不更新自身的动态路由表,直接执行步骤2.3;步骤2.3:由步骤2.1.1所述的任意一个路由节点A判断其自身如步骤2.1.4所述的自更新时钟计时器Timer的当前时钟周期是否已经结束,若路由节点A自身的当前时钟周期尚未结束则进一步执行步骤2.4,若当前时钟周期已经结束则执行步骤2.5;步骤2.4:执行路由更新请求规则,其具体包括如下子步骤:步骤2.4.1:由步骤2.1.1所述的任意一个路由节点A判断,在如步骤2.1.4所述自更新时钟计时器的一个当前的时钟周期以内,路由节点A是否分别收到了邻近节点X(A1)、邻近节点X(A2)、邻近节点 X(A3)以及邻近节点X(A4)的共计四个邻近节点X(An)(n≤4,n为自然数)各自所发来的全部共计四个路由 更新报文;若未能收到全部四个路由更新报文,则执行步骤2.4.2:若已经收到全部四个路由更新报文,则执行步骤2.4.8;步骤2.4.2:路由节点A向未能及时发来路由更新报文的邻近节点X(An)发送路由更新请求;步骤2.4.3:路由节点A调取未能及时发来路由更新报文的邻近节点X(An)相对应的请求次数计数器Count(An),并使其当前的计数值增加1;步骤2.4.4:路由节点A分别对如步骤2.1.5所述的每一个请求次数计数器Count(An)进行判断,若其当前的计数值不大于3则执行步骤2.4.5,若其当前的计数值大于3则执行步骤2.4.6;步骤2.4.5:路由节点A继续等待如步骤2.4.2所述的未能及时发来路由更新报文的邻近节点X(An)向路由节点A发送路由更新报文,直至路由节点A接收到该报文后重新执行步骤2.4.1;步骤2.4.6:路由节点A在自身的动态路由表中将步骤2.4.2所述未能及时发来路由更新报文的邻近节点X(An)确定为故障节点,并终止沿该故障节点的传送任务;步骤2.4.7:路由节点A从其自身的动态路由表中查找与步骤2.4.6所述故障节点相对应的每一行条目,并将包含前述故障节点信息的每一行均从动态路由表中整行删除,以使得该行动态路由表内全部数据均不再参与任何后续步骤的运算;步骤2.4.8:由路由节点A提前重置自身的如步骤2.1.4所述的自更新时钟计时器Timer;并将剩余的全部非故障邻近节点X(An)对应的请求次数计数器Count(An)均同步重置为0;步骤2.5:步骤2.1.4所述的自更新时钟计时器Timer当前的时钟周期自行结束重置,或者若该计时器Timer在如步骤2.4.8所述的过程中被重置,又或者,当前如步骤2.1.1所述的任意一个路由节点A收到了如步骤2.4.2所述的其邻近节点X(An)发送来的路由更新请求,当上述三种情况中的任意一种发生时,路由节点A都按其当前的动态路由表生成一份如步骤2.1.2所述的路由更新报文;步骤2.6:由步骤2.1.1所述的任意一个路由节点A将其按照步骤2.5所述方式生成的路由更新报文同步发送给如步骤2.4.8所述的路由节点A的全部非故障邻近节点X(An);步骤三:为片上网络的每一个路由节点均设定一个专门用于存储动态路由表的内部存储空间并将步骤2.1所述的动态路由表的自更新变量分别存入每一个路由节点的动态路由表存储空间中;步骤四:将步骤2.2至步骤2.6所述动态路由表的自更新规则均分别存入步骤三所述的每一个路由节点自身的处理器内存中;步骤五:片上网络的启动和初始化:片上网络启动并开始运作时,片上网络每个路由节点均被同步初始化,初始化后的各个路由节点均已求得和存储一个统一的片上网络可传输的最远距离L值,各个路由节点的内置自更新时钟计时器Timer均未开始计时,并且,如步骤2.4.3所述的请求次数计数器Count(An)均置为0,各个路由节点的路由更新报文中的各项数值均为空;步骤六:当片上网络开始首个从任意一个路由节点A将数据传至另一任意目标路由节点K的传送任务时,片上网络中的全部节点被同步激活,各个路由节点的内置自更新时钟计时器Timer均开始按步骤2.1.4所设定的时间值开始倒计时;步骤七:由当前数据源节点,即:路由节点A,其自身的处理器首先执行步骤2.2至步骤2.6所述动态路由表的自更新规则,并求得自身当前的动态路由表;步骤八:路由节点A判断,假若把自身的某一确定的非故障邻近节点X(An)(n≤4,n为自然数)作为下一跳地址,则若从路由节点A始发途经该非故障邻近节点X(An)并去往目标节点K时,在路由节点A当前的动态路由表中所记载的总跳数T1是否大于步骤五所述的可传输的最远距离L值,若总跳数T1大于可传输的最远距离L,则执行步骤九,否则执行步骤十一;步骤九:路由节点A在自身的动态路由表中将步骤八所述的当前非故障邻 近节点X(An)确定为路径不可达节点,并终止沿该故障节点的传送任务;同时,路由节点A从其自身的动态路由表中查找与该路径不可达节点相对应的一行条目,并将该行条目整行删除以使得该行动态路由表内全部数据均不再参与任何后续步骤的运算;步骤十:由路由节点A终止沿步骤九所述的路径不可达节点的当前传送任务并重新执行步骤八;步骤十一:由路由节点A从自身的动态路由表中检索,其自身的动态路由表中是否已经存在去往目标节点K并将步骤八所述确定的非故障邻近节点X(An)(n≤4,n为自然数)作为下一跳地址的一行条目,若存在该行条目,则执行步骤十二,否则执行步骤十三;步骤十二:由路由节点A直接将步骤十所述的那一行条目所对应的非故障邻近节点X(An)确定为本次数据将要交付的下一个邻近节点X(An),并将当前数据包传送给该下一个邻近节点,然后执行步骤十四;步骤十三:由路由节点A按照步骤一所述基础的X‑Y传输规则将数据传送给X‑Y规则所确定的路径上的下一个邻近节点,然后执行步骤十四;步骤十四:如步骤十二或步骤十三所述的下一个邻近节点,其在接到当前的数据传送任务后,开始将自身视作步骤七所述的数据源节点,其作为全新的路由节点A’开始按照与初始的路由节点A完全相同的方式执行步骤六至步骤十二的过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春理工大学,未经长春理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410384166.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种基于地理位置的背压链路调度方法
- 下一篇:一种即时通信客户端和服务端