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

上传人:111****11 文档编号:4309146 上传时间:2018-09-13 格式:PDF 页数:19 大小:2.33MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210083096.3

申请日:

2012.03.27

公开号:

CN102629912A

公开日:

2012.08.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/56申请日:20120327|||公开

IPC分类号:

H04L12/56

主分类号:

H04L12/56

申请人:

中国人民解放军国防科学技术大学

发明人:

李晋文; 冯超超; 张民选; 徐炜遐; 肖立权; 蒋句平; 曹跃胜; 胡军; 齐树波; 罗煜峰; 陈旭; 李元山

地址:

410073 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院

优先权:

专利代理机构:

湖南兆弘专利事务所 43008

代理人:

赵洪;周长清

PDF下载: PDF下载
内容摘要

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

权利要求书

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码编码器。

说明书

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

技术领域

本发明涉及多核微处理器领域的片上路由器结构,具体涉及一种应用于无缓冲片上网络容错偏转路由方法及装置。

背景技术

近年来,随着集成电路工艺尺寸的降低、集成度的提高,单芯片上已可以集成越来越多的处理器核。片上网络(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链路变向后也需要检查变向条件根据情况恢复方向,因此即使发生单向链路故障,也不会通过自动配置链路方向而将网络的数据包收发效率保持最优。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

面向无缓冲片上网络的容错偏转路由方法及装置.pdf_第1页
第1页 / 共19页
面向无缓冲片上网络的容错偏转路由方法及装置.pdf_第2页
第2页 / 共19页
面向无缓冲片上网络的容错偏转路由方法及装置.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《面向无缓冲片上网络的容错偏转路由方法及装置.pdf》由会员分享,可在线阅读,更多相关《面向无缓冲片上网络的容错偏转路由方法及装置.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102629912 A (43)申请公布日 2012.08.08 C N 1 0 2 6 2 9 9 1 2 A *CN102629912A* (21)申请号 201210083096.3 (22)申请日 2012.03.27 H04L 12/56(2006.01) (71)申请人中国人民解放军国防科学技术大学 地址 410073 湖南省长沙市砚瓦池正街47 号中国人民解放军国防科学技术大学 计算机学院 (72)发明人李晋文 冯超超 张民选 徐炜遐 肖立权 蒋句平 曹跃胜 胡军 齐树波 罗煜峰 陈旭 李元山 (74)专利代理机构湖南兆弘专利事务所 43008 代理人赵。

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

3、测试控制单元和与寄存器对应的多 个方向可配置的传输控制单元。本发明具有容错 性能好、链路利用率高、面积开销小的优点。 (51)Int.Cl. 权利要求书2页 说明书8页 附图8页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 8 页 附图 8 页 1/2页 2 1.一种面向无缓冲片上网络的容错偏转路由方法,其特征在于其实施步骤如下: 1)将任意相邻路由器通过可配置双向传输链路相连; 2)任意路由器在发送数据包前对发送的数据包进行编码,在接收数据包后对数据包进 行解码,当解码发生指定错误跳转执行步骤3); 3)暂停发生指定错误的链路,对所述链路进行检测,。

4、如果检测未遇到错误则恢复所述 链路,如果检测遇到错误则将所述链路标记为故障链路; 4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障 链路、另一个链路为正常链路时,如果正常链路的上行路由器到达数据包数大于输出端口 数,或者正常链路的下行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向 为所述正常链路的数据包,则将所述正常链路的传输方向配置为反向;并在正常链路的下 行路由器到达数据包数大于输出端口数时,或者正常链路的上行路由器到达数据包数不大 于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包时,恢复所述正常链路的 默认传输方向。 2.根据权利要求1所述的。

5、面向无缓冲片上网络的容错偏转路由方法,其特征在于:所 述步骤2)中的编码是指使用SECDED码对数据包进行编码;所述步骤2)中的解码是指使用 SECDED码对数据包进行解码。 3.根据权利要求2所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于,所 述对数据包进行解码的具体步骤包括:将数据包的包头使用SECDED码编码为至少两个数 据块,将数据包的数据体使用SECDED码编码为多个数据块。 4.根据权利要求3所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于,所 述对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块和数据体的 数据块分别进行解码,同时读取解码过程中产。

