CN102629912A - 面向无缓冲片上网络的容错偏转路由方法及装置 - Google Patents

面向无缓冲片上网络的容错偏转路由方法及装置 Download PDF

Info

Publication number
CN102629912A
CN102629912A CN2012100830963A CN201210083096A CN102629912A CN 102629912 A CN102629912 A CN 102629912A CN 2012100830963 A CN2012100830963 A CN 2012100830963A CN 201210083096 A CN201210083096 A CN 201210083096A CN 102629912 A CN102629912 A CN 102629912A
Authority
CN
China
Prior art keywords
link
packet
router
fault
links
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.)
Granted
Application number
CN2012100830963A
Other languages
English (en)
Other versions
CN102629912B (zh
Inventor
李晋文
冯超超
张民选
徐炜遐
肖立权
蒋句平
曹跃胜
胡军
齐树波
罗煜峰
陈旭
李元山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210083096.3A priority Critical patent/CN102629912B/zh
Publication of CN102629912A publication Critical patent/CN102629912A/zh
Application granted granted Critical
Publication of CN102629912B publication Critical patent/CN102629912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种面向无缓冲片上网络的容错偏转路由方法及装置,方法步骤如下:1)将相邻路由器通过可配置双向传输链路相连;2)在发送数据包前进行编码、在接收数据包后进行解码,解码发生指定错误跳转下一步;3)暂停错误链路并对链路进行检测,如果检测未遇到错误则恢复链路,否则将链路标记故障;4)根据正常链路两端的收发情况对单向故障的链路进行传输方向进行配置;装置包括路由器和用于控制相邻路由器之间的链路传输方向的方向分配器,路由器包括计算单元、交换分配器、交叉开关、包头更新单元、多个寄存器、测试控制单元和与寄存器对应的多个方向可配置的传输控制单元。本发明具有容错性能好、链路利用率高、面积开销小的优点。

Description

