一种面向片上网络的多层次动态可选复合型路由控制方法与流程

文档序号:18898760发布日期:2019-10-18 21:38阅读:267来源:国知局
一种面向片上网络的多层次动态可选复合型路由控制方法与流程

本发明涉及片上网络技术领域,尤其涉及一种面向片上网络的多层动态可选复合型路由控制方法。



背景技术:

随着集成电路工艺的进步和片上网络(noc)互连规模的扩大,noc的可靠性问题变得日趋严重,路由器结构可靠性设计及其容错路由算法设计成为热门,逐渐形成针对故障类型的研究分类:瞬时故障方面,以软件调节、电参数调节为主;永久性故障方面,以算法设计、电路容错设计为主。现阶段主流的路由算法和路由器结构设计,如xy维序路由算法、动态感知路由算法、旁路路由结构、无缓存路由结构、粒度分片路由结构等,处理方法单一,存在单方面过度设计的问题,如“简易算法+复杂结构”或“复杂算法+简易结构”,这不仅使得算法和结构设计上弱耦合,也存在设计资源上的浪费。同时,设计涉及的层次单一,目前单纯集中在顶层网络层或是底层电路层的算法和结构研究有很多,在有效的联系数据传输和故障处理的层次方面还存在着一些不足。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种面向片上网络的多层动态可选复合型路由控制方法,有效提高了片上网络的通信性能和故障容错性能。

本发明的目的是通过以下技术方案来实现的:一种面向片上网络的多层动态可选复合型路由控制方法,所述的控制方法包括以下内容:

标志位检测步骤:检测标志着本地端口和下游端口故障情况的比特位,确定当前数据传输的状况;

信息位提取步骤:由基础路由算法计算出当前数据包的路由信息并存储,根据当前数据传输的状况,提取所需的信息位内容;

算法选择与信息注入步骤:在基础路由算法的基础上,根据标志位检测结果动态选择应对的进阶路由算法,并将对应的信息注入进行算法计算;

信息刷新与传递步骤:对存储的信息进行刷新并向邻接的节点传递。

所述标志位检测步骤包括以下内容:

遍历存储在预备缓存模块固定位置中的本地端口和下游端口的x和y维度的故障信息;

根据故障信息确定当前数据传输的状况,并将当前数据传输状况记录在flag中。

所述预备缓存模块是指设计在每个路由节点中的冗余缓存块,它受时钟的控制,用于存储必要信息以及用于应对故障发生时大量数据单点汇集的情况。所述x和y维度是指根据数据在片上网络拓扑结构中传递时的方向而对各个路由节点的位置划分。

所述信息位提取步骤包括以下内容:

利用x和y维序路由算法作为基础算法计算数据包的路由信息;

将路由信息和本地节点信息存储在预备缓存模块的固定位置;

对比当前数据传输状况的flag信息,抽取对应的信息位内容。

所述路由信息包括本节点、下一跳故障节点和目的节点的坐标信息;所述本地节点信息包括节点中同一维度的另一端口名信息。

所述节点中同一维度的另一端口是指在路由节点中根据数据在片上网络拓扑结构中传递时的方向对节点的端口进行x和y维度位置上的划分,处于同一维度位置上的一对端口相互对应。

所述算法选择与信息注入步骤包括以下内容:

根据记录当前数据传输状况的flag信息,本地端口故障时,注入所述节点中同一维度的另一端口名信息,采取飞桥路由;

根据记录当前数据传输状况的flag信息,下游端口只为下一跳端口故障时,注入所述路由信息,采取改进型dy-xy路由;

如果不是上述两种情况,则仍所述路由信息,采用xy维序路由。

所述的飞桥是指本地端口故障时利用设计的精简备份rc电路模块将所有到达的数据除去到达本地pe的数据之外全部传输至对应的在节点内同一维度的另一端口处输出;在数据传输的层面上相当于在这一对端口之间直接建立起一条免去仲裁的传输通道。

所述信息刷新与传递步骤包括以下内容:

刷新预备缓存模块中标志位的内容并向邻接的节点传递并覆盖其整个节点;

判断标志位的改变,当本地端口和下游端口均发生故障,不再刷新标志位;

刷新预备缓存模块中信息位的内容。

所述刷新动作是指发生在一个数据包传递完毕和新的数据包到达时,进行信息提取后对预备缓存模块固定位置中的内容进行更新。