6、生的校验子,如果校验子包含的错误信息为 一位发生错误,则直接校正该错误;如果校验子包含的错误信息为两位发生错误,则判定发 生所述指定错误。 5.根据权利要求1或2或3或4所述的面向无缓冲片上网络的容错偏转路由方法,其 特征在于,所述步骤3)中对链路进行检测的详细步骤包括:所述发生错误的链路的下行路 由器向上行路由器请求发送测试向量,所述上行路由器收到请求后向下行路由器发送测试 数据,如果下行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判 定为检测未遇到错误。 6.根据权利要求5所述的面向无缓冲片上网络的容错偏转路由方法,其特征在于:所 述测试数据包含0 n 、1 n 、01 。

7、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)和用于。

8、检测链路状态的测 试控制单元(6),所述传输控制单元包括解码器(2)、编码器(3)和用于控制外部链路传输 权 利 要 求 书CN 102629912 A 2/2页 3 方向的链路控制逻辑(4),所述寄存器(15)的输出端通过解码器(2)与交叉开关(13)相连, 所述寄存器(15)的输入端、所述包头更新单元(14)的输出端均依次通过所述编码器(3)、 链路控制逻辑(4)与收发链路相连,所述方向分配器(5)的输入端分别与相邻两个路由器 (1)的路由计算单元(11)相连,所述方向分配器(5)的输出端与链路控制逻辑(4)的控制 端相连,所述测试控制单元(6)与链路控制逻辑(4)相连。 8.根据权利要求。

9、7所述的面向无缓冲片上网络的容错偏转路由装置,其特征在于:所 述链路控制逻辑(4)包括第一双向链路(41)和第二双向链路(42)、二选一选择器(43)和二 输出分配器(44),所述寄存器(15)的输入端通过二选一选择器(43)分别与第一双向链路 (41)、第二双向链路(42)相连,所述包头更新单元(14)的输出端通过二输出分配器(44)分 别与第一双向链路(41)、第二双向链路(42)相连,所述第一双向链路(41)和第二双向链路 (42)上均设有用于控制链路收发方向的方向控制器(45),所述二选一选择器(43)的控制 端、二输出分配器(44)的控制端、方向控制器(45)的控制端分别与所述方向分。

10、配器(5)的 输出端相连。 9.根据权利要求8所述的面向无缓冲片上网络的容错偏转路由装置,其特征在于:所 述方向控制器(45)包括一对相互并联且方向反向布置的低有效三态门(451)和高有效三 态门(452),所述低有效三态门(451)的控制端和高有效三态门(452)的控制端同时与所述 方向分配器(5)的输出端相连。 10.根据权利要求7或8或9所述的面向无缓冲片上网络的容错偏转路由装置,其特征 在于:所述解码器(2)为SECDED码编码器,所述编码器(3)为SECDED码编码器。 权 利 要 求 书CN 102629912 A 1/8页 4 面向无缓冲片上网络的容错偏转路由方法及装置 技术领域。

11、 0001 本发明涉及多核微处理器领域的片上路由器结构,具体涉及一种应用于无缓冲片 上网络容错偏转路由方法及装置。 背景技术 0002 近年来,随着集成电路工艺尺寸的降低、集成度的提高,单芯片上已可以集成越 来越多的处理器核。片上网络(Network-on-Chip,NoC)技术已逐渐成为单芯片多处理器 (Chip-Multiprocessors,CMPs)片上互连的标准通信架构。但是,随着集成电路工艺进入 纳米时代,更小的特征尺寸、更低的电源电压以及不断提升的时钟频率严重影响超大规模 集成电路(VLSI电路)的可靠性。 0003 片上网络主要面临两类故障的影响:瞬态故障和永久故障。瞬态故障(。

12、Transient fault)又称为软错误(Soft error),故障随机出现并持续一个到数个周期,在片上网络 中主要表现为由串扰、耦合噪声等引起的数据或控制信号的扰动,可以使数据的完整性降 级或者对控制信号产生破坏,最终将会导致系统的异常或无效行为;永久故障出现后将 会无限期地保持故障状态,通常由时间相关的电介质击穿(Time Dependent Dielectric Breakdown)、电迁移(Electromigration)、热循环(Thermal Cycling)和应力迁移(Stress Migration)等效应引起,必须采取相应措施隔离故障并有效管理剩余可用资源。 0004。

