片上网络中基于故障通道隔离检测的路由器容错方法

文档序号:7806849阅读:226来源:国知局
片上网络中基于故障通道隔离检测的路由器容错方法
【专利摘要】本发明公开了本发明提出了一种片上网络中基于故障通道隔离检测的路由器容错方法,使用故障通道隔离检测技术检测路由器中的通道故障,使故障检测不影响正常的数据传输;使用带回收指针的Buffer来暂存已传数据,用于故障通道中错误数据的重传,以减小路由器容错开销;同时,增加一个冗余通道用来传输永久故障通道中的数据。本发明以较小的硬件开销为代价,实现在检测故障的同时可以进行正常的数据传输,降低了网络的延迟,提高了网络的吞吐量。
【专利说明】片上网络中基于故障通道隔离检测的路由器容错方法

【技术领域】
[0001]本发明涉及集成电路芯片设计的容错【技术领域】,尤其涉及一种片上网络中基于故障通道隔离检测的路由器容错方法。

【背景技术】
[0002]片上网络(NoC,Network-on-Chip )为多处理器片上系统不同核之间提供高效的通信,其较总线架构的片上系统(S0C,SyStem-0n-Chip)而言,具有高带宽、低延时和可扩展性强等优点。典型的片上网络系统是由路由器、通信链路和资源节点(处理器单元或IP核等)组成。
[0003]然而,随着晶体管工业尺寸的不断缩减与网络规模的逐渐增大,由工艺不稳定、制造过程异变和退化、电子迁移等导致的电路不可靠问题日益严重,对故障电路的容错已成为芯片设计相关问题研究中一个不可缺少的分支。
[0004]NoC中的故障按故障发生的频率可分为瞬时故障、间歇性故障和永久故障。由于瞬时故障和间歇性故障可控性差,一般采用ECC检测并采用自动纠错或请求重传来解决。常规由ACK/NACK数据流控实现错误数据重传的架构中,需要在路由器的输出端口增加一定数量的Buffer来暂存可能需要重传的数据,在输出端口增加Buffer虽然在一定程度上可以增加网络的吞吐量,但是额外的Buffer会大大增加路由器面积和功耗上的开销。
[0005]对于永久故障的检测一般采用内建自测试(BIST,Built_in Self Test),BIST相对于外部自动测试仪测试来讲一定程度上节省了测试时间和测试成本,但是由于BIST是一种离线测试方式,其在测试过程中需要阻断数据传输,这必然会造成系统性能的下降。
[0006]对于永久故障的容错现有技术可以分为以下两大类:
1、通过路由算法绕过故障区域。通过路由算法绕过故障区域的优点是灵活性高,实现简单,整体开销较小。但它有一个致命缺点就是容错能力有限,不能解决故障导致孤立区域不可达的问题。同时,过多的偏转会导致网络拥塞,传输延时增大。
[0007]2、采用硬件冗余来容错。对整个路由器进行冗余加固,这样做电路可靠性必然得到了保障,但是对大的组件采用多模冗余所带来的面积和功耗上的开销是一般网络所不能接受的。


【发明内容】

