基于动态可重构FPGA的容错技术研究
先将整个系统在减少模块间布线难度的情况下按照算法分块。然后将每个模块所使用的资源在有2/9以9等分为例,冗余资源的情况下进行9等分,这为第二级划分。如图5所示。现在需要解决的是配置文件的设计以及布局的问题。设计时,对实现相同功能的每—个算法模块进行多种不同的布局,每—个布局都留出其中2/9的冗余资源。当然其算秸结构可以不同,而实现相同功能的不同算法也可能会达到容错的效果,这将提高系统的容错能力。相同功能算法的不同布局结构如图6所示。本文引用地址://m.amcfsurvey.com/article/191243.htm
基于算法和资源两级分块的容错结构,在系统出现异常的情况下,首先采用相同的配置文件对电路进行重构。重构后如果异常消除,那么容错过程完成,而且出现的错误属于暂态错误。在系统工作的过程中,需要周期性地记录电路的状态,当出现故障然并进行重构后应该将记录的状态进行装载,以保持系统连续性及电路工作的正确性。如果这样的重构仍然没有解决问题,那么改变配置文件,利用布局不同的配置文件进行部分动态重构,用以解决永久性的故障。重构前后算法的功能应该保持不变,通过不同布局的重构使电路可以绕开硬件故障区,达到容错的目的。
为解决重构前后的通信问题,采取类似总线宏(Bus Macro)的通信结构,保持模块间重构前后通信布线不变。而且每一次重构,必须保证4个方向的通信端口和内部模块连接也不变,重构后的电路都接在原有对外接口上。总线宏只能用于相邻的两个模块间的通信,对于不相邻的模块间的通信,采用称作可重构多路总线(Recongigurable Multiple Bus)的动态开关信号的通信结构。以一维结构为例,即现有模块分布在一条线上。当一个模块Mk需要和另一个不与自己相邻的模块通信时,它向与自己相邻的且与要通信的模块在相同方向上的模块Mk+1发出请求,Mk+1再向Mk+2发出请求,如是依次下去直到需要通信的模块Mk+i收到信号,接着它以相反的路径返回一个应答信号,当Mk收到应答信号后,两者开始通信。
2.2 方法分析
假设在第二级划分时将每一个模块所占用的资源分成N2等分,称N为等分数,冗余资源为N-1,每一个资源单位出错概率为P(N),则系统正常工作的概率为
由仿真结果可知,随着每一个模块所占资源等分数的增加,系统容错能力提高,而同时冗余资源所占的比例却下降。可以看到,基于算法和资源的两级分块容错结构,相对于以往基于模块的重构方法,进一步降低了系统的容错粒度,提高了系统的容错率和冗余资源的使用效率,而且在容错的同时起到了检错和定位的作用。省去了实际用于检错和定位的硬件或软件开销,而且系统也不需要在线计算配置文件等,提高了系统的连续性和可靠性。
由于重构前后模块对外功能接口都不变,相当于一个电路黑盒子,节省了外部布局布线的时间和计算时间,系统容错时开销降低。其他的一些冗余方法,例如以CLB为最小单元,每次利用冗余资源绕过故障区需要复杂的布局布线,而这样的布局布线所造成的延迟是难以避免的,只有通过降低芯片工作频率来保证系统时序的稳定。而现在所采取的结构虽然在布局上进行了两次划分,但是对于每一个模块的外部仍然是基于功能模块的容错,每次都是以经过测试的成熟的功能算法为单元的,不存在算法内部重新布线后造成延迟的问题,保证了系统的高速运行,这也是本方法的主要特点。
采用逐级划分的方法可以合理的选择所需的容错粒度,以及容错能力。可是随着级数和对每一个模块等分数目的增加,预编译的配置文件数量将增大,这样系统需要较多的存储资源来存储这些文件。如果采用遗传算法,根据硬件资源与工作模块的分级分块结构进行在线计算,那么这个问题将得到解决。
3 结束语
文章对基于FPGA的动态可重构技术在容错领域的应用进行了研究。针对重构文件的大小,动态容错时隙的长短、资源利用率、实现的复杂性、模块间通信方式、冗余资源的比例与布局等方面的问题分析了一些方法的优缺点,针对突出的问题,提出了一种基于算法和资源多级分块的容错方法,可以在不影响系统工作的情况下完成基于动态重构的容错。这种方法结构简单,多项参数可以选择,尤其是粒度的可变性。冗余资源比例较低,重构时没有对模块外进行布线的要求,不会因重构造成延迟而降低系统的工作频率。
评论