13、 容错是指在片上网络组件失效的情况下网络仍能正常工作的能力,然而容错技术 的实现往往是以性能降低为代价的。片上网络所固有的结构冗余特性(即:源与目标之间存 在多条路径)为容错路由的设计提供了可行性。在容错路由中,通常采用绕道路由的方式 避开故障节点或链路。一个好的容错路由算法应该在任意故障模式下保证包“0 丢失率”。 在目前已有的大部分容错路由算法中,通常存在三类类问题:一是对故障模型进行简化来 避免死锁或活锁,不能处理任意故障模式;二是通过离线方式对路由表进行配置来处理较 复杂的故障模型;三是不能保证包“0 丢失率”,而仅能提高故障情况下的包到达率。因此, 设计低开销、高可靠的容错路由器对于。

14、提高片上网络数据传输的可靠性具有非常重要的意 义。 0005 如图1和图2所示,现有技术的容错偏转路由器包括路由计算单元11、交换分配 器12、交叉开关13、包头更新单元14和N个寄存器15,路由计算单元11、交换分配器12、 交叉开关13依次相连,寄存器15分别通过路由计算单元11、交换分配器12、交叉开关13 与包头更新单元14相连,包头更新单元14的输出端为路由器的N个输出端口,N个寄存器 15的输入端构成路由器的N个输入端口。数据包到达路由器后,路由计算与输入包优先级 排序同时进行。路由计算由路由计算单元11完成,计算出每一个到达包的最佳路由方向 (通过最短路径到达目标节点的路由方向)。

15、。输入优先级排序由交换分配器12完成,交换分 配器12包括输入优先级排序模块和分配模块,输入优先级排序模块根据每一个包在网络 中所经历的跳步数(由包格式中的跳步数域给出)进行优先级排序,经历跳步数越多的包优 先级越高,然后根据排序结果按包优先级从高到低的顺序分别通过分配模块产生NN的 说 明 书CN 102629912 A 2/8页 5 交叉开关13的选择信号。如果有多个包竞争同一个最佳路由方向,优先级高的包通过该方 向的输出端口输出,而较低优先级的包则被偏转到非最佳路由方向(偏离到目标节点的最 短路径)。如果同一个包有多个最佳路由端口可用,可以随机选择一个空闲的输出端口,也 可根据负载信息对。

16、输出端口排序,选择一个负载较小的输出端口。负载信息为与该端口相 连的路由器在一段时间内所处理的包数。按负载信息优先级对输出端口进行分配可以有效 平衡网络负载。在无缓冲路由器中,由于数据包不需要在路由器中等待,因此路由器接收到 包后立即将其转发到下一个路由器,因此不存在死锁。为了避免包被无限制的偏转而产生 活锁,需要对输入包进行优先级排序,按包优先级从高到低的顺序进行输出端口分配。交换 分配器按输入包在网络中所经历的跳步数进行优先级排序,经历跳步数越多的包优先级越 高。优先级排序完成后,按包优先级顺序依次为到达包进行输出端口分配。这样保证了优 先级高的包总是能够通过最佳路由端口路由,朝着目标节点。

17、的方向前进而不会被无限制的 偏转,从而避免活锁的产生。 0006 在无缓冲路由器中,除了流水线寄存器外,路由器中没有额外的缓冲器,可以在很 大程度上降低路由器的能耗和面积,为片上网络提供了一种低开销的解决方案。通常故障 在芯片上随机出现,因此面积大的逻辑往往比面积小的逻辑更容易出错。研究表明,随着电 路逻辑面积的增加,可靠性按照指数率恶化。与有缓冲路由器相比,无缓冲路由器的面积大 大降低,使其在应对故障方面具有先天优势。由于包不在路由器中缓存,无缓冲路由器通常 采用偏转路由算法(Deflection routing),路由器接收到包后立即将其转发到下一个路由 器,在出现竞争的情况下,一些包将偏。