[0008]本发明目的就是为了弥补已有技术的缺陷,提供一种片上网络中基于故障通道隔离检测的路由器容错方法。
[0009]本发明是通过以下技术方案实现的:
一种片上网络中基于故障通道隔离检测的路由器容错方法,操作步骤如下:
a、当数据包传输请求到来时,查询故障通道向量表,找出请求通道对应故障状态,若请求通道没有故障,则数据包通过请求通道传输至输出端口,若请求通道发生永久故障,则该数据包转向请求冗余通道,进而由冗余通道传输至输出端口 ; b、数据包到达输出端口后,进行ECC检测,若数据位没有出错,则数据正常传输,若数据位出现一位错误,则自动纠错后传输,若数据位出现多位错误,则转到c ;
C、数据位出现多位错误,通知上游路由器,通过冗余通道重传故障通道中的数据,重传的数据来自于上游路由器带回收指针的Buffer,同时置故障检测单元的使能信号FaultDetected 有效;
d、当故障检测单元的FaultDetected有效时,则启动故障检测程序,使用故障通道隔离检测技术对故障通道进行隔离检测,根据检测结果更新故障通道向量表。
[0010]步骤a中所述的故障通道向量表,内容如下:故障通道向量表中记录着路由器内部1通道的故障状态,其中I,O e { E,W,S,N,L },1通道故障表现为路由器从I端口转向O端口传输的数据出现错误,这种错误可能由I端口的数据分配器故障、I端口到O端口的VC故障、I端口到O端口之间的传输链路故障或O端口的多路选择器故障所导致。
[0011]步骤a中所述的冗余通道传输至输出端口具体内容包括:冗余通道输入端直接连接路由器的η个输入端口,输出端直接与路由器的η个输出端口相连,由一个η选I的多路选择器、一个Buffer、η个2选I的多路选择器和一个冗余通道控制器组成,主要用来传输永久故障通道中的数据。
[0012]步骤c中所述的带回收指针的Buffer对可能需要重传数据的进行缓存,重传的数据暂存在上游路由器中带回收指针的Buffer中,带回收指针的Buffer除了具有传统Buffer中读写指针外,还有一个回收指针,该回收指针指向上周期传输出去的数据,当Buffer控制器收到下游路由器数据传输正确信号后,通过移动回收指针来清除暂存的数据,若收到下游路由器数据重传信号,则重传回收指针指向的当前以及以后的所有数据。
[0013]步骤d中所述的使用故障通道隔离检测技术对故障通道进行隔离检测,具体步骤如下:
e、查找资源分配表,找出对应出错通道,置故障通道向量表中对应位为1,暂定其发生永久故障,切断故障通道中的数据流,使数据对故障通道的请求转向冗余通道,达到隔离故障通道的目的;
f、故障向量生成模块向故障通道连续注入3个测试数据包;
g、故障分析模块在路由器输出端接收测试数据包,并分析故障类型;
h、若测试结果为瞬时故障,则更新故障通道向量表中故障通道对应的信息位为0,若测试结果为故障通道发生永久故障,则不用更新故障通道向量表。
[0014]本发明的优点是:
1、本发明使用带回收指针的Buffer来重传故障通道中数据,较利用输出端口增加Buffer来暂存出错数据,大大减小了路由器开销。
[0015]2、本发明使用故障通道隔离检测技术对出错通道进行故障检测,使故障的检测不影响正常的数据传输,较离线检测的BIST而言,大幅度提高网络性能。
[0016]3、本发明增加一个冗余通道用来传输故障通道中的数据,较对整个路由器使用多模冗余加固,降低了芯片设计的复杂度,减小了路由器容错开销。

【专利附图】

【附图说明】
[0017]图1是本发明基于XY路由算法路由器整体架构图。
[0018]图2是本发明中EN通道故障模型图。
[0019]图3是本发明中故障通道向量表示意图。
[0020]图4是本发明中故障通道隔离检测技术故障检测流程图。
[0021]图5是本发明中带回收指针的Buffer示意图。
[0022]图6是本发明中故障分析模块示意图。
[0023]图7是本发明中故障检测模块示意图。