面向无缓冲片上网络的容错偏转路由方法及装置
技术领域
本发明涉及多核微处理器领域的片上路由器结构,具体涉及一种应用于无缓冲片上网络容错偏转路由方法及装置。
背景技术
近年来,随着集成电路工艺尺寸的降低、集成度的提高,单芯片上已可以集成越来越多的处理器核。片上网络(Network-on-Chip,NoC)技术已逐渐成为单芯片多处理器(Chip-Multiprocessors,CMPs)片上互连的标准通信架构。但是,随着集成电路工艺进入纳米时代,更小的特征尺寸、更低的电源电压以及不断提升的时钟频率严重影响超大规模集成电路(VLSI电路)的可靠性。
片上网络主要面临两类故障的影响:瞬态故障和永久故障。瞬态故障(Transient fault)又称为软错误(Soft error),故障随机出现并持续一个到数个周期,在片上网络中主要表现为由串扰、耦合噪声等引起的数据或控制信号的扰动,可以使数据的完整性降级或者对控制信号产生破坏,最终将会导致系统的异常或无效行为;永久故障出现后将会无限期地保持故障状态,通常由时间相关的电介质击穿(Time Dependent Dielectric Breakdown)、电迁移(Electromigration)、热循环(Thermal Cycling)和应力迁移(Stress Migration)等效应引起,必须采取相应措施隔离故障并有效管理剩余可用资源。
容错是指在片上网络组件失效的情况下网络仍能正常工作的能力,然而容错技术的实现往往是以性能降低为代价的。片上网络所固有的结构冗余特性(即:源与目标之间存在多条路径)为容错路由的设计提供了可行性。在容错路由中,通常采用绕道路由的方式避开故障节点或链路。一个好的容错路由算法应该在任意故障模式下保证包“0 丢失率”。在目前已有的大部分容错路由算法中,通常存在三类类问题:一是对故障模型进行简化来避免死锁或活锁,不能处理任意故障模式;二是通过离线方式对路由表进行配置来处理较复杂的故障模型;三是不能保证包“0 丢失率”,而仅能提高故障情况下的包到达率。因此,设计低开销、高可靠的容错路由器对于提高片上网络数据传输的可靠性具有非常重要的意义。
如图1和图2所示,现有技术的容错偏转路由器包括路由计算单元11、交换分配器12、交叉开关13、包头更新单元14和N个寄存器15,路由计算单元11、交换分配器12、交叉开关13依次相连,寄存器15分别通过路由计算单元11、交换分配器12、交叉开关13与包头更新单元14相连,包头更新单元14的输出端为路由器的N个输出端口,N个寄存器15的输入端构成路由器的N个输入端口。数据包到达路由器后,路由计算与输入包优先级排序同时进行。路由计算由路由计算单元11完成,计算出每一个到达包的最佳路由方向(通过最短路径到达目标节点的路由方向)。输入优先级排序由交换分配器12完成,交换分配器12包括输入优先级排序模块和分配模块,输入优先级排序模块根据每一个包在网络中所经历的跳步数(由包格式中的跳步数域给出)进行优先级排序,经历跳步数越多的包优先级越高,然后根据排序结果按包优先级从高到低的顺序分别通过分配模块产生N×N的交叉开关13的选择信号。如果有多个包竞争同一个最佳路由方向,优先级高的包通过该方向的输出端口输出,而较低优先级的包则被偏转到非最佳路由方向(偏离到目标节点的最短路径)。如果同一个包有多个最佳路由端口可用,可以随机选择一个空闲的输出端口,也可根据负载信息对输出端口排序,选择一个负载较小的输出端口。负载信息为与该端口相连的路由器在一段时间内所处理的包数。按负载信息优先级对输出端口进行分配可以有效平衡网络负载。在无缓冲路由器中,由于数据包不需要在路由器中等待,因此路由器接收到包后立即将其转发到下一个路由器,因此不存在死锁。为了避免包被无限制的偏转而产生活锁,需要对输入包进行优先级排序,按包优先级从高到低的顺序进行输出端口分配。交换分配器按输入包在网络中所经历的跳步数进行优先级排序,经历跳步数越多的包优先级越高。优先级排序完成后,按包优先级顺序依次为到达包进行输出端口分配。这样保证了优先级高的包总是能够通过最佳路由端口路由,朝着目标节点的方向前进而不会被无限制的偏转,从而避免活锁的产生。
在无缓冲路由器中,除了流水线寄存器外,路由器中没有额外的缓冲器,可以在很大程度上降低路由器的能耗和面积,为片上网络提供了一种低开销的解决方案。通常故障在芯片上随机出现,因此面积大的逻辑往往比面积小的逻辑更容易出错。研究表明,随着电路逻辑面积的增加,可靠性按照指数率恶化。与有缓冲路由器相比,无缓冲路由器的面积大大降低,使其在应对故障方面具有先天优势。由于包不在路由器中缓存,无缓冲路由器通常采用偏转路由算法(Deflection routing),路由器接收到包后立即将其转发到下一个路由器,在出现竞争的情况下,一些包将偏离最短路径路由。偏转路由的非最短路径完全自适应特性为设计容错路由算法提供了可行性。在偏转路由器中,要求输入端口数与输出端口数相等,这样才能保证每一个到达包均能分配到一个输出端口输出。在故障链路存在的情况下,改变了原有的拓扑结构,使得与故障链路相连的路由器输入与输出端口数目不等。现有的容错偏转路由器将单向故障链路等效为双向故障处理,保证了路由器输入与输出端口数目的平衡。但是,在实际情况中,两个方向链路同时出现故障的概率较低,将单向链路故障等效为双向故障将会降低网络的效率。
发明内容
本发明要解决的技术问题是提供一种能够在单向故障的情况下无需绕道路由即可实现容错、同时无需采用路由表、容错性能好、链路利用率高、面积开销小的面向无缓冲片上网络的容错偏转路由方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向无缓冲片上网络的容错偏转路由方法,其实施步骤如下:
1)将任意相邻路由器通过可配置双向传输链路相连;
2)任意路由器在发送数据包前对发送的数据包进行编码,在接收数据包后对数据包进行解码,当解码发生指定错误跳转执行步骤3);
3)暂停发生指定错误的链路,对所述链路进行检测,如果检测未遇到错误则恢复所述链路,如果检测遇到错误则将所述链路标记为故障链路;
4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障链路、另一个链路为正常链路时,如果正常链路的上行路由器到达数据包数大于输出端口数,或者正常链路的下行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包,则将所述正常链路的传输方向配置为反向;并在正常链路的下行路由器到达数据包数大于输出端口数时,或者正常链路的上行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包时,恢复所述正常链路的默认传输方向。
作为本发明上述技术方案的进一步改进:
所述步骤2)中的编码是指使用SECDED码对数据包进行编码;所述步骤2)中的解码是指使用SECDED码对数据包进行解码。
所述对数据包进行解码的具体步骤包括:将数据包的包头使用SECDED码编码为至少两个数据块,将数据包的数据体使用SECDED码编码为多个数据块。
所述对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块和数据体的数据块分别进行解码,同时读取解码过程中产生的校验子,如果校验子包含的错误信息为一位发生错误,则直接校正该错误;如果校验子包含的错误信息为两位发生错误,则判定发生所述指定错误。
所述步骤3)中对链路进行检测的详细步骤包括:所述发生错误的链路的下行路由器向上行路由器请求发送测试向量,所述上行路由器收到请求后向下行路由器发送测试数据,如果下行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判定为检测未遇到错误。
所述测试数据包含{0}n、{1}n、{01}n/2、{10}n/2共4个测试向量,其中n为发生错误链路的位宽。
一种面向无缓冲片上网络的容错偏转路由装置,包括路由器,所述路由器包括路由计算单元、交换分配器、交叉开关、包头更新单元和多个寄存器,所述路由计算单元、交换分配器、交叉开关依次相连,所述寄存器分别通过路由计算单元、交换分配器、交叉开关与包头更新单元相连,所述容错偏转路由装置还包括与寄存器一一对应的多个传输控制单元、用于控制相邻路由器之间的链路传输方向的方向分配器和用于检测链路状态的测试控制单元,所述传输控制单元包括解码器、编码器和用于控制外部链路传输方向的链路控制逻辑,所述寄存器的输出端通过解码器与交叉开关相连,所述寄存器的输入端、所述包头更新单元的输出端均依次通过所述编码器、链路控制逻辑与收发链路相连,所述方向分配器的输入端分别与相邻两个路由器的路由计算单元相连,所述方向分配器的输出端与链路控制逻辑的控制端相连,所述测试控制单元与链路控制逻辑相连。
作为上述技术方案的进一步改进:
所述链路控制逻辑包括第一双向链路和第二双向链路、二选一选择器和二输出分配器,所述寄存器的输入端通过二选一选择器分别与第一双向链路、第二双向链路相连,所述包头更新单元的输出端通过二输出分配器分别与第一双向链路、第二双向链路相连,所述第一双向链路和第二双向链路上均设有用于控制链路收发方向的方向控制器,所述二选一选择器的控制端、二输出分配器的控制端、方向控制器的控制端分别与方向分配器的输出端相连。
所述方向控制器包括一对相互并联且方向反向布置的低有效三态门和高有效三态门,所述低有效三态门的控制端和高有效三态门的控制端同时与所述方向分配器的输出端相连。
所述解码器为SECDED码编码器,所述编码器为SECDED码编码器。
本发明面向无缓冲片上网络的容错偏转路由方法具有下述优点:
1、本发明通过编码解码来检测数据包是否发生错误,并通过检测链路进行判断链路是否发生故障,并在链路发生单向链路故障时根据相邻两个路由器的到达包的状况对无故障双向链路的方向进行动态配置链路的传输方向,能够在链路发生单向故障的情况下无需绕道路由即可实现容错,具有容错性能好、链路利用率高、面积开销小的优点。
2、本发明根据相邻两个路由器的到达包的状况进行动态配置链路的传输方向,无需建立复杂的故障模型,不需要采用路由表,在单向链路故障的情况下不需要绕道路由即可实现容错,收发效率高,资源消耗更低、数据收发效率更好,而且还减小了路由器的面积开销。
3、本发明通过检测链路进行判断链路是否发生故障,能够区分瞬态故障与永久故障,仅仅针对发生永久故障的单向故障链路进行处理,能够提高故障的识别精度,有利于降低容错的数据处理量,从而提高容错处理效率。
4、本发明采用可配置的双向链路,通过同步配置相邻路由器之间的双向链路,链路传输方向能够立即发生改变,根据到达包信息及链路故障状态对双向链路的方向进行配置,因此不需要握手信号,方向转换的延迟非常低,方向变换不存在等待时间。
本发明面向无缓冲片上网络的容错偏转路由装置由于具有与上述面向无缓冲片上网络的容错偏转路由方法对应的结构,因此也具备上述面向无缓冲片上网络的容错偏转路由方法相对应的优点。
附图说明
图1为现有技术无缓冲路由器的框架结构示意图。
图2为现有技术无缓冲路由器中交换分配器的框架结构示意图。
图3为本发明实施例的基本流程示意图。
图4为本发明实施例的数据包编码格式示意图。
图5为本发明实施例中方向分配器工作原理图示意图。
图6为本发明实施例的框架结构示意图。
图7为本发明实施例链路控制逻辑的框架结构示意图。
图8为应用本发明实施例的3×3二维Mesh网络的框架结构示意图。
图9为3×3二维Mesh网络中R0和R1两个路由器之间的连接结构示意图。
图例说明:1、路由器;11、路由计算单元;12、交换分配器;13、交叉开关;14、包头更新单元;15、寄存器;2、解码器;3、编码器;4、链路控制逻辑;41、第一双向链路;42、第二双向链路;43、二选一选择器;44、二输出分配器;45、方向控制器;451、低有效三态门;452、高有效三态门;5、方向分配器;6、测试控制单元。
具体实施方式
如图3所示,本实施例面向无缓冲片上网络的容错偏转路由方法的实施步骤如下:
1)将任意相邻路由器通过双向传输链路相连;
2)任意路由器在发送数据包前对发送的数据包进行编码,任意路由器在接收数据包后对数据包进行解码,当解码发生指定错误跳转执行步骤3);
3)暂停发生指定错误的链路,对链路进行检测,如果检测未遇到错误则恢复链路,如果检测遇到错误则将链路标记为故障链路;
4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障链路、另一个链路为正常链路(即发生单向链路故障)时,如果正常链路的上行路由器到达数据包数大于输出端口数,或者正常链路的下行路由器到达数据包数不大于(小于或者等于)输出端口数且存在唯一最佳路由方向为正常链路的数据包,则将正常链路的传输方向进行反向;并在正常链路的下行路由器到达数据包数大于输出端口数时,或者正常链路的上行路由器到达数据包数不大于(小于或者等于)输出端口数且存在唯一最佳路由方向为正常链路的数据包时,恢复正常链路的默认传输方向。
步骤2)中的编码是指使用SECDED码对数据包进行编码;步骤2)中的解码是指使用SECDED码对数据包进行解码。本实施例中,对数据包进行解码的具体步骤包括:将数据包的包头使用SECDED码编码为至少两个数据块,将数据包的数据体使用SECDED码编码为多个数据块。对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块和数据体的数据块分别进行解码,使用SECDED码解码时会产生一个包含数据包错误信息的校验子,读取解码过程中产生的校验子则可以判定数据包的发生错误的位数,如果校验子包含的错误信息为一位发生错误,不论其是哪一种故障类型均可直接校正该错误;如果校验子包含的错误信息为两位发生错误,则判定发生前述的指定错误。
如图4所示,本实施例中数据包长度为128位,包含一个32位的包头和96位的数据体,包头包括一位有效位域、目标地址域、源地址域和跳步数域;有效位域(1位)用于标志包是否有效(0:表示无效包; 1:表示有效包);目标地址域和源地址域使用相对寻址,目标地址域和源地址域均为12位(分别包含6位行地址和6位列地址),采用二进制补码编码,分别表示到目标节点和源节点的相对地址。跳步数域(7位)用于记录包在网络中已经历的跳步数,作为包优先级以避免活锁。为了进行故障检测与诊断,本实施例使用SECDED码对数据包的包头数据块和数据体的数据块分别进行解码,将数据包分为8个部分:包头2个部分,数据体6个部分(每一部分均为16位),分别采用SECDED码(汉明码(22,16))进行编码。编码后的数据包总长176位,分为8个22位的数据块(包头1~包头2,数据体1~数据体6),且共包含48位校验位,采用分块编码的方式可以校正每一部分同时包含一位错误的8位错误,并可以最多检测出每一部分同时包含2位错误的16位错误。将数据包包划分为小数据块分别编码可以减少编/解码器的逻辑级数,有效提高性能并节省路由器的面积和功耗。
步骤3)中对链路进行检测的详细步骤包括:发生错误的链路的下行路由器向上行路由器请求发送测试向量,上行路由器收到请求后向下行路由器发送测试数据,如果下行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判定为检测未遇到错误,然后恢复该链路。对当前链路测试期间,路由器的其他链路仍可以正常传输包。本实施例中,测试数据包含{0}n、{1}n、{01}n/2、{10}n/2共4个测试向量,其中n为发生错误链路的位宽。
如图5所示,假设相邻两个路由器为R0和R1,连接R0和R1的一对双向链路分别为发送(Tx)链路和接收(Rx)链路(以R0的角度命名)。Tx链路和Rx链路的状态分别使用一位信号Tx_normal和Rx_normal表示(1:表示缺省配置方向;0:表示缺省配置方向的反向)。对于Tx链路而言,默认传输方向为路由器R0到路由器R1,数据包从路由器R0通过Tx链路发送给路由器R1,此时Tx链路的上行路由器为R0,下行路由器为R1;当Tx链路的传输方向反向以后,数据包从路由器R1通过Tx链路发送给路由器R0,此时Tx链路的上行路由器为R1,下行路由器为R0。
如图5中的区域(a)所示,如果Tx链路故障并且Rx链路处于缺省配置方向(Rx_normal=1),在以下两种情况下需要对Rx链路进行反向配置:(1)R0的到达包数大于输出端口数;(2)R0的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Tx链路方向。在情况(1)中,由于R0的到达包数大于输出端口数,如果不对Rx链路进行反向,将有包不能被处理。在情况(2)中,R0的到达包数小于或等于输出端口数,仅当有到达包的唯一最佳路由方向沿Tx链路方向时,才需要对Rx链路进行变向。如果Rx链路为反向配置状态(Rx_normal=0),需要对Rx链路变向的两种情况为:(1)R1的到达包数大于输出端口数;(2)R1的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Rx链路方向。在情况(1)中,由于之前Rx链路的变向导致R1的到达包数大于输出端口数,因此需要对Rx链路进行变向恢复缺省方向。在情况(2)中,如果R1的到达包数小于输出端口数,正常情况不需要对Rx链路变向,只有当R1中有到达包的唯一最佳路由方向沿Rx链路方向时才需要恢复Rx链路的缺省方向。
如图5中的区域(b)所示,如果Rx链路故障并且Tx链路处于缺省配置方向(Tx_normal=1),Tx链路变向的条件为以下两种情况:(1)R1的到达包数大于输出端口数;(2)R1的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Rx链路方向。如果Tx链路处于反向配置状态(Tx_normal =0),需要变向的情况为:(1)R0的到达包数大于输出端口数;(2)R0的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Tx链路方向。
如图6所示,本实施例面向无缓冲片上网络的容错偏转路由装置包括路由器1,路由器1包括路由计算单元11、交换分配器12、交叉开关13、包头更新单元14和多个寄存器15,路由计算单元11、交换分配器12、交叉开关13依次相连,寄存器15分别通过路由计算单元11、交换分配器12、交叉开关13与包头更新单元14相连,容错偏转路由装置还包括与寄存器15一一对应的多个传输控制单元、用于控制相邻路由器1之间的链路传输方向的方向分配器5和用于检测链路状态的测试控制单元6,传输控制单元包括解码器2、编码器3和用于控制外部链路传输方向的链路控制逻辑4,寄存器15的输出端通过解码器2与交叉开关13相连,寄存器15的输入端、包头更新单元14的输出端均依次通过编码器3、链路控制逻辑4与收发链路相连,方向分配器5的输入端分别与相邻两个路由器1的路由计算单元11相连,方向分配器5的输出端与链路控制逻辑4的控制端相连,测试控制单元6与链路控制逻辑4相连。在本实施例中,相邻路由器1之间每一对双向链路的方向通过一个方向分配器5进行配置双向链路的传输方向,每一个路由器1形成可配置双向链路的容错偏转路由器结构(BiFTDR)。在图6~图9中,黑色箭头代表链路的默认传输方向,线条箭头代表链路反向后的传输方向。
如图7所示,链路控制逻辑4包括第一双向链路41和第二双向链路42、二选一选择器43和二输出分配器44,寄存器15的输入端通过二选一选择器43分别与第一双向链路41、第二双向链路42相连,包头更新单元14的输出端通过二输出分配器44分别与第一双向链路41、第二双向链路42相连,第一双向链路41和第二双向链路42上均设有用于控制链路收发方向的方向控制器45,二选一选择器43的控制端、二输出分配器44的控制端、方向控制器45的控制端分别与方向分配器5的输出端相连。由于第一双向链路41、第二双向链路42均为双向链路,因此,在进入寄存器15的数据通路上需要二选一选择器43选择从哪一条双向链路输入,从编码器3输出的数据通路上需要二输出分配器44选择从哪一条双向链路输出。方向分配器5接收相邻路由器1的到达数据包信息(到达数据包的数量、每一个到达数据包的路由计算结果,由路由计算单元11产生)并根据链路的故障状态(由测试控制单元6产生)进行方向分配,输出二选一选择器43和二输出分配器44的选择信号、方向控制器45的使能信号。本实施例中,方向控制器45包括一对相互并联且方向反向布置的低有效三态门451和高有效三态门452,低有效三态门451的控制端和高有效三态门452的控制端同时与方向分配器5的输出端相连。
由于二维Mesh网络在片上网络中广泛使用,在此以二维Mesh网络为例说明本发明的应用,除了二维Mesh网络以外,本实施例也可用于路由器输入端口数与输出端口数相等的任意拓扑结构中。如图8所示,应用本实施例的二维Mesh网络为3×3二维Mesh网络。在该二维Mesh网络中,每一个路由器1都包括5个寄存器15和与寄存器15一一对应的5个传输控制单元。图中双向链路中的黑色箭头为缺省配置方向(默认传输方向),灰色箭头为可配置的传输方向。相邻路由器1之间每一对双向链路的方向通过一个方向分配器5配置,在3×3二维Mesh网络中一共需要12个方向分配器5。
如图9所示,方向分配器5连接于相邻的路由器R0和R1之间,方向分配器5分别通过路由计算单元11获取R0和R1的到达包的状况,并同步控制路由器R0和R1的链路控制逻辑4。在无故障网络中,每一条双向链路按缺省方向工作,方向分配器5不工作,可以采用门控时钟关闭其时钟信号以降低功耗。在有单向故障链路存在的情况下,方向分配器5根据相邻两个路由器1的到达包的状况对无故障双向链路的方向进行动态配置。
本实施例的面向无缓冲片上网络的容错偏转路由装置的工作过程如下:输入数据包到达寄存器15后,首先由解码器3进行解码,然后由路由计算单元11计算得到每一个数据包的最佳路由方向(通过最短路径到达目标节点的路由方向),交换分配器12对输入数据包按其在网络中经历的跳步数进行优先级排序,并根据路由计算的结果按包优先级从高到低的顺序产生的交叉开关13的选择信号。由于包中的源地址和目标地址采用相对寻址,因此,数据包在经过交叉开关后需要经过包头更新单元14对地址域和跳步数域进行更新。源地址与和目标地址域分别更新为从下一个路由器到源节点和目标节点的相对地址。经过包头更新后的数据包由编码器3进行重新编码。测试控制单元6在链路出现瞬态故障时产生测试向量对链路进行测试,如果经过解码器3后检测出包中任意部分包含两位错误,路由器进入测试模式,两个路由器之间的测试控制单元6使用4个测试向量({0}n, {1}n, {01}n/2, {10}n/2, 其中n为链路位宽)对故障链路进行收发测试,被测试链路暂时不可用。在测试模式下,下行路由器请求上行路由器发送测试向量,上行路由器依次发送上述4个测试向量。如果下行路由器检测到4个测试向量中的任意一个包含错误,测试过程终止,链路即被标记为永久故障链路。如果所有测试通过,此故障为瞬态故障,链路重新被恢复。在测试模式期间,路由器的其他链路仍可以正常传输包。在检测到发生单向链路故障时,如果是Tx链路故障,则检查是否满足图5中(a)所示的变向条件,若满足条件,则对Rx链路进行变向。Rx链路变向后也需要检查变向条件根据情况恢复方向。如果是Rx链路故障,则检查是否满足图5中(b)所示的变向条件,若满足条件,则对Tx链路进行变向。Tx链路变向后也需要检查变向条件根据情况恢复方向,因此即使发生单向链路故障,也不会通过自动配置链路方向而将网络的数据包收发效率保持最优。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种面向无缓冲片上网络的容错偏转路由方法,其特征在于其实施步骤如下:
1)将任意相邻路由器通过可配置双向传输链路相连;
2)任意路由器在发送数据包前对发送的数据包进行编码,在接收数据包后对数据包进行解码,当解码发生指定错误跳转执行步骤3);
3)暂停发生指定错误的链路,对所述链路进行检测,如果检测未遇到错误则恢复所述链路,如果检测遇到错误则将所述链路标记为故障链路;
4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障链路、另一个链路为正常链路时,如果正常链路的上行路由器到达数据包数大于输出端口数,或者正常链路的下行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包,则将所述正常链路的传输方向配置为反向;并在正常链路的下行路由器到达数据包数大于输出端口数时,或者正常链路的上行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包时,恢复所述正常链路的默认传输方向。
2.根据权利要求1所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于:所述步骤2)中的编码是指使用SECDED码对数据包进行编码;所述步骤2)中的解码是指使用SECDED码对数据包进行解码。
3.根据权利要求2所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于,所述对数据包进行解码的具体步骤包括:将数据包的包头使用SECDED码编码为至少两个数据块,将数据包的数据体使用SECDED码编码为多个数据块。
4.根据权利要求3所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于,所述对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块和数据体的数据块分别进行解码,同时读取解码过程中产生的校验子,如果校验子包含的错误信息为一位发生错误,则直接校正该错误;如果校验子包含的错误信息为两位发生错误,则判定发生所述指定错误。
5.根据权利要求1或2或3或4所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于,所述步骤3)中对链路进行检测的详细步骤包括:所述发生错误的链路的下行路由器向上行路由器请求发送测试向量,所述上行路由器收到请求后向下行路由器发送测试数据,如果下行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判定为检测未遇到错误。
6.根据权利要求5所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于:所述测试数据包含{0}n、{1}n、{01}n/2、{10}n/2共4个测试向量,其中n为发生错误链路的位宽。
7.一种面向无缓冲片上网络的容错偏转路由装置,包括路由器(1),所述路由器(1)包括路由计算单元(11)、交换分配器(12)、交叉开关(13)、包头更新单元(14)和多个寄存器(15),所述路由计算单元(11)、交换分配器(12)、交叉开关(13)依次相连,所述寄存器(15)分别通过路由计算单元(11)、交换分配器(12)、交叉开关(13)与包头更新单元(14)相连,其特征在于:所述容错偏转路由装置还包括与寄存器(15)一一对应的多个传输控制单元、用于控制相邻路由器(1)之间的链路传输方向的方向分配器(5)和用于检测链路状态的测试控制单元(6),所述传输控制单元包括解码器(2)、编码器(3)和用于控制外部链路传输方向的链路控制逻辑(4),所述寄存器(15)的输出端通过解码器(2)与交叉开关(13)相连,所述寄存器(15)的输入端、所述包头更新单元(14)的输出端均依次通过所述编码器(3)、链路控制逻辑(4)与收发链路相连,所述方向分配器(5)的输入端分别与相邻两个路由器(1)的路由计算单元(11)相连,所述方向分配器(5)的输出端与链路控制逻辑(4)的控制端相连,所述测试控制单元(6)与链路控制逻辑(4)相连。
8.根据权利要求7所述的面向无缓冲片上网络的容错偏转路由装置,其特征在于:所述链路控制逻辑(4)包括第一双向链路(41)和第二双向链路(42)、二选一选择器(43)和二输出分配器(44),所述寄存器(15)的输入端通过二选一选择器(43)分别与第一双向链路(41)、第二双向链路(42)相连,所述包头更新单元(14)的输出端通过二输出分配器(44)分别与第一双向链路(41)、第二双向链路(42)相连,所述第一双向链路(41)和第二双向链路(42)上均设有用于控制链路收发方向的方向控制器(45),所述二选一选择器(43)的控制端、二输出分配器(44)的控制端、方向控制器(45)的控制端分别与所述方向分配器(5)的输出端相连。
9.根据权利要求8所述的面向无缓冲片上网络的容错偏转路由装置,其特征在于:所述方向控制器(45)包括一对相互并联且方向反向布置的低有效三态门(451)和高有效三态门(452),所述低有效三态门(451)的控制端和高有效三态门(452)的控制端同时与所述方向分配器(5)的输出端相连。
10.根据权利要求7或8或9所述的面向无缓冲片上网络的容错偏转路由装置,其特征在于:所述解码器(2)为SECDED码编码器,所述编码器(3)为SECDED码编码器。
CN201210083096.3A 2012-03-27 2012-03-27 面向无缓冲片上网络的容错偏转路由方法及装置 Active CN102629912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210083096.3A CN102629912B (zh) 2012-03-27 2012-03-27 面向无缓冲片上网络的容错偏转路由方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210083096.3A CN102629912B (zh) 2012-03-27 2012-03-27 面向无缓冲片上网络的容错偏转路由方法及装置