18、离最短路径路由。偏转路由的非最短路径完全自适应 特性为设计容错路由算法提供了可行性。在偏转路由器中,要求输入端口数与输出端口数 相等,这样才能保证每一个到达包均能分配到一个输出端口输出。在故障链路存在的情况 下,改变了原有的拓扑结构,使得与故障链路相连的路由器输入与输出端口数目不等。现有 的容错偏转路由器将单向故障链路等效为双向故障处理,保证了路由器输入与输出端口数 目的平衡。但是,在实际情况中,两个方向链路同时出现故障的概率较低,将单向链路故障 等效为双向故障将会降低网络的效率。 发明内容 0007 本发明要解决的技术问题是提供一种能够在单向故障的情况下无需绕道路由即 可实现容错、同时无需采。

19、用路由表、容错性能好、链路利用率高、面积开销小的面向无缓冲 片上网络的容错偏转路由方法及装置。 0008 为了解决上述技术问题,本发明采用的技术方案为: 一种面向无缓冲片上网络的容错偏转路由方法,其实施步骤如下: 1)将任意相邻路由器通过可配置双向传输链路相连; 2)任意路由器在发送数据包前对发送的数据包进行编码,在接收数据包后对数据包进 行解码,当解码发生指定错误跳转执行步骤3); 3)暂停发生指定错误的链路,对所述链路进行检测,如果检测未遇到错误则恢复所述 链路,如果检测遇到错误则将所述链路标记为故障链路; 4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障 链路。

20、、另一个链路为正常链路时,如果正常链路的上行路由器到达数据包数大于输出端口 说 明 书CN 102629912 A 3/8页 6 数,或者正常链路的下行路由器到达数据包数不大于输出端口数且存在唯一最佳路由方向 为所述正常链路的数据包,则将所述正常链路的传输方向配置为反向;并在正常链路的下 行路由器到达数据包数大于输出端口数时,或者正常链路的上行路由器到达数据包数不大 于输出端口数且存在唯一最佳路由方向为所述正常链路的数据包时,恢复所述正常链路的 默认传输方向。 0009 作为本发明上述技术方案的进一步改进: 所述步骤2)中的编码是指使用SECDED码对数据包进行编码;所述步骤2)中的解码是 指。

21、使用SECDED码对数据包进行解码。 0010 所述对数据包进行解码的具体步骤包括:将数据包的包头使用SECDED码编码为 至少两个数据块,将数据包的数据体使用SECDED码编码为多个数据块。 0011 所述对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块 和数据体的数据块分别进行解码,同时读取解码过程中产生的校验子,如果校验子包含的 错误信息为一位发生错误,则直接校正该错误;如果校验子包含的错误信息为两位发生错 误,则判定发生所述指定错误。 0012 所述步骤3)中对链路进行检测的详细步骤包括:所述发生错误的链路的下行路 由器向上行路由器请求发送测试向量,所述上行路由器。

22、收到请求后向下行路由器发送测试 数据,如果下行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判 定为检测未遇到错误。 0013 所述测试数据包含0 n 、1 n 、01 n/2 、10 n/2 共4个测试向量,其中n为发生错误 链路的位宽。 0014 一种面向无缓冲片上网络的容错偏转路由装置,包括路由器,所述路由器包括路 由计算单元、交换分配器、交叉开关、包头更新单元和多个寄存器,所述路由计算单元、交换 分配器、交叉开关依次相连,所述寄存器分别通过路由计算单元、交换分配器、交叉开关与 包头更新单元相连,所述容错偏转路由装置还包括与寄存器一一对应的多个传输控制单 元、用于控制相邻。

23、路由器之间的链路传输方向的方向分配器和用于检测链路状态的测试控 制单元,所述传输控制单元包括解码器、编码器和用于控制外部链路传输方向的链路控制 逻辑,所述寄存器的输出端通过解码器与交叉开关相连,所述寄存器的输入端、所述包头更 新单元的输出端均依次通过所述编码器、链路控制逻辑与收发链路相连,所述方向分配器 的输入端分别与相邻两个路由器的路由计算单元相连,所述方向分配器的输出端与链路控 制逻辑的控制端相连,所述测试控制单元与链路控制逻辑相连。 0015 作为上述技术方案的进一步改进: 所述链路控制逻辑包括第一双向链路和第二双向链路、二选一选择器和二输出分配 器,所述寄存器的输入端通过二选一选择器分。

