一种分析dsp软件系统的单粒子软错误可靠性计算方法

文档序号:9349866阅读:324来源:国知局
一种分析dsp软件系统的单粒子软错误可靠性计算方法
【技术领域】
[0001] 本发明涉及一种可靠性计算方法,特别是一种分析DSP软件系统的单粒子软错误 可靠性计算方法,涉及单粒子效应的DSP系统的可靠性计算,可用于指导提高系统可靠性 设计,属于系统可靠性领域。
【背景技术】
[0002] 航天领域中的电子器件常常会受到空间高能粒子的冲击而发生电路逻辑状态的 改变,这种现象被称为单粒子效应。单粒子效应会对航天器的安全造成极大的威胁,因此人 们对此十分关注。对此人们希望得到在单粒子效应下电子器件的可靠性。
[0003]目前,有许多论文对如何评价由于单粒子效应造成的可靠性进行了研究。例如,论 文"A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor"研究了发生软错误之后导致系统失效的可能 性,为了量化体系结构和微体系结构的掩盖因素,论文中引入了体系结构脆弱性因子来表 示某个处理器结构发生软错误后系统失效的可能性。但是这种方法只跟踪指令,而忽略了 数据,分析粒度太粗。

【发明内容】

[0004] 本发明的技术解决问题是:克服现有技术的不足,提供了一种分析DSP软件系统 的单粒子软错误可靠性计算方法,这种方法利用DSP软件系统的模块划分和模块拓扑关系 的结果,使用深度优先搜索寻找模块拓扑关系中起始模块和终止模块之间的所有路径,并 使用重要性抽样的方法抽取若干路径,求取DSP软件系统的单粒子软错误可靠性;本发明 对工程文件采用基于模块划分并搜索路径的方法,解决了单粒子效应下DSP系统输出正确 结果的概率计算问题,利用重要性抽样方法选取部分路径路径,对整体贡献大的路径赋予 更大的重要性权值,在更大的重要性权值部分抽取更多的路径样本,抑制了小权值路径对 系统的影响,增加了计算效率,并且抽取的样本均值为总体均值的无偏估计,使得计算结果 更为可靠。
[0005] 本发明的技术解决方案是:一种分析DSP软件系统的单粒子软错误可靠性计算方 法,步骤如下:
[0006] (1)对DSP软件系统进行模块划分;
[0007] (2)建立步骤⑴中划分出的各模块之间的拓扑关系图G(V,E);
[0008] (3)利用深度优先遍历搜索模块拓扑关系图G(V,E)中起始模块到终止模块之间 所有的路径;
[0009] (4)设置并计算模块正确输出结果的相关参数,所述相关参数包括SERF值、当前 模块本身受到单粒子翻转的错误率、传播错误率、模块从失效状态转移到正常状态的概率 y、马尔可夫模型的连续时间转移矩阵和各个模块输出正确结果的概率;
[0010] (5)采用重要性抽样法选取路径并计算DSP系统整体输出正确结果的概率。
[0011] 所述步骤(1)中对DSP软件系统进行模块划分;具体步骤为:
[0012] (1-1)使用TI反汇编工具分析软件系统的可执行? out文件,生成反汇编文件;进 而读取反汇编文件,对DSP软件系统的汇编代码进行分析;
[0013] (1-2)对DSP软件系统的汇编代码进行第一次扫描,根据汇编代码中函数的命名 规则识别出DSP软件系统工程下的各个函数,并根据每个函数内部的函数调用指令得到各 个函数之间的调用关系;
[0014] (1-3)对DSP软件系统的汇编代码进行第二次扫描,分析第一遍扫描得到的每 个函数中的汇编指令,确定每个函数中各个模块的入口指令,并记录其入口指令对应的地 址;
[0015] (1-4)对DSP软件系统的汇编代码进行第三次扫描,划分出各个函数中的模块,根 据步骤(1-3)中得到的各个模块入口指令地址信息确定出模块的范围,从而完成DSP软件 系统模块划分。
[0016] 所述步骤⑵中建立步骤⑴中划分出的各模块之间的拓扑关系图G(V,E);具 体为:首先获得每个函数内的模块之间的关系,然后根据步骤(1-2)中获得的各个函数间 的调用关系得到整个DSP软件系统工程中模块之间的拓扑关系;用数据结构中的有向图 G(V, E)表示模块的拓扑关系,其中点集V = Ivi I i = 1,2,,. . .,M}表示模块,E表示两个模 块之间的连接关系。
[0017] 所述步骤(3)中利用深度优先遍历搜索模块拓扑关系图G(V,E)中起始模块到终 止模块之间所有的路径;步骤为:
[0018] (3-1)确定模块拓扑关系图G(V,E)的起始模块和终止模块;所述拓扑关系图 G (V,E)的起始模块为main函数的第一个模块;所述拓扑关系图G (V,E)的终止模块为没有 后继t吴块的t吴块;
[0019] (3-2)使用C语言标准库函数malloc函数在计算机内存中申请一个模块结构体大 小的内存空间,用来存放模块的数据和指针信息;
[0020] (3-3)将起始模块入栈,并设置为已访问;
[0021] (3-4)判断当前栈顶模块是否为终止模块,若是终止模块,则执行步骤(3-5),否 则执行步骤(3-6);
[0022] (3-5)新建一个数组用于保存栈中的各个元素,数组中的所有元素构成一条路径, 执行步骤(3 -7);
[0023] (3-6)查看栈顶模块是否有后继且未访问的模块,若有,则随机选择其中一个后继 且未访问的模块并将其入栈,并将该入栈模块设置为已访问,返回步骤(3-4),否则,执行步 骤(3-7);
[0024] (3-7)查看栈中元素是否为空,若是,则结束执行,否则将栈顶模块出栈,并设置为 未访问,执行步骤(3-6)。
[0025] 所述SERF值为软错误鲁棒性因子,表示的是单粒子效应下每个bit翻转引起可见 错误的概率,具体由公式:
[0027] 给出,其中,ACE表示执行结果会对应用程序的输出结果产生影响的位;Bh表示硬 件结构H的位数;N表示CPU的周期数;分子表示在N个指令周期内硬件结构H中ACE位的 总个数;分母表示在N个指令周期内硬件结构H中的总位数;
[0028] 所述当前模块本身受到单粒子翻转的错误率具体由公式:
[0029] Aseu=SERFXRpXB
[0030] 给出,其中,Rp为单粒子翻转率,即DSP软件系统受到高能粒子撞击以后其数据发 生翻转的概率;B为当前模块程序存储区的代码大小和数据大小之和。
[0031] 所述传播错误率,具体由公式:
[0033] 给出,其中,A ,表示进入当前模块的所有模块中第j个模块的错误率,n ]为其相 应的出度;所述出度为一个模块直接到达的其他模块的总数目。
[0034] 所述模块从失效状态转移到正常状态的概率y具体由公式:
[0036] 给出,其中,Irc表示模块周期修复间隔;T表示执行一次DSP软件系统重构所需 要的时间。
[0037] 所述马尔可夫模型的连续时间转移矩阵具体由公式:
[0039] 给出,其中T表示连续时间转移矩阵,At表示时间间隔,其中A为当前模块的错 误率且入=入seu+Xpr〇p〇
[0040] 所述各个模块输出正确结果的概率由公式:
[0042] 给出。
[0043] 所述步骤(5)中采用重要性抽样法选取路径并计算DSP系统整体输出正确结果的 概率,具体为:
[0044] (5-1)记步骤(3)得到的起始模块和终止模块之间的所有路径的条数为S ;
[0045] (5-2)对起始模块和终止模块之间的每条路径进行编号,依次为1,2,…,S ;
[0046] (5-3)计算每一条路径的重要性权值,具体由公式:
[0048]给出,其中,W1为第i条路径的重要性权值;Ii表示第i条路径中包含的模块个数, Iij表示第i条路径中第j个模块的出度;
[0049] (5-4)根据步骤(5-3)中路径的重要性权值对所有的路径进行排序;
[0053] 给出,其中Il1为第i段路径的采样率,w ,为第i段路径中第j个路径的重要性权 值;
[0054] (5-7)对每一段路径进行随机采样,采样的样本个数由公式:
[0055] Iii= SX q;i = I, 2, .. ,k ;
[0056] 给出,其中Ii1为第i段路径的采样样本个数;
[0057] (5-8)读取样本中每条路径中每个模块正常工作的概率;
[0058] (5-9)计算起始模块到终止模块之间所有路径输出正确结果的概率,具体由公 式:
[0060] 给出,其中P1S起始模块到终止模块之间第i条路径输出正确结果的概率; Pm (t)为中第i条路径中第j个模块输出正确结果的概率;
[0061] (5-10)计算起始模块到终止模块之间抽取的n条路径输出正确结果的加权均值 ^ ,即为DSP软件系统整体输出正确结果的概率,具体
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1