【具体实施方式】
[0024]一种片上网络中基于故障通道隔离检测的路由器容错方法,操作步骤如下:
a、当数据包传输请求到来时,查询故障通道向量表,找出请求通道对应故障状态,若请求通道没有故障,则数据包通过请求通道传输至输出端口,若请求通道发生永久故障,则该数据包转向请求冗余通道,进而由冗余通道传输至输出端口 ;
b、数据包到达输出端口后,进行ECC检测,若数据位没有出错,则数据正常传输,若数据位出现一位错误,则自动纠错后传输,若数据位出现多位错误,则转到c ;
C、数据位出现多位错误,通知上游路由器,通过冗余通道重传故障通道中的数据,重传的数据来自于上游路由器带回收指针的Buffer,同时置故障检测单元的使能信号FaultDetected 有效;
d、当故障检测单元的FaultDetected有效时,则启动故障检测程序,使用故障通道隔离检测技术对故障通道进行隔离检测,根据检测结果更新故障通道向量表。
[0025]步骤a中所述的故障通道向量表,内容如下:故障通道向量表中记录着路由器内部1通道的故障状态,其中I,O e { E,W,S,N,L },1通道故障表现为路由器从I端口转向O端口传输的数据出现错误,这种错误可能由I端口的数据分配器故障、I端口到O端口的VC故障、I端口到O端口之间的传输链路故障或O端口的多路选择器故障所导致。
[0026]步骤a中所述的冗余通道传输至输出端口具体内容包括:冗余通道输入端直接连接路由器的η个输入端口,输出端直接与路由器的η个输出端口相连,由一个η选I的多路选择器、一个Buffer、η个2选I的多路选择器和一个冗余通道控制器组成,主要用来传输永久故障通道中的数据。
[0027]步骤c中所述的带回收指针的Buffer对可能需要重传数据的进行缓存,重传的数据暂存在上游路由器中带回收指针的Buffer中,带回收指针的Buffer除了具有传统Buffer中读写指针外,还有一个回收指针,该回收指针指向上周期传输出去的数据,当Buffer控制器收到下游路由器数据传输正确信号后,通过移动回收指针来清除暂存的数据,若收到下游路由器数据重传信号,则重传回收指针指向的当前以及以后的所有数据。
[0028]步骤d中所述的使用故障通道隔离检测技术对故障通道进行隔离检测,具体步骤如下:
e、查找资源分配表,找出对应出错通道,置故障通道向量表中对应位为1,暂定其发生永久故障,切断故障通道中的数据流,使数据对故障通道的请求转向冗余通道,达到隔离故障通道的目的;
f、故障向量生成模块向故障通道连续注入3个测试数据包;
g、故障分析模块在路由器输出端接收测试数据包,并分析故障类型; h、若测试结果为瞬时故障,则更新故障通道向量表中故障通道对应的信息位为O,若测试结果为故障通道发生永久故障,则不用更新故障通道向量表。
[0029]下面结合图1至图7对本发明实施方式做进一步阐述,如下:
1、实施例为XY路由算法下,使用本发明一种片上网络中基于故障通道隔离检测的路由器容错方法的路由器架构,如图1。该路由器基础部分包括东(E)、西(W)、南(S)、北(N)以及本地(L)五个基本输入输出端口、20个Buffer、由3个4选1,2个2选I的多路选择器实现的交叉开关以及相应的控制逻辑(前向路由计算单元LRC、Buffer控制器、交叉开关分配器)。容错部分由一个冗余通道R、故障分析模块如图6所示、故障检测模块如图7所示、ECC编码器、ECC解码器组成。
[0030]冗余通道由一个5选I的多路选择器①、VC②、五个2选I的多路选择器③和一个冗余通道控制器组成,
2、本实施例使用的故障模型定义如下:
1通道故障:当路由器中数据从输入端口 I到输出端口 O的传输过程中发生错误,则就称该路由器的1通道出现故障,即1通道故障,这里的I,O e {E,W,S,N,L}。如图2所示,如EN通道故障表示路由器从东端口转向北端口的数据传输出现错误,这种错误可能由东端口的数据分配器④故障,东端口到北端口的Buffer⑤故障,东端口到北端口之间的传输链路⑥故障或北端口的多路选择器⑦出现故障所导致。在此不区分哪一部分出现故障,只要任意部分出现故障都视为该通道故障。
[0031]3、如图3所示,故障通道向量表中存储着1通道故障状态,I表示该通道发生永久故障,O表示该通道没有发生永久故障。基于XY路由算法的路由器,由于数据传输中不会出现由南、北方向向东、西方向的转弯,所以故障通道向量表中只记录20个通道的故障状态。
[0032]4、故障通道隔离检测技术是当某一个通道发生故障时,在检测故障类型的同时还可以应答上游路由器对该通道的数据传输请求,即检测故障的同时不会阻塞路由器的数据传输流。主要实现方法是在通道进入故障检测时,故障检测模块置该通道对应的故障通道向量表位为1,这样以来上游路由器对该通道所发出的传输数据请求均会转向对冗余通道的请求,本该从此通道传输的数据就可以通过冗余通道传输出去,而不会因为要进行故障检测被阻塞。通道隔离检测技术把故障检测从数据传输中隔离出来,使故障检测不出现在数据传输的关键路径中,最小化检测过程对系统性能的影响。
[0033]故障通道隔离检测技术细节流程如图4所示,具体过程描述如下:当故障分析模块中错误检测检测到数据多位出错时,就会通知故障检测模块进行故障检测。故障检测模块得知有错误发生时,首先查资源分配表找出发生故障的通道,通过NACK信号有效通知上游路由器通过冗余通道重传出错数据后的所有数据,修改故障通道向量表把此通道标记为永久故障,对故障通道隔离,然后进行故障通道检测。检测的方法是故障检测模块连续发送3个检测数据,被故障分析模块捕获后进行比较计数,若3次均出现错误则判定为永久故障,否则为瞬时故障。故障分析模块把检测结果发给故障检测模块,故障检测模块根据检测结果再修改故障通道向量表。这种检测技术可以在检测通道故障的同时,通过冗余通道响应上游路由器对该通道的数据传输请求,不会影响到数据的正常传输,使故障对网络性能造成的影响最小化。
[0034]5、带回收指针的Buffer取代现有技术中用于数据重传的输出Buffer,大大降低了系统的开销。如图5所示,带回收指针的Buffer有3个指针,数据通过写指针进入Buffer,读指针发送出去,回收指针暂存已传数据。在接受到数据正确到达反馈信号(ACK有效)之后,通过回收指针清除数据。如果收到重传信号(NACK有效),则读指针指向回收指针所在位置数据,通过冗余通道重传回收指针之后所有数据。
[0035]带回收指针的Buffer及其控制主要完成4个方面的逻辑控制:(I)对上游路由器数据传输请求的应答。当上游路由器发送数据请求信号Req_in有效时,控制器将查询故障通道向量表,如果发现请求的通道没有故障且Buffer不满时,就置请求响应信号Answerout有效。如果请求的通道出现故障,就转向请求冗余通道,等到令牌环到来时,置冗余通道响应信号RCAnsWer_0ut有效;(2)上游数据的接收及丢弃。当来自上游路由器故障分析模块的信号Data Write有效时,接收到来的数据,数据撤销信号Delete Last Flit有效时,丢弃当前接收的数据;(3)向下游路由器发送数据传输请求。当FIFO中有需要传输的数据时,控制器向下游路由器对应的通道发送数据传输请求信号Req_0ut,当收到应答信号Answer_in或冗余通道应答信号RCAnswer_in时,则向对应的通道发送数据;(4)数据清除及重传。当来自下游路由器故障检测模块数据确认信号ACK有效时,通过回收指针移位来清除已传数据,若NACK信号有效则读指针移到回收指针处,进行数据重传。
【权利要求】
1.一种片上网络中基于故障通道隔离检测的路由器容错方法,其特征在于:操作步骤如下: a、当数据包传输请求到来时,查询故障通道向量表,找出请求通道对应故障状态,若请求通道没有故障,则数据包通过请求通道传输至输出端口,若请求通道发生永久故障,则该数据包转向请求冗余通道,进而由冗余通道传输至输出端口 ; b、数据包到达输出端口后,进行ECC检测,若数据位没有出错,则数据正常传输,若数据位出现一位错误,则自动纠错后传输,若数据位出现多位错误,则转到c ; C、数据位出现多位错误,通知上游路由器,通过冗余通道重传故障通道中的数据,重传的数据来自于上游路由器带回收指针的Buffer,同时置故障检测单元的使能信号FaultDetected 有效; d、当故障检测单元的FaultDetected有效时,则启动故障检测程序,使用故障通道隔离检测技术对故障通道进行隔离检测,根据检测结果更新故障通道向量表。
2.根据权利要求1所述的一种片上网络中基于故障通道隔离检测的路由器容错方法,其特征在于:步骤a中所述的故障通道向量表,内容如下:故障通道向量表中记录着路由器内部1通道的故障状态,其中I,0 e {E,W,S,N,L },1通道故障表现为路由器从I端口转向O端口传输的数据出现错误,这种错误可能由I端口的数据分配器故障、I端口到O端口的VC故障、I端口到O端口之间的传输链路故障或O端口的多路选择器故障所导致。
3.根据权利要求1所述的一种片上网络中基于故障通道隔离检测的路由器容错方法,其特征在于:步骤a中所述的冗余通道传输至输出端口具体内容包括:冗余通道输入端直接连接路由器的η个输入端口,输出端直接与路由器的η个输出端口相连,由一个η选I的多路选择器、一个Buffer、η个2选I的多路选择器和一个冗余通道控制器组成,主要用来传输永久故障通道中的数据。
4.根据权利要求1所述的一种片上网络中基于故障通道隔离检测的路由器容错方法,其特征在于:步骤c中所述的带回收指针的Buffer对可能需要重传数据的进行缓存,重传的数据暂存在上游路由器中带回收指针的Buffer中,带回收指针的Buffer除了具有传统Buffer中读写指针外,还有一个回收指针,该回收指针指向上周期传输出去的数据,当Buffer控制器收到下游路由器数据传输正确信号后,通过移动回收指针来清除暂存的数据,若收到下游路由器数据重传信号,则重传回收指针指向的当前以及以后的所有数据。
5.根据权利要求1所述的一种片上网络中基于故障通道隔离检测的路由器容错方法,其特征在于:步骤d中所述的使用故障通道隔离检测技术对故障通道进行隔离检测,具体步骤如下: e、查找资源分配表,找出对应出错通道,置故障通道向量表中对应位为1,暂定其发生永久故障,切断故障通道中的数据流,使数据对故障通道的请求转向冗余通道,达到隔离故障通道的目的; f、故障向量生成模块向故障通道连续注入3个测试数据包; g、故障分析模块在路由器输出端接收测试数据包,并分析故障类型; h、若测试结果为瞬时故障,则更新故障通道向量表中故障通道对应的信息位为0,若测试结果为故障通道发生永久故障,则不用更新故障通道向量表。
【文档编号】H04L12/771GK104052622SQ201410284219
【公开日】2014年9月17日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】欧阳一鸣, 陈义军, 黄正峰, 梁华国, 汪秀敏, 易茂祥, 陈 田, 安鑫 申请人:合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1