发明名称 基于演化硬件的实时容错系统设计方法
摘要 本发明公开了一种基于演化硬件的实时容错系统设计方法,属于演化硬件领域。该方法从电路编码和系统容错机制进行分析,并在FPGA平台上实现了一套实时容错系统。采用动态自适应CGP编码方法,挖掘编码矩阵的潜能,减少演化耗时,提高演化成功率;采用多种机制保证容错系统的实时性和容错性。以系统故障容错时间为约束条件,保证系统的实时性;利用静态故障配置库加速对故障的修复过程;当静态配置库溢出时,采用补偿修复模式重构系统,提高系统长期运行能力;采用虚拟可重构技术在FPGA平台上构建了一套实时容错系统原型,验证该设计方法的可行性和有效性。该方法兼顾系统的容错性和实时性,充分发挥演化硬件在容错系统设计领域的优势。
申请公布号 CN106055426A 申请公布日期 2016.10.26
申请号 CN201610341467.1 申请日期 2016.05.21
申请人 大连理工大学 发明人 王洁;柳继委
分类号 G06F11/14(2006.01)I 主分类号 G06F11/14(2006.01)I
代理机构 大连理工大学专利中心 21200 代理人 温福雪;李宝元
主权项 一种基于演化硬件的实时容错系统设计方法,其特征在于,步骤如下:(1)动态自适应CGP编码方法传统的CGP编码随机选择一个固定节点作为最终输出节点,动态自适应CGP编码方法输出节点不固定,采用一种动态随机采样模型从CGP编码矩阵中选择不同节点作为输出节点,分别计算CGP编码矩阵的适应度值,并选择适应度值最大的矩阵作为最优解;节点的采样概率随着种群整体适应度变化情况动态调整,当前种群的适应度分布情况采用以下公式计算:<maths num="0001"><math><![CDATA[<mrow><msub><mi>f</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mover><mrow><mi>f</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover><mrow><msub><mi>f</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>f</mi><mi>min</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000996199280000011.GIF" wi="1366" he="151" /></maths>其中,f<sub>d</sub>(t)表示种群中个体适应度分布或多样性;<img file="FDA0000996199280000012.GIF" wi="94" he="70" />表示种群中个体的平均适应度值;f<sub>max</sub>(t)表示种群中个体的最大适应度值;f<sub>min</sub>(t)表示种群中个体的最小适应度值;随着迭代次数的增加,个体之间的适应度差值越来越小,平均适应度值增加,f<sub>d</sub>(t)的值也逐渐变大;采样概率分为两部分,在演化初期,种群适应度值较低,采用固定的较高采样概率加块收敛速度;当种群平均适应度值或迭代次数达到预定的阈值时,根据种群平均适应度值动态调整采样概率;演化过程中采样概率的计算公式为:<maths num="0002"><math><![CDATA[<mrow><msub><mi>P</mi><mi>s</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>P</mi><mrow><mi>s</mi><mn>0</mn></mrow></msub><mo>,</mo></mrow></mtd><mtd><mrow><mi>t</mi><mo>&lt;</mo><msub><mi>t</mi><mn>0</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>P</mi><mrow><mi>s</mi><mn>0</mn></mrow></msub><msup><mi>e</mi><mfrac><mrow><mo>-</mo><mo>&part;</mo><mrow><mo>(</mo><mrow><mi>t</mi><mo>-</mo><msub><mi>t</mi><mn>0</mn></msub></mrow><mo>)</mo></mrow></mrow><msub><mi>t</mi><mi>max</mi></msub></mfrac></msup><mo>/</mo><msub><mi>f</mi><mi>d</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd><mtd><mrow><mi>t</mi><mo>&GreaterEqual;</mo><msub><mi>t</mi><mn>0</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000996199280000013.GIF" wi="1398" he="207" /></maths>其中,P<sub>s0</sub>是设定的初始采样概率,初始采样概率的设定综合考虑种群规模和染色体长度;如果初始采样概率设为1,则此时遍历所有的节点,并计算适应度值;如果初始采样概率设置过小,则随机选择,初始采样概率不低于0.5;t<sub>0</sub>是采样概率调整的临界迭代次数,t<sub>0</sub>的取值为0.3t<sub>max</sub>;<img file="FDA0000996199280000014.GIF" wi="30" he="39" />是自定义的参数调节因子,设定为2,t<sub>max</sub>是演化算法的最大迭代次数;(2)基于演化硬件的实时容错机制容错系统本质上是一种实时系统,实时性是容错系统的一个重要约束条件;基于演化硬件的实时容错机制,以系统容错时间为约束条件,利用静态配置库加速修复过程,兼顾容错系统的实时性和容错性;整个实时容错机制主要包括以下几个方面:①计算演化算法最大迭代次数将系统可容忍的故障时间定义为修复期限T<sub>max</sub>;T<sub>max</sub>通过故障分析树技术得到;为了保证系统在修复期限内修复系统故障,在演化过程中将修复期限作为演化算法的约束条件;首选通过公式(3)计算出演化算法迭代一次需要的时间T<sub>g</sub>;T<sub>g</sub>=λ(T<sub>cfg</sub>+T<sub>fit</sub>)+T<sub>ea</sub>          (3)其中,T<sub>cfg</sub>是演化平台的配置时间,T<sub>fit</sub>是适应度评估时间,T<sub>ea</sub>是演化算法的执行时间,λ是每次迭代过程中产生的子代个体的数量;则根据公式(4)得到最大的迭代次数;<maths num="0003"><math><![CDATA[<mrow><msub><mi>G</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>=</mo><mfrac><msub><mi>T</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><msub><mi>T</mi><mi>g</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000996199280000021.GIF" wi="1174" he="135" /></maths>②运行时故障检测在系统运行阶段,当系统出现故障时,需要在最短的时间内检测到错误;故障最终导致系统输出错误,比较系统的实际输出和期望输出,判断系统是否有故障发生;故障检测的结果用公式(5)表示<maths num="0004"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><msub><mi>O</mi><mrow><mi>r</mi><mi>e</mi><mi>a</mi><mi>l</mi></mrow></msub><mo>&CirclePlus;</mo><msub><mi>O</mi><mi>exp</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000996199280000022.GIF" wi="1164" he="71" /></maths>其中R表示实际输出和期望输出的异或,如果期望输出和实际输出一致,则R为0,否则R不为零,通过检测R的值,得到检测系统是否出错;③利用静态配置库修复故障静态配置库主要用来加速故障的修复时间;在系统设计阶段,通过FTA技术挖掘系统潜在的故障,并将这些故障的补偿电路存储在静态配置库中;在系统运行时,如果发生故障,则以向量(I<sub>n</sub>,O<sub>real</sub>)为索引到静态配置库中查找对应的补偿电路;如果查找对应的补偿电路,则说明发生了已知故障,直接从配置库中查找对应的补偿电路,完成对系统故障的修复;如果没有查到对应的修复电路,则说明发生了未知故障,启动演化算法来演化补偿电路;在演化未知故障的补偿电路时,采用一种基于相似性的演化算法来加速演化过程;首先,采用海明距离来计算期望补偿输出和配置库中已有电路的补偿输出的相似性,表示为Dis(R,R’),其中R是期望补偿电路的输出,R’是配置库中已有电路的补偿输出;如果<img file="FDA0000996199280000031.GIF" wi="533" he="79" />则用R’对应的补偿电路来产生演化算法的初始种群,并演化出R;反之,则根据R’对应的补偿电路来演化出R,然后在补偿输出上加上反相器;静态配置库的大小取决于系统规模和硬件资源,静态配置库的空间越大占用的存储资源越多,查库的时间递增;配置库中的修复电路和故障索引是一对多的关系,即一个修复电路对应多个故障索引;④利用演化与补偿的方式重构系统每修复一个故障,将对应的补偿电路存储在配置库中,但是配置库的存储空间有限,不能存储所有的补偿电路;当配置库内存溢出时,配置库将无法存储新的补偿电路,而且随着系统长时间的运行,出现更多的未知故障,配置库的作用逐渐降低,最终影响系统的容错能力;为了提高系统长期运行的可靠性,当配置库内存溢出时,将采用基于补偿修复技术重构系统;在重构目标系统时,采用基于补偿修复技术的演化方式;演化过程中如果检测到停滞效应则停止演化,假设当前迭代次数为G<sub>s</sub>,如果G<sub>s</sub>,≥G<sub>max</sub>,则表明不能在规定的迭代次数内演化出目标系统;如果G<sub>s</sub>&lt;G<sub>max</sub>,则启动修复进程对已经演化出的部分正确系统进行修正,修复进程必须在G<sub>max</sub>‑G<sub>s</sub>次迭代次数内完成。
地址 116024 辽宁省大连市甘井子区凌工路2号