本发明的有益效果是:本发明复合利用三种路由算法,紧密结合顶层路由设计和底层电路模块,统一数据传输和故障处理,提出一种面向片上网络的多层次动态可选复合型路由控制方法,从故障信息分层处理、算法与电路模块耦合等方面进行优化,有效提高了片上网络的通信性能和故障容错性能。

附图说明

图1为本发明的方法流程图;

图2为本发明中预备缓存模块的示意图;

图3为本发明中贯穿整个控制方法的flag信号;

图4为本发明中信息位提取的流程示意图;

图5为本发明中算法选择与信息注入的流程示意图;

图6为本发明中精简备份rc模块与飞桥路由的示意图;

图7为本发明的改进型dy-xy路由算法的流程示意图;

图8为本发明的用于标志位传递的信息中转模块的示意图;

图9为本发明用于展示数据和信号在拓扑结构中的传递方式示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“上”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

如图1所示,一种面向片上网络的多层次动态可选复合型路由控制方法,包括以下步骤:

l1.标志位检测:检测标志着本地端口和下游端口故障情况的比特位,确定当前数据传输的状况;

l2.信息位提取:由基础路由算法计算出当前数据包的路由信息并存储,根据当前数据传输的状况,提取所需的信息位内容;

l3.算法选择与信息注入:在基础路由算法的基础上,根据标志位检测结果动态选择应对的进阶路由算法,并将对应的信息注入进行算法计算;

l4.信息刷新与传递:对存储的信息进行刷新并向邻接的节点传递。

其中,所述步骤l1包括以下子步骤:

l101.遍历存储在预备缓存模块固定位置中的本地端口和下游端口(x和y维度)故障信息;

l102.根据故障信息确定当前数据传输的状况,存在2种需要判定的状况:1.本地端口是否故障;2.下游端口是否故障。将当前数据传输状况记录在flag中。

所述的预备缓存模块是指设计在每个路由节点中的冗余缓存块,它受时钟的控制,用于存储必要信息以及用于应对故障发生时大量数据单点汇集的情况。所述的xy维度是指根据数据在片上网络拓扑结构中传递时的方向而对各个路由节点的位置划分。

故障信息的检测是容错设计的前提,故障状况的判定是采取容错手段的主要依据。在本发明中,故障信息的收集不是讨论的重点,对于所有容错设计而言,关键点就是一开始对故障状况的清晰了解。此处,如图2所示,路由节点的端口设计中在原有buffer的条件下额外开辟存储空间作为预备缓存,节点所有端口除ni外均设立预备缓存模块。该模块大小为原buffer的1/2,受时钟调控,与端口中的控制模块、rc模块产生数据交流。

对数据传输状况的判定发生在控制模块中,flag信号为3位二进制信号,如图3所示,其中从最高位到最低位依次表示本地端口故障状况、x维下游端口故障状况、y维下游端口故障状况,且高位表示发生故障:1xx表示本地端口故障,010表示x维下游端口故障,001表示y维下游端口故障,其余数值均表示非判定状况。flag信号贯穿整个方法步骤,在本发明的设计中起着至关重要的作用。

其中,所述步骤l2包括:

l201.利用xy维序路由算法作为基础算法计算数据包的路由信息;

l202.将路由信息包括本节点、下一跳故障节点(x和y维度)、目的节点的坐标信息和本地节点信息包括节点中同一维度的另一端口名信息存储在预备缓存模块的固定位置;

l203.对比当前数据传输状况的flag信息,抽取对应的信息位内容:1.只要是本地端口故障,就抽取本地节点信息;2.只要是下游端口且为下一跳端口故障,就抽取路由信息,并扩展flag信号标记此状况;3.无故障时,抽取路由信息。

所述节点中同一维度的端口是指在路由节点中根据数据在片上网络拓扑结构中传递时的方向对节点的端口进行了xy维度位置上的划分,处于同一维度位置上的一对端口相互对应。

xy维序路由算法是确定性路由算法的经典代表,在路由网络中无故障存在时,xy维序路由算法是效率最高、最实用的路由算法。在本发明中,将xy维序路由算法作为基础算法,即一旦数据包进入(头微片到达)端口的buffer,首先在rc模块中进行xy维序路由算法计算,获得路由信息并存储,由于xy维序路由算法执行的是“先x后y”的路由规则,同时考虑到达节点所在拓扑中位置的不确定性,即下一跳可能是x也可能是y,因此还需要对比flag信息,使得进一步确定故障状况后,抽取出准确的信息并对flag信息进行可能的扩展,为后续算法选择和计算提供依据,具体流程如图4所示。同时,路由信息也是后续进阶算法的所需计算数值。同时,在每一个路由节点内对端口进行了xy维度的划分,这样的划分紧密耦合基础xy维序路由算法,也紧密的耦合了进阶算法与电路模块设计。