24、别与第一双向链路、第二双向链路相连,所述 包头更新单元的输出端通过二输出分配器分别与第一双向链路、第二双向链路相连,所述 第一双向链路和第二双向链路上均设有用于控制链路收发方向的方向控制器,所述二选一 选择器的控制端、二输出分配器的控制端、方向控制器的控制端分别与方向分配器的输出 端相连。 0016 所述方向控制器包括一对相互并联且方向反向布置的低有效三态门和高有效三 态门,所述低有效三态门的控制端和高有效三态门的控制端同时与所述方向分配器的输出 说 明 书CN 102629912 A 4/8页 7 端相连。 0017 所述解码器为SECDED码编码器,所述编码器为SECDED码编码器。 00。

25、18 本发明面向无缓冲片上网络的容错偏转路由方法具有下述优点: 1、本发明通过编码解码来检测数据包是否发生错误,并通过检测链路进行判断链路是 否发生故障,并在链路发生单向链路故障时根据相邻两个路由器的到达包的状况对无故障 双向链路的方向进行动态配置链路的传输方向,能够在链路发生单向故障的情况下无需绕 道路由即可实现容错,具有容错性能好、链路利用率高、面积开销小的优点。 0019 2、本发明根据相邻两个路由器的到达包的状况进行动态配置链路的传输方向,无 需建立复杂的故障模型,不需要采用路由表,在单向链路故障的情况下不需要绕道路由即 可实现容错,收发效率高,资源消耗更低、数据收发效率更好,而且还减。

26、小了路由器的面积 开销。 0020 3、本发明通过检测链路进行判断链路是否发生故障,能够区分瞬态故障与永久故 障,仅仅针对发生永久故障的单向故障链路进行处理,能够提高故障的识别精度,有利于降 低容错的数据处理量,从而提高容错处理效率。 0021 4、本发明采用可配置的双向链路,通过同步配置相邻路由器之间的双向链路,链 路传输方向能够立即发生改变,根据到达包信息及链路故障状态对双向链路的方向进行配 置,因此不需要握手信号,方向转换的延迟非常低,方向变换不存在等待时间。 0022 本发明面向无缓冲片上网络的容错偏转路由装置由于具有与上述面向无缓冲片 上网络的容错偏转路由方法对应的结构,因此也具备上。

27、述面向无缓冲片上网络的容错偏转 路由方法相对应的优点。 附图说明 0023 图1为现有技术无缓冲路由器的框架结构示意图。 0024 图2为现有技术无缓冲路由器中交换分配器的框架结构示意图。 0025 图3为本发明实施例的基本流程示意图。 0026 图4为本发明实施例的数据包编码格式示意图。 0027 图5为本发明实施例中方向分配器工作原理图示意图。 0028 图6为本发明实施例的框架结构示意图。 0029 图7为本发明实施例链路控制逻辑的框架结构示意图。 0030 图8为应用本发明实施例的33二维Mesh网络的框架结构示意图。 0031 图9为33二维Mesh网络中R0和R1两个路由器之间的连。

28、接结构示意图。 0032 图例说明:1、路由器;11、路由计算单元;12、交换分配器;13、交叉开关;14、包头 更新单元;15、寄存器;2、解码器;3、编码器;4、链路控制逻辑;41、第一双向链路;42、第二 双向链路;43、二选一选择器;44、二输出分配器;45、方向控制器;451、低有效三态门;452、 高有效三态门;5、方向分配器;6、测试控制单元。 具体实施方式 0033 如图3所示,本实施例面向无缓冲片上网络的容错偏转路由方法的实施步骤如 下: 说 明 书CN 102629912 A 5/8页 8 1)将任意相邻路由器通过双向传输链路相连; 2)任意路由器在发送数据包前对发送的数据。