Publications (2)

Publication Number Publication Date
CN102629912A true CN102629912A (zh) 2012-08-08
CN102629912B CN102629912B (zh) 2014-04-23

Family

ID=46588073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210083096.3A Active CN102629912B (zh) 2012-03-27 2012-03-27 面向无缓冲片上网络的容错偏转路由方法及装置

Country Status (1)

Country Link
CN (1) CN102629912B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904819A (zh) * 2012-09-28 2013-01-30 北京华为数字技术有限公司 一种路由器组网网络及交叉路由器
CN103259698A (zh) * 2013-04-27 2013-08-21 复旦大学 一种适用于片上网络的测试系统和方法
CN103746913A (zh) * 2014-01-13 2014-04-23 北京工业大学 基于无缓冲区路由器架构的片上网络拓扑结构的构建方法
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
CN104065570A (zh) * 2014-06-23 2014-09-24 合肥工业大学 异步可容错片上网络路由器设计方法
CN104539534A (zh) * 2015-01-03 2015-04-22 北京工业大学 一种面向应用的异构片上网络的构建方法
CN108833380A (zh) * 2018-05-31 2018-11-16 安徽四创电子股份有限公司 一种系统上下级平台间数据交换的方法
CN110430600A (zh) * 2019-08-09 2019-11-08 合肥工业大学 一种无线片上网络中基于错误避免策略的高效容错方法
CN115208746A (zh) * 2021-03-25 2022-10-18 迈络思科技有限公司 故障路由通知的有效传播

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145147A (zh) * 2007-10-10 2008-03-19 山东大学 三维多处理器系统芯片
CN102204318A (zh) * 2008-11-03 2011-09-28 飞思卡尔半导体公司 用于无线通信系统中的无线链路问题和恢复检测的技术

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145147A (zh) * 2007-10-10 2008-03-19 山东大学 三维多处理器系统芯片
CN102204318A (zh) * 2008-11-03 2011-09-28 飞思卡尔半导体公司 用于无线通信系统中的无线链路问题和恢复检测的技术

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
冯超超,张民选,蒋江,李晋文: "面向片上网络容错偏转路由器设计与优化", 《计算机工程与科学》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904819B (zh) * 2012-09-28 2015-12-09 北京华为数字技术有限公司 一种路由器组网网络及交叉路由器
CN102904819A (zh) * 2012-09-28 2013-01-30 北京华为数字技术有限公司 一种路由器组网网络及交叉路由器
CN103259698A (zh) * 2013-04-27 2013-08-21 复旦大学 一种适用于片上网络的测试系统和方法
CN103259698B (zh) * 2013-04-27 2016-03-30 复旦大学 一种适用于片上网络的测试系统和方法
CN103746913A (zh) * 2014-01-13 2014-04-23 北京工业大学 基于无缓冲区路由器架构的片上网络拓扑结构的构建方法
CN103746913B (zh) * 2014-01-13 2016-09-14 北京工业大学 基于无缓冲区路由器架构的片上网络拓扑结构的构建方法
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络系统及方法
CN104065570A (zh) * 2014-06-23 2014-09-24 合肥工业大学 异步可容错片上网络路由器设计方法
CN104539534A (zh) * 2015-01-03 2015-04-22 北京工业大学 一种面向应用的异构片上网络的构建方法
CN104539534B (zh) * 2015-01-03 2018-02-23 北京工业大学 一种面向应用的异构片上网络的构建方法
CN108833380A (zh) * 2018-05-31 2018-11-16 安徽四创电子股份有限公司 一种系统上下级平台间数据交换的方法
CN110430600A (zh) * 2019-08-09 2019-11-08 合肥工业大学 一种无线片上网络中基于错误避免策略的高效容错方法
CN115208746A (zh) * 2021-03-25 2022-10-18 迈络思科技有限公司 故障路由通知的有效传播
CN115208746B (zh) * 2021-03-25 2024-05-24 迈络思科技有限公司 故障路由通知的有效传播