其中,所述步骤l3中算法选择和信息注入的顺序规则是:

第一,根据记录当前数据传输状况的flag信息,本地端口故障时,注入节点中同一维度的另一端口名信息,采取“飞桥”路由;

第二,根据记录当前数据传输状况的flag信息,下游端口且为下一跳端口故障时,注入本地节点、下一跳故障节点(x和y维度)、目的节点的坐标信息,采取改进型dy-xy路由;

第三,除去第一第二的情况,其它情况下,注入路由信息,仍然采取xy维序路由。

所述的“飞桥”是指本地端口故障时利用设计的精简备份rc(路由计算单元,router-calculator)电路模块将所有到达的数据除去到达本地pe的数据之外全部传输至对应的在节点内同一维度的端口处输出,在数据传输的层面上相当于在这一对端口之间直接建立起一条免去仲裁的传输通道。每一条“飞桥”都是单向传输的通道。

在本发明中采用的是动态可选复合型路由算法,总体流程如图5所示,三种路由算法:“飞桥”路由算法,改进型dy-xy路由算法以及xy维序路由算发,根据故障信息和数据传输状况由控制模块开启和转换。如图6所示,在节点端口存在rc模块的基础上设计了精简备份rc模块,单独执行“飞桥”路由算法。其余的两个算法在原来的rc模块中进行选择执行。由于电路模块的硬件设计,一旦启用“飞桥”路由算法即表示本地端口发生永久性故障,且“飞桥”路由算法侧重于本地节点上的数据传输,它不可逆的、不可转换的,一旦启用即永久存在可配套其他算法。而改进型dy-xy路由算法和xy维序路由算法侧重于下一跳节点的数据传输,且不存在紧密耦合的硬件设计,于是它们之间在一定条件下是可相互转换的。图中“飞桥”路由的模拟图,形成避免了仲裁的传输通道类似于一级流水线,在时间延迟上具有优势,同时激活同一维度双端未使用的预备缓存应对单点数据爆发。动态可选复合型算法的设计使得该路由机制能够多层次跨层发挥作用,容错不再局限于单独的电路层级或者通信层级,而是联合起来,从而获得整体的容错效果。

当下游端口故障与下一跳端口吻合时即下一跳端口故障,启动改进型dy-xy路由算法,算法流程如图7所示,注入路由信息进行计算,判断“目的节点存在某一维坐标与下一跳节点的相同而与当前节点各维坐标完全不同”是否成立,若否,则继续执行基础路由算法;若是,则判断路由信息中下一跳所在维度是否x维,若非x维,则执行xy维序路由,若是x维,则执行yx维序路由。

其中,所述步骤l4包括:

l401.刷新预备缓存模块中标志位的内容并向邻接的节点传递并覆盖其整个节点;

l402.判断标志位的改变,当本地端口和下游端口均发生故障,不再刷新标志位;

l403.刷新预备缓存模块中信息位的内容。

所述的刷新动作是指发生在一个数据包传递完毕(尾微片传递结束)和新的数据包到达时(头尾片到达节点),进行信息提取后,对预备缓存模块固定位置中的内容进行更新。

本发明中对于信息位的更新依赖对数据包头微片信息的计算获取,而对于标志位的更新依赖的是故障检测,在这里使用局部bist内建自测试方法进行故障检测,当且仅当发生永久性故障时,对其进行标记更新,当然电路中还存在其他的容错设计以初步应对故障如冗余模块,这些不属于本发明的范畴。为了达到信息传递的目的,与邻接的节点之间建立乒乓机制,时钟控制下进行标志位信息的互传和应答。由于本发明针对的是永久性故障,当标志位中本地端口和下游端口均故障时,即发生不可逆的改变,同理此时不再刷新标志位并停止乒乓。如图8所示,在每一个节点中设计一个信息中转模块,由它接收应答来自周围节点端口的标志位刷新信息并向本地节点内的端口传递,该模块与各端口预备存储模块、控制模块产生数据交流。如图9所示是一个2x2的noc拓扑结构,其中展现了施用该多层次动态可选复合型路由控制方法时,存在于各个节点之间数据和相关信号的传递模式图。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1