29、包进行编码,任意路由器在接收数据包后 对数据包进行解码,当解码发生指定错误跳转执行步骤3); 3)暂停发生指定错误的链路,对链路进行检测,如果检测未遇到错误则恢复链路,如果 检测遇到错误则将链路标记为故障链路; 4)实时检测任意相邻路由器之间的双向传输链路,在双向传输链路的一个链路为故障 链路、另一个链路为正常链路(即发生单向链路故障)时,如果正常链路的上行路由器到达 数据包数大于输出端口数,或者正常链路的下行路由器到达数据包数不大于(小于或者等 于)输出端口数且存在唯一最佳路由方向为正常链路的数据包,则将正常链路的传输方向 进行反向;并在正常链路的下行路由器到达数据包数大于输出端口数时,或者。

30、正常链路的 上行路由器到达数据包数不大于(小于或者等于)输出端口数且存在唯一最佳路由方向为 正常链路的数据包时,恢复正常链路的默认传输方向。 0034 步骤2)中的编码是指使用SECDED码对数据包进行编码;步骤2)中的解码是指使 用SECDED码对数据包进行解码。本实施例中,对数据包进行解码的具体步骤包括:将数据 包的包头使用SECDED码编码为至少两个数据块,将数据包的数据体使用SECDED码编码为 多个数据块。对数据包进行解码的详细步骤包括:使用SECDED码对数据包的包头数据块和 数据体的数据块分别进行解码,使用SECDED码解码时会产生一个包含数据包错误信息的 校验子,读取解码过程中。

31、产生的校验子则可以判定数据包的发生错误的位数,如果校验子 包含的错误信息为一位发生错误,不论其是哪一种故障类型均可直接校正该错误;如果校 验子包含的错误信息为两位发生错误,则判定发生前述的指定错误。 0035 如图4所示,本实施例中数据包长度为128位,包含一个32位的包头和96位的 数据体,包头包括一位有效位域、目标地址域、源地址域和跳步数域;有效位域(1位)用于 标志包是否有效(0:表示无效包; 1:表示有效包);目标地址域和源地址域使用相对寻址, 目标地址域和源地址域均为12位(分别包含6位行地址和6位列地址),采用二进制补码编 码,分别表示到目标节点和源节点的相对地址。跳步数域(7位)。

32、用于记录包在网络中已经 历的跳步数,作为包优先级以避免活锁。为了进行故障检测与诊断,本实施例使用SECDED 码对数据包的包头数据块和数据体的数据块分别进行解码,将数据包分为8个部分:包头2 个部分,数据体6个部分(每一部分均为16位),分别采用SECDED码(汉明码(22,16)进行 编码。编码后的数据包总长176位,分为8个22位的数据块(包头1包头2,数据体1 数据体6),且共包含48位校验位,采用分块编码的方式可以校正每一部分同时包含一位错 误的8位错误,并可以最多检测出每一部分同时包含2位错误的16位错误。将数据包包划 分为小数据块分别编码可以减少编/解码器的逻辑级数,有效提高性能并。

33、节省路由器的面 积和功耗。 0036 步骤3)中对链路进行检测的详细步骤包括:发生错误的链路的下行路由器向上 行路由器请求发送测试向量,上行路由器收到请求后向下行路由器发送测试数据,如果下 行路由器检测到任意一个测试数据包含错误则判定为检测遇到错误,否则判定为检测未遇 到错误,然后恢复该链路。对当前链路测试期间,路由器的其他链路仍可以正常传输包。本 实施例中,测试数据包含0 n 、1 n 、01 n/2 、10 n/2 共4个测试向量,其中n为发生错误链 路的位宽。 说 明 书CN 102629912 A 6/8页 9 0037 如图5所示,假设相邻两个路由器为R0和R1,连接R0和R1的一对。