Also Published As

Publication number Publication date
CN102629912B (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN102629912B (zh) 面向无缓冲片上网络的容错偏转路由方法及装置
Feng et al. Addressing transient and permanent faults in NoC with efficient fault-tolerant deflection router
Kohler et al. Fault tolerant network on chip switching with graceful performance degradation
CN103973482A (zh) 具有全局通信事务管理能力的容错片上网络系统及方法
Yu et al. Dual-layer adaptive error control for network-on-chip links
CN104052622B (zh) 片上网络中基于故障通道隔离检测的路由器容错方法
CN104919763A (zh) 通信装置、具有通信装置的路由器、总线系统以及具有总线系统的半导体电路的电路基板
CN109587048A (zh) 一种带有均衡策略的无虚通道容错路由算法
CN104579951A (zh) 片上网络中新颖的故障与拥塞模型下的容错方法
Patooghy et al. XYX: A power & performance efficient fault-tolerant routing algorithm for network on chip
CN102904807A (zh) 一种通过数据分割传输实现容错可重构片上网络的方法
Nunez-Yanez et al. Adaptive routing strategies for fault-tolerant on-chip networks in dynamically reconfigurable systems
Koibuchi et al. A simple data transfer technique using local address for networks-on-chips
Killian et al. A new efficient and reliable dynamically reconfigurable network-on-chip
Montañana et al. Fault tolerance on NoCs
Khichar et al. Fault aware adaptive routing algorithm for mesh based NoCs
Zhang et al. Very fine-grained fault-tolerant routing algorithm of NoC based on buffer reuse
CN102724115B (zh) 一种适用于片上网络系统的链路层容错电路设计
Patooghy et al. A low-power and seu-tolerant switch architecture for network on chips
Mohtashamzadeh et al. An innovative fault-tolerant method for 2-d mesh-based network-on-chip routing
Kumar et al. Reconfigurable distributed fault tolerant routing algorithm for on-chip networks
CN104270279A (zh) 一种片上网络非法路径故障在线检错电路
Ghiribaldi et al. Power efficiency of switch architecture extensions for fault tolerant NoC design
Xiangming et al. Configurable redundant routing for network on chip
Nehnouh et al. Fault tolerant and congestion aware routing algorithm for network on chip

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant