SpaceWire总线冗余备份优化方法
2014-09-29王国辉张晓宇刘永梅
王国辉,张晓宇,关 永,刘永梅
(1.首都师范大学电子系统可靠性技术北京市重点实验室,北京 100048;2.中国电子科技集团公司第五十四研究所卫星通信与广播电视专业部,石家庄 067000)
1 概述
在现代产品质量要求中,可靠性占有突出的重要地位。而备份方案的设计与优化是可靠性工程中一项基础工作。SpaceWire[1]是为了现代高速设备之间通信而设计的全双工的、点到点的、串行数据通信链路。一般主要用于卫星、宇宙飞船、航天飞机上设备之间的通信,而这些设备都是工作在苛刻通信环境中。因此,最大限度地提高SpaceWire的可靠性是一项重要的研究课题。该项目要求 SpaceWire具有在750 km的太阳同步轨道上工作3年后可靠度为0.95的能力,而在FPGA上实现该系统的初始可靠度为0.8674,远不能满足需求。为了既达到设备高可靠度的要求,又能充分利用有限的FPGA片上资源,文献[2-3]分别用TMR方法和形式化验证的方法提高Spacewire节点可靠性。
本文提出一种基于FPGA的SpaceWire总线冗余备份优化方法。该方法通过调整内部功能子模块的可靠度,进行整个系统的备份优化,提高系统的可靠度。
2 背景知识
SpaceWire节点[4]内部主要包括控制、发送、接收、恢复、错误、时间、信誉及波特率选择八大功能模块。其工作流程如图1所示。
图1 SpaceWire功能模块工作流程
2.1 SpaceWire的功能模块
8个模块的功能分别如下[5]:
(1)控制模块:该模块的主要功能是控制链路的多个状态之间的转换,包括接收到意外错误的处理,如超时、断开或发生奇偶错误等。
(2)发送模块:该模块的主要功能是对数据进行 DS(Din和Sin)编码并将其按串行发送出去。
(3)接收模块:该模块的主要功能是对 DS信号进行编码,以产生一个被传送到主机系统的序列。
(4)恢复模块:该模块的主要功能是将接收到的Data和Strobe信号进行异或操作,以此得到接收模块需要使用的时钟信号。
(5)错误模块:该模块的主要功能是对链路发生的各种错误进行相应的处理,遇到错误就把错误读出去。
(6)时间模块:该模块的主要功能是提供用于链路初始化的超时设定。时间计数模块为控制模块提供计时的服务。
(7)信誉模块:该模块的主要功能是控制接收器接收到的常字符的个数。
(8)波特率选择模块:该模块的主要功能是控制发送模块发送信号的频率。
2.2 典型系统可靠度
2.2.1 串联系统与并联系统
串联系统由 n个部分串联而成,即任一部分失效就引起系统失效。并联系统由 n个部件并联而成,即只有当这n个部件全都失效时系统才失效[6]。串联系统和并联系统的可靠性框图分别如图2、图3所示。
图2 串联系统可靠性框图
图3 并联系统可靠性框图
令第 i个部件的寿命为 Xi,可靠度为 Ri(t)={Xi>t},i=1,2,…,n。假定 X1,X2,…,Xn相互独立,则串联系统和并联系统可靠度计算公式[7-8]分别如式(1)、式(2)所示:
2.2.2 串并混联系统
图4表示串并混联系统。若各部分的可靠度分别为Rij(t),i=1,2,…,n;j=1,2,…,m,且各个部分的寿命相当独立。则根据串联系统和并联系统可靠度计算公式式(1)、式(2),得到串并混联系统可靠度计算公式如下:
图4 串并混联系统可靠性框图
3 冗余备份优化算法
3.1 功能子模块可靠度计算
随着EDA技术的发展,使用硬件描述语言[9]设计已经成为一种趋势。因此,在一片FPGA上实现SpaceWire节点设计并完成系统模块级的优化备份方案。
为了得到系统各模块备份前的可靠度,假设:(1)空白FPGA可靠度为1。(2)3年时间中SEU、电磁干扰等事件等概率出现。(3)FPGA中每个工作中的CLB损害概率相同。(4)不在工作中的CLB不会受到损坏。
令Ri,i=1,2,…,8为模块可靠度,APi,i=1,2,…,8是每个模块的面积占用比,即该模块占用整片PFGA中CLB的比值。面积占用比小,受到影响较小,正常工作时间长;面积占用比大,受到影响较大,正常工作时间短。选用 Xilinx公司 Spartan-3E(XC3S250E)FPGA的 CLB总数为 612个。SpaceWire节点中每个模块占用 CLB具体数量情况如表1所示。
表1 各个模块的可靠度
面积影响因子为 Ai,i=1,2,…,8,有 Ai=1/APi。t0表示能正常工作的时间,平均失效前时间(Mean Time To Failure,MTTF),MTTFi= Ai×t0。
系统中每个模块的失效率为:
从而得到每个模块的可靠度计算公式为:
根据串联系统可靠度计算式(1)得到整个系统的可靠度R=0.8674。
3.2 评分分配法
评分分配法[10]是由同行专家从复杂程度、重要程度、技术实现的难易程度等多个因素给出评价,不仅能反映出系统的整体特征,也能从专家长期技术经验积累方面给出建议,以得出有效的备份方案。
评分分配法应用广泛[11]。同行专家将根据影响系统的任务可靠性或者基本可靠性[12]的几种主要因素给各个子模块进行评分,得出每个子模块的加权因子K,然后进行可靠性分配。
加权因子K的种类和大小,根据不同的产品,可以由各种因子组成。考虑SpaceWire节点的特点,主要考虑复杂因子、重要度因子、工作时间因子、技术因子等。各种因子的评分可以分成若干等级,一般常分为5级,以非常好、很好、好、较好、一般来表示。各个模块加权因子的评分方法如下:
(1)复杂因子:元件数目及难易程度,最简单的系统为1分,最复杂为5分。
(2)重要度因子:子模块发生故障,将对整个系统构成影响,最关键评1分,非关键为5分。
(3)工作时间因子:工作时间长短,最短为1分,最长为5分。
(4)技术因子:成熟技术评1分,新技术评5分。
根据 SpaceWire 节点的特点,发送模块、接收模块最为复杂重要,同时工作时间也最长。而信誉模块和波特率选择模块结构最为简单并且工作时间较短。其他模块介于上述4个模块之间。
专家给出的具体评分结果如表2所示。
表2 功能模块评分结果与可靠度
各个模块可靠性指标的计算如下:
(1)子模块加权因子Ki:
其中,Cs表示整个系统的总评分数;Ci表示第i个子模块的评分数。
(2)子模块评分数:
其中,mij表示第i个子模块第j个因子的评分数。
(3)系统总的评分系数:
(4)子模块可靠性指标,即子模块失效率的计算:
其中,λs为系统总的失效率;λi为第i个子模块的失效率。
如果可靠性指标给出的是可靠度为 0.95,则根据公式首先求出5.4217e–10,再根据子模块的可靠度计算公式进行分配。
根据相关领域几位专家打分求取平均值得到的评分数据以及由式(6)~式(9)得到各个模块具体评分结果和可靠度分配如表2所示。
3.3 线性规划法
从3.2节可知,评分分配法是由同行专家从长期技术经验积累方面给出建议,以得出有效的备份方案。但是这种方法存在着专家的主观因素、模糊加权分配等不足之处。因此,利用线性规划法,从数学理论上,以复杂度为主要因子寻找最优结果,也能找出相对较优的备份方案,这就从复杂度因子上证明了评分分配法在备件分配上的科学性与有效性[13]。
假设系统由 n个相互独立的子模块串联组成,在每个子模块中只使用同一种部件(CLB)实现。对于 j=1,2,…,n,令Cj为一个第j个子模块面积;Kj是使用第j个子模块的个数;Rj(Kj)表示当第j个子模块使用Kj个时,第j个子系统的可靠度。显然,系统的可靠度为:
系统由n个相互独立的子模块串联而成。若第j个子模块由Kj个相互独立的第j种模块并联而成,第j种子模块的可靠度为Pj,则并联j个该模块后,该系统可靠度为:
同时,求K1,K2,…,Kn满足:
从 n个部件的串联系统出发,此时 R(1,1,…,1)=P1,P2,…,Pn。每次在某一个子模块上增加一个相同的模块,使系统可靠度上升得最快,直到系统可靠度达到或者超过 Rs为止。显然,要使系统可靠度增加最快,只要在模块中可靠度 P1,P2,…,Pn最小的位置上并联一个与该模块相同的模块。根据式(12)~式(15)设计搜索算法,实现优化的子模块备份方案。
4 实验结果与分析
本项目通过Matlab设计搜索算法,完成优化冗余备份方案设计。表3~表5分别给出了评分分配法和线性规划法所得到的优化备份方案。
表3 评分分配法优化备份方案
表4 线性规划法优化备份方案1
表5 线性规划法优化备份方案2
从表3~表5中可以看出,评分分配法能够给出有效的备份SpaceWire子模块冗余备份方案,即备份控制模块、发送模块、接收模块以及恢复模块。而从综合线性规划法给出的 2套方案来看,也能得出相同结论。该种备份方案可使得整个系统的可靠度达到0.9778,占用CLB数为163个。可见,在可靠度满足要求的前提下,比备份整个Space Wire节点节约了有限的FPGA片上资源。
5 结束语
本文提出了一种SpaceWire冗余备份优化方法。基于评分分配法,对SpaceWire内部各功能模块进行可靠度分配备份。同时,用线性规划方法得到最优解,从而得出优化备份方案。用数学方法对评分分配法在复杂度因子选取时的科学性给以证明和补充。仿真实验结果表明,将 2种方法结合,可以设计得到满足可靠度要求的优化备份方案。下一步工作将寻求更优的备份方案,提高系统的可靠性,以及SpaceWire总线冗余备份技术的实用性。
[1]田 园, 张 杰.基于SpaceWire的链路状态算法研究与设计[J].计算机工程, 2011, 37(23): 113-115.
[2]刘 涛, 贺强民, 黄 伟.TMR加固的SpaceWire节点的设计与实现[J].航天返回与遥感, 2012, 33(4): 64-69.
[3]董玲玲, 关 永.李晓娟, 等.用 LTL模型检验的方法验证SpaceWire检错机制[J].计算机工程与应用, 2012, 48(22): 88-94.
[4]陈大羽, 王 琨, 李 涛, 等.空间高速总线 SpaceWire节点的设计与实现[J].航天返回与遥感, 2010, 31(4): 58-64.
[5]关 永.一种具有在苛刻环境中抗辐照干扰的高速通信芯片: 中国, 200810106375[P].2008-10-01.
[6]曹晋华, 程 侃.可靠性数学引论[M].北京: 高等教育出版社, 2006.
[7]袁子厚.串联系统可靠度的计算表达式及其估计[J].武汉科技学院学报, 2005, 18(10): 45-47.
[8]贾 诺, 王 涛, 金鸿章.两不同部件并联可修系统稳态可靠度的最优控制[J].工程数学学报, 2009, 26(5): 855-860.
[9]彭 保, 范婷婷, 马建国.基于Verilog HDL语言的FPGA设计[J].微计算机信息, 2004, 20(10): 80-82.
[10]刘 强, 毛社平.可靠性评分分配法研究[J].水雷战与舰船防护, 2004, (2): 33-37.
[11]张 琳, 黄 敏, 刘 婷.航空发动机可靠性评分分配法[J].质量与可靠性, 2009, (2): 49-52.
[12]曾声奎, 赵廷弟.系统可靠性设计分析教程[M].北京:北京航空航天大学出版社, 2001.
[13]薛声家, 左小德.确定线性规划全部最优解的方法[J].数学的实践与认识, 2005, 35(1): 101-105.