软硬件可靠性综合评价方法研究
摘 要: 首先阐述了软硬件可靠性综合评价方法,并对现有综合评价方法进行深入分析和总结,将现有方法分为基于故障数据融合的方法、基于多模型综合的方法和基于系统结构分解的方法三类并进行比较。在此基础上,分别从失效过程融合、评价结果融合以及微观结构融合三个方面进行了综合评价方法机理分析,得出基于评价结果融合的方法未能有效解决软硬件失效机理不同对综合评价的影响从而造成评价准确性较差,而其他两类方法则在较大程度上考虑了软硬件失效机理不同,因此评价准确性高,最后讨论了软硬件综合评价方法未来有前景的研究方向。
关键词: 综合评价;评价方法;软件可靠性;硬件可靠性;软硬件结合系统 0 引言
随着计算机技术的发展,在各种控制系统中软件日益发挥着不可替代的作用。软件作为系统的一部分,一旦失效,将导致系统处于危险状态。所以,软硬件综合系统的可靠性越来越受到用户重视[1]。当前研究大部分是软件可靠性与硬件可靠性分别考虑,或硬件部分和软件部分作为一般的两个或多个部件串/并联关系进行处理[2],并没有考虑两者的区别以及两者的相互作用关系。然而在软硬件综合系统中,硬件与软件之间是相互影响的[3-4],一方面,硬件失效由软件传播或放大导致系统失效[5];另一方面,软件失效、硬件失效可能共同作用导致系统失效[6];第三,软硬件之间的交互给系统带来了较大的不确定性[7]。因此, 为了准确评价软硬件综合系统的可靠性,必须从软硬件综合的角度建立综合系统的评价方法。 本文首先分析与总结了软硬件可靠性,并对现有综合评价方法进行深入分析和总结,将现有方法分为基于故障数据融合的方法、基于多模型综合的方法和基于系统结构分解的方法三类并进行比较。然后从失效过程融合、评价结果融合以及微观结构融合三个方面进行了综合评价方法机理分析,最后讨论了软硬件综合评价方法未来有前景的研究方向。 1 软件可靠性与硬件可靠性 1.1 软件可靠性
软件可靠性的定义为在规定环境、规定条件下和规定时间内,软件不引起系统失效的概率。软件可靠性不仅与软件存在的差错(缺陷)有关,而且与系统使用有关。其中规定环境为软件运行的软、硬件环境,软件环境包括操作系统、编译环境、辅助软件等;硬件环境包括芯片、板卡、总线等;规定条件是指用户使用软件的方式,一般可用操作剖面来描述;规定时间包括日历时间、时钟时间和执行时间[8]。 1.2 硬件可靠性
硬件可靠性的定义和软件可靠性的定义类似,也可定义为在一段特定时间间隔内,产品无失效运行的概率。但是软硬件失效机理是不同的[4],软件失效的根源在于设计错误,而硬件失效的根源在于物理变质,其损耗和其他物理原因造成的失效的概率远远大于由于未发现的设计问题所造成的失效,因为硬件逻辑较为简单,因此将硬件的设计失效保持在一个低水平上是可能的[9]。
1.3 两者的联系与区别
虽然软硬件可靠性在定义上较为一致,但两者之间存在较大区别,例如:(1)硬件存在物理实体,而软件则为逻辑表达,其承载形式多变;(2)硬件在生产过程、使用过程中和物料变化后均能造成内部故障,而软件缺陷均为开发过程的设计缺陷;(3)硬件出现故障后危险通常是修复失效的零部件,可靠性只能保持,而软件通过缺陷剔除则可以不断提高可靠性;(4)软件产品本身不具备危险,硬件产品本身具备危险性。
尽管存在上述诸多不同,但是软件可靠性理论所采用的方法和硬件可靠性理论仍然是相容的,软件可靠性、硬件可靠性必须作为一个集成系统的属性进行管理[9]。
2 软硬件综合评价方法
针对当前软件可靠性评价与硬件可靠性评价分别进行所存在的缺点和不足,现有研究多集中在如何进行软硬件可靠性综合评价方面。本节将对当前方法进行分类、比较,并从综合试验和评价原理出发对这些方法进行分析。文献[4]中分析了阻碍软硬件综合评价技术发展的最大障碍在于软硬件失效机理不同,以下各种综合方法都是在不同程度地解决这一难题。 2.1 基于故障数据融合的综合评价方法
Bernstein等人通过对失效过程以及引发失效的条件进行分析[6],指出系统失效过程通过建立适当的失效过程模型,可以在更高一层统一软硬件失效过程,进而可以解决软硬件失效机理不同导致的软硬件综合评价困难。因此,部分学者针对软硬件失效过程进行深入分析研究,从不同方向对软硬件失效过程进行融合。其中主要有以下几种方法。
Rodriguez等人在可靠性评价时考虑使用过程中软件操作对系统可靠性的影响,该方法通过建立软件操作在硬件失效产生和传播过程中的影响模型,并结合电路级分析半导体器件失效表现和疲劳磨损的关系,从而得到软件操作下的系统可靠性[6]。该方法是间接通过软件操作对硬件的影响融合软硬件可靠性对系统可靠性的共同影响。 与之不同,文献[5]中则通过分析软件缺陷对系统可靠性的影响,提出一种考虑软件缺陷因素的系统可靠性评价方法,该方法中假设系统可靠性水平由软件状态决定,理由为:(1)如果硬件失效导致了软件失效进而导致系统失效;(2)如果硬件失效未导致软件失效,软件状态正确,则系统未失效,因此系统可靠性水平等于软件可靠性水平。该方法的不足在于假设条件过于苛刻,适用范围太小,当前多数嵌入式系统为软硬件状态共同决定了系统可靠性水平。
而文献[10]则首先将系统失效分为硬件失效、软件失效与硬/软件结合失效,然后根据这三类故障是否发生将系统状态分为9种状态,并建立软硬件综合系统状态转移图,综合考虑了硬/软件综合系统多种失效方式的基础上,利用Markov过程表示软硬件综合系统状态转移过程,从而建立了软硬件综合可靠性评价模型,并结合循环网络方法对Markov状态转移方程进行求解,从而方便地得到系统处于各状态的瞬时概率与稳态概率。该方法通过将各种失效对系统状态的影响进行分析,从而将各种类型失效都融合到了系统状态中,但实际应用中,由于系统状态数较大,求解过程较为困难。
文献[11]则通过建立计算数据流模型,进而在此基础上建立了错误流模型,并以无穷存储机器的指令集为例,说明可以为任意程序建立计算数据流图。并把计算过程中的错误分成物理错误和传播错误两种,通过分析这两种错误的本质和传播规律,给出了六条有关错误传播的规则和两条独立定律。根据这些规则和定律,能够计算出在程序运行过程中,任意时刻在任意位置上出现错误的概率。该传播模型为进行软硬件故障数据融合奠定了基础,可通过结合软件失效数据进而评价系统可靠性水平。
上述综合评价方法的实质是在测试过程将软件失效、硬件失效、软硬件交互失效等系统失效过程融合,从而可以将各类原因引发系统失效的发生机理统一,即基于故障数据融合的综合评价方法。具体方法可细分为两类:(1)以硬件关联失效作为系统失效主要表现形式,将软件相关联失效建立系统影响模型,从而将其转化为系统失效,然后进行综合评价;(2)以软件关联失效作为系统失效主要表现形式,将硬件关联失效建立系统影响模型,从而将其转化为系统失效,然后进行综合评价。对于基于故障数据融合的综合评价方法,失效数据获得有严格的要求,即只能通过软硬件一体化测试获得,不能分别针对软件、硬件进行可靠性试验获得,因此该类方法在工程使用中灵活性受到一定限制;但由于该类方法通过失效过程融合较大程度上解决了软硬件失效机理不同带来了综合评价困难,充分考虑了软硬件失效之间存在的关联性,从而使得该类方法评价结果较为准确。基于故障数据融合的综合评价过程。
2.2 基于多模型综合的综合评价方法
软硬件可靠性综合评价最初的研究主要集中在软件可靠性单独评价、硬件可靠性单独评价,然后将评价结果综合,其中主要是进行各种模型的组合和匹配,进而需求最优评价模型组合,但这种方法未解决软硬件失效机理不同造成的影响,因此存在较大的局限性。其中主要的研究成果如下。
Jongmoon等人提出了一种考虑软件失效以及软硬件综合失效的评估模型,该评估模型结合了WeiBull模型与G-O模型,通过模型组合得到系统综合评估模型[1]。该模型的局限在于假设系统中未出现硬件失效,因此如果综合试验过程中出现硬件失效,该评估模型无法使用。Schneidewind等人则进行了改进,考虑了硬件失效,利用WeiBull模型分别针对软件失效数据和硬件失效数据进行评价,然后根据软硬件组件的可靠性框图,将软件可靠性评价结果和硬件可靠性评价结果进行组合得到系统可靠性评价结果[12]。与之类似,文献[13-14]中均将系统描述为硬件和软件组成的串联系统,然后根据软件产品和硬件电子产品不同的失效机理,运用适合其分布特性的检验方法进行可靠性检验,然后再综合评估。即软件、硬件可靠性分别试验以及评价,然后再将评价结果综合。
而Rios等人则是首先利用可靠性框图得到软硬件部件关系,然后通过软件可靠性评价模型(Schneidewind model SRGM)得到软件可靠性水平,通过硬件可靠性评价模型(CTMCs)得到硬件可靠性水平,最后通过软硬件部件关系组合得到系统可靠性评价结果[15]。Park等人利用类似方法针对可配置并行处理系统提出软硬件可靠性综合评价方法,该方法通过模型组合各并行处理器模块和存储器模块的软件可靠性模型以及硬件可靠性模型,最终得到系统可靠性评价模型[7]。
Jeske等人则对系统失效进行细化,以提高评价准确性,其将系统失效分为三类:硬件失效、软件失效、软硬件交互失效,然后利用WeiBull模型评价硬件失效数据,利用NHPP模型评价软件失效数据、利用马尔科夫过程评价软硬件交互失效数据,最终将3个评价结果相乘得到系统评价结果[16]。
上述综合评价方法的实质是评价结果融合,即系统失效数据分类评估,然后评价结果综合得到系统可靠性,即基于多模型综合的综合评价方法。通常的做法是对系统失效数据进行分类,分成两类(软件失效、硬件失效)或三类(硬件失效、软件失效、软硬件交互失效),然后分别利用不同评价模型针对分类后的失效数据进行评估,最后利用软硬件可靠性框图组合得到系统可靠性评价结果。对于基于多模型综合的综合评价方法,失效数据获得没有特殊的要求,既可以通过软硬件一体化测试获得,也可以通过分别针对软件、硬件进行可靠性试验获得,因此该类方法的工程实用性较强;但由于该类方法简单回避了软硬件失效机理不同,并且软硬件失效之间存在关联性,从而使得该类方法评价的准确性不高。基于多模型综合的综合评价过程。
2.3 基于系统结构分解的综合评价方法
Bennett等人通过对系统结构进行分析[3],指出将软硬件系统进行规则性划分,可以在微观层级统一软硬件组件,使得该层级上不再存在明显的软硬件区别,进而巧妙解决软硬件失效机理不同导致的软硬件综合评价困难。因此,部分学者针对系统结构分解技术进行深入分析研究,利用不同的划分原则对系统进行划分,从而得到不同的综合评价方法。其中主要有以下几种方法。
Yamada等人通过假设系统仅包括一个软件配置项和一个硬件配置项,以及系统任务执行满足NHPP过程,使用无限服务队列理论分析系统任务执行的分布,即在系统任务中不再严格区分软硬件,进而提出了一个系统评价模型。该模型的不足在于假设条件过于苛刻,工程实用性不强[2]。
文献[3]则通过采用分解技术简化软硬件系统可靠性评价难度,该技术通过将系统功能分解至原子功能(原子功能是不可再分的硬件、软件以及相互交互的集合),然后利用随机活动网理论将原子功能组合成系统,从而在组合过程中得到系统可靠性水平。该方法的局限性在于评价过程过于繁琐,并且评价准确性不高。与之类似,文献[17]中利用图论中有向图最小路集将一个计算机系统视为一个由多个软体与硬体结合起来的一个可执行体计算元组成的系统,而非每个计算元,不是单独的程序、进程或线程, 也不是物理部件的某个组成部分,然后根据这些可执行体的可靠性框图,得到系统可靠性。
而文献[18]中则利用马氏过程提出了系统可靠性综合评价模型,该模型首先将系统的任务阶段性明确划分出来,然后根据软件功能,分解设立不同的系统状态;从而将支持每个任务阶段的软件单元和硬件部件完整准确地找出来,弄清它们在实现可靠性中的关系,形成硬件阶段子系统和软件阶段子系统;再根据软件子系统和相应的接口特性等因素作为与硬件阶段子系统串联的虚拟的“硬件部件”与硬件阶段子系统一起构成一个完整的阶段子系统;将一个个阶段子系统依据软件控制流图构成系统可靠性框图或系统状态转移图;求解系统状态转移方程,求得系统可靠性指标参数。
上述方法的实质是微观结构融合,即通过将系统分解为软硬件综合的原子结构,每个原子结构作为一个整体进行考虑,即基于系统结构分解的综合评价方法。常用的做法是对系统按照某种原则(任务阶段、系统功能、最小路集等)进行划分,分解为不可再分的原子结构(软硬件综合体),然后将各原子结构作为整体建立模型进行评价,最后利用各原子结构评价结果逆向系统分解过程得到系统可靠性结果。对于基于系统结构分解的综合评价方法,失效数据的获得有严格的要求,即只能通过软硬件一体化测试获得,不能分别针对软件、硬件进行可靠性试验获得,因此该类方法的在工程使用中灵活性受到一定限制;但由于该类方法较为巧妙地解决了软硬件失效机理不同带来的综合评价困难,充分考虑了软硬件失效之间存在的关联性,从而使得该类方法评价结果较为准确。基于多模型综合的综合评价过程。
3 结论
目前,虽然许多学者对软硬件综合评价方法进行了广泛的研究,但是其中仍然存在许多不足:软硬件综合试验技术研究仍不成熟;各种综合评价方法虽各有优点,但彼此之间没有形成互补;一些方法过于复杂,在工程实践中难以实施等。因此,在下一阶段的工作中,有许多方面的内容需要研究和探索:
(1)将故障数据融合方法和系统结构分解方法相结合,形成软硬件系统可靠性评价综合整体方法。例如:先利用系统结构分解方法对软硬件系统进行分解,然后针对原子结构利用故障数据融合方法进行评价,最后逆向分解过程得到系统可靠性评价结果。在整个过程中各类方法之间的融合是需要解决的关键问题。
(2)将同类方法中的各种方法相结合,以形成优势互补。例如:在基于故障数据融合的综合评价方法中首先以软件失效为主进行融合,然后以硬件失效为主进行融合,将两种融合结果再进行综合评价,从而形成双向融合的软硬件系统可靠性综合评价方法;在基于系统结构分解的综合评价方法中首先将多种划分规则进行综合,然后针对原子结构进行一体化测试,最后逆向分解过程综合得到系统可靠性评价结果,从而形成多层次综合的软硬件系统可靠性综合评价方法。