34、双向链路分别 为发送(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。 0038 如图5中的区域(a)所示,如果Tx链路故障并且Rx链路处于缺省配置方向(Rx_ norm。

35、al=1),在以下两种情况下需要对Rx链路进行反向配置:(1)R0的到达包数大于输出端 口数;(2)R0的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Tx链 路方向。在情况(1)中,由于R0的到达包数大于输出端口数,如果不对Rx链路进行反向,将 有包不能被处理。在情况(2)中,R0的到达包数小于或等于输出端口数,仅当有到达包的唯 一最佳路由方向沿Tx链路方向时,才需要对Rx链路进行变向。如果Rx链路为反向配置状 态(Rx_normal=0),需要对Rx链路变向的两种情况为:(1)R1的到达包数大于输出端口数; (2)R1的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方。

36、向沿Rx链路方 向。在情况(1)中,由于之前Rx链路的变向导致R1的到达包数大于输出端口数,因此需要 对Rx链路进行变向恢复缺省方向。在情况(2)中,如果R1的到达包数小于输出端口数,正 常情况不需要对Rx链路变向,只有当R1中有到达包的唯一最佳路由方向沿Rx链路方向时 才需要恢复Rx链路的缺省方向。 0039 如图5中的区域(b)所示,如果Rx链路故障并且Tx链路处于缺省配置方向(Tx_ normal=1),Tx链路变向的条件为以下两种情况:(1)R1的到达包数大于输出端口数;(2) R1的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方向沿Rx链路方向。 如果Tx链路处于反向配置状。

37、态(Tx_normal =0),需要变向的情况为:(1)R0的到达包数大 于输出端口数;(2)R0的到达包数小于或等于输出端口数并且有到达包的唯一最佳路由方 向沿Tx链路方向。 0040 如图6所示,本实施例面向无缓冲片上网络的容错偏转路由装置包括路由器1,路 由器1包括路由计算单元11、交换分配器12、交叉开关13、包头更新单元14和多个寄存器 15,路由计算单元11、交换分配器12、交叉开关13依次相连,寄存器15分别通过路由计算 单元11、交换分配器12、交叉开关13与包头更新单元14相连,容错偏转路由装置还包括与 寄存器15一一对应的多个传输控制单元、用于控制相邻路由器1之间的链路传输。

38、方向的方 向分配器5和用于检测链路状态的测试控制单元6,传输控制单元包括解码器2、编码器3 和用于控制外部链路传输方向的链路控制逻辑4,寄存器15的输出端通过解码器2与交叉 开关13相连,寄存器15的输入端、包头更新单元14的输出端均依次通过编码器3、链路控 制逻辑4与收发链路相连,方向分配器5的输入端分别与相邻两个路由器1的路由计算单 元11相连,方向分配器5的输出端与链路控制逻辑4的控制端相连,测试控制单元6与链 路控制逻辑4相连。在本实施例中,相邻路由器1之间每一对双向链路的方向通过一个方 向分配器5进行配置双向链路的传输方向,每一个路由器1形成可配置双向链路的容错偏 转路由器结构(Bi。

39、FTDR)。在图6图9中,黑色箭头代表链路的默认传输方向,线条箭头代 表链路反向后的传输方向。 说 明 书CN 102629912 A 7/8页 10 0041 如图7所示,链路控制逻辑4包括第一双向链路41和第二双向链路42、二选一选 择器43和二输出分配器44,寄存器15的输入端通过二选一选择器43分别与第一双向链 路41、第二双向链路42相连,包头更新单元14的输出端通过二输出分配器44分别与第一 双向链路41、第二双向链路42相连,第一双向链路41和第二双向链路42上均设有用于控 制链路收发方向的方向控制器45,二选一选择器43的控制端、二输出分配器44的控制端、 方向控制器45的控制。

40、端分别与方向分配器5的输出端相连。由于第一双向链路41、第二双 向链路42均为双向链路,因此,在进入寄存器15的数据通路上需要二选一选择器43选择 从哪一条双向链路输入,从编码器3输出的数据通路上需要二输出分配器44选择从哪一条 双向链路输出。方向分配器5接收相邻路由器1的到达数据包信息(到达数据包的数量、每 一个到达数据包的路由计算结果,由路由计算单元11产生)并根据链路的故障状态(由测试 控制单元6产生)进行方向分配,输出二选一选择器43和二输出分配器44的选择信号、方 向控制器45的使能信号。本实施例中,方向控制器45包括一对相互并联且方向反向布置 的低有效三态门451和高有效三态门45。

41、2,低有效三态门451的控制端和高有效三态门452 的控制端同时与方向分配器5的输出端相连。 0042 由于二维Mesh网络在片上网络中广泛使用,在此以二维Mesh网络为例说明本发 明的应用,除了二维Mesh网络以外,本实施例也可用于路由器输入端口数与输出端口数相 等的任意拓扑结构中。如图8所示,应用本实施例的二维Mesh网络为33二维Mesh网络。 在该二维Mesh网络中,每一个路由器1都包括5个寄存器15和与寄存器15一一对应的5 个传输控制单元。图中双向链路中的黑色箭头为缺省配置方向(默认传输方向),灰色箭头 为可配置的传输方向。相邻路由器1之间每一对双向链路的方向通过一个方向分配器5配。

42、 置,在33二维Mesh网络中一共需要12个方向分配器5。 0043 如图9所示,方向分配器5连接于相邻的路由器R0和R1之间,方向分配器5分别 通过路由计算单元11获取R0和R1的到达包的状况,并同步控制路由器R0和R1的链路控 制逻辑4。在无故障网络中,每一条双向链路按缺省方向工作,方向分配器5不工作,可以 采用门控时钟关闭其时钟信号以降低功耗。在有单向故障链路存在的情况下,方向分配器 5根据相邻两个路由器1的到达包的状况对无故障双向链路的方向进行动态配置。 0044 本实施例的面向无缓冲片上网络的容错偏转路由装置的工作过程如下:输入数据 包到达寄存器15后,首先由解码器3进行解码,然后由。

43、路由计算单元11计算得到每一个数 据包的最佳路由方向(通过最短路径到达目标节点的路由方向),交换分配器12对输入数据 包按其在网络中经历的跳步数进行优先级排序,并根据路由计算的结果按包优先级从高到 低的顺序产生的交叉开关13的选择信号。由于包中的源地址和目标地址采用相对寻址,因 此,数据包在经过交叉开关后需要经过包头更新单元14对地址域和跳步数域进行更新。源 地址与和目标地址域分别更新为从下一个路由器到源节点和目标节点的相对地址。经过包 头更新后的数据包由编码器3进行重新编码。测试控制单元6在链路出现瞬态故障时产生 测试向量对链路进行测试,如果经过解码器3后检测出包中任意部分包含两位错误,路由。

44、 器进入测试模式,两个路由器之间的测试控制单元6使用4个测试向量(0 n , 1 n , 01 n/2 , 10 n/2 , 其中n为链路位宽)对故障链路进行收发测试,被测试链路暂时不可用。在测 试模式下,下行路由器请求上行路由器发送测试向量,上行路由器依次发送上述4个测试 向量。如果下行路由器检测到4个测试向量中的任意一个包含错误,测试过程终止,链路即 说 明 书CN 102629912 A 10 8/8页 11 被标记为永久故障链路。如果所有测试通过,此故障为瞬态故障,链路重新被恢复。在测试 模式期间,路由器的其他链路仍可以正常传输包。在检测到发生单向链路故障时,如果是Tx 链路故障,则检。

45、查是否满足图5中(a)所示的变向条件,若满足条件,则对Rx链路进行变向。 Rx链路变向后也需要检查变向条件根据情况恢复方向。如果是Rx链路故障,则检查是否满 足图5中(b)所示的变向条件,若满足条件,则对Tx链路进行变向。Tx链路变向后也需要 检查变向条件根据情况恢复方向,因此即使发生单向链路故障,也不会通过自动配置链路 方向而将网络的数据包收发效率保持最优。 0045 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施 例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域 的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和。

46、润饰也 应视为本发明的保护范围。 说 明 书CN 102629912 A 11 1/8页 12 图1 说 明 书 附 图CN 102629912 A 12 2/8页 13 图2 说 明 书 附 图CN 102629912 A 13 3/8页 14 图3 图4 说 明 书 附 图CN 102629912 A 14 4/8页 15 图5 说 明 书 附 图CN 102629912 A 15 5/8页 16 图6 说 明 书 附 图CN 102629912 A 16 6/8页 17 图7 说 明 书 附 图CN 102629912 A 17 7/8页 18 图8 说 明 书 附 图CN 102629912 A 18 8/8页 19 图9 说 明 书 附 图CN 102629912 A 19 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1