组合模型是计算机容错系统可靠性最常用的方法。一个系统只要满意以下条件,就可以用组合模型来计算其可靠性。作如下假设。
(1)系统只有两种状态:运行状态和失效状态。
(2)系统可以分别成若干个不重叠的部件,每个部件也只有两种状态:运行状态和失效状态。
(3)部件的失效是独立的。
(4)系统失效当且仅当系统中的剩余资源不满意系统运行的最低资源要求(系统的状态只依靠于部件的状态)时。
(5)已知每个部件的可靠性,可靠性指可用度或可靠度等概率参数。组合模型的目标就是根据各部件的可靠性 Ri(t)来计算系统的可靠度 Rsys(t),组合模型的基本头脑如下。
1.枚举所有系统状态
假设系统被分别为 n 个部件,则系统状态是一个 n 维向量,q = (s1,s2 ,—,sn ) ,此中: si={0,如果部件 i 处于运行状态;1,如果部件 i 处于失效状态( i = 1, 2,—, n )},一个具有 n 个部件的系统共有 2 n 个状态。
2.计算每个系统状态的概率系统状态的概率是指系统处于该状态的概率。设系统状态 q = (s1,s2 ,—,sn ) ,q 的所有 0分量对应的部件用 A0 来表现( A0 是所有处于运行状态的部件的集合),q 的所有 1 分量对应的部件用 A1 来表现( A1 是所有处于失效状态的部件的集合)。于是,系统状态的概率为:
3.可靠性计算直接计算一个复杂系统的可靠性是很困难的,通常的方法是把整个系统分解为简单的子系统,通过子系统的组合来计算整个系统的可靠性。
(1)串接洽统。在一个由 n 个模块(部件)构成的系统中,如果系统中恣意一个模块失效将导致系统失败(系统的最低资源要求是所有模块全部运行,只有全 0 系统(0,0,…,0)能够使系统运行)。
用随机变量 ξi 表现模块 i 发生失效的时间,用随机变量 ξs 表现系统发生失效的时间,则 ξs 可表现为:
则系统可靠度为:
此中, Ri(t)是模块 i 的可靠度,串接洽统的可靠度是各个模块可靠度的乘积。这种系统可抽象地看成一个如图 17-1 示的串接洽统,因此,上式称为串联可靠性公式。
串接洽统的失效率为:
此中, Qi(t) =1− Ri(t) 是模块 i 的失效概率。
(2)并接洽统。在一个由 n 个模块(部件)构成的系统中,只要有一个模块可运行,系统就可运行(系统的基本资源是一个模块,除了全 1 系统状态(1,1,1,…,1)外,系统都是可运行的),因此:
系统的失效概率分布函数可以表现为:
此中 Qi(t) 是模块 i 的失效分布函数。
并接洽统的可靠度为:
此中,Qi(t)=1-Ri(t) 是模块 i 的失效概率
这种系统可抽象地看成一个如图 17-2 所示的并接洽统,因此,上式称为并联可靠性公式
(3)串并接洽统。如果一个系统由 N 个子系统并联而成,而每个并联的子系统又由 n个元件串联而成,如许的系统称为串并接洽统。
设第 j 个子系统的第 i 个元件的可靠度为 Rij(i=1,2,L,n;j=1,2,L,N),则该串并接洽统的可靠度为:
如果 Rij 全相称为 R,则:
17.5.2 马尔柯夫模型
马尔柯夫模型的两个核心概念是状态和状态转移。系统的状态表现了在任何瞬间用以形貌该系统所必须知道的一切。对于可靠性分析,马尔柯夫模型的每个状态表现了有用和失效模块的不同组合。如果每个模块都是处于有用和失效两种情况之一,则一个 n 模块系统的完整模型有 2 n 个状态。
状态转移是指随着时间的流逝,因模块的失效和修复,系统发生的状态变革。作为马尔柯夫模型底子的基本假设是:给定状态的转移概率仅取决于当前的状态。系统从一个状态 i 转移到另一个状态 j 的转移率界说为单位时间内从状态 i 转移到状态 j 的概率。对于一个模块来说,从运行状态到失效状态的转移率就是模块的失效率,从失效状态到运行状态的转移率就是模块的修复率。一个失效率为 λ,修复率为 μ 的模块的状态图如图 17-3 所示。
对于由 n 个模块构成的系统,共有 2 n 个状态。从理论上说,恣意两个状态之间都存在转移的可能性。但因失效是独立的,在很短的时间内发生多个失效的可能性远小于发生一个失效的可能性。因此,只思量任一时刻只有一个模块失效的转移;同样,也只思量恣意时刻只有一个模块修复的转移。系统的状态图也可以表现为层次图。第一层只有一个状态,对应于所有模块都运行的情况;第二层有 n 个状态,对应于一个模块失效的各种情况;第 i +1 层有 Ci 个状态,对应于 n 个模块中有 i 个失效的各种情况;第 n+1 层也只有一个状态,
对应于全部模块都失效的情况。
根据系统的状态图,可以计算出系统处于恣意状态的概率。
设系统在 t 时刻处于状态 0 和 1 的概率分别为 P0(t)和 P1(t),于是,在 t + Δt 时刻系统处于 0 状态的概率为:
同样,在 t + Δt 时刻系统处于 1 状态的概率为:
令 Δt → 0 取极限,得微分方程组:
此中,Pi(t) 是 Pi(t) 对 t 的一阶导数( i = 0,1 )。
只要解此微分方程组就可以得出 P0(t)和 P1(t)。
对于有 n 个状态的状态图,设状态 i 到 j 的转移率为αaij。思量此中的恣意一个状态j,其他状态到 j 的转移和 j 到其他状态的转移,系统在 t + Δt 时刻,处于状态 j 的概率可以表现为:
上面的分析没有思量表决的可靠性,为了能够容忍表决器的故障,可以对表决器也采用3 倍冗余。一样平常说来,对于一个由若干模块构成的系统,可以对每个模块分别实施 TMR 技术。
TMR 的推广是 N 模冗余(N-Modular Redundancy,NMR)。与三模冗余原理相同,但采用 N 个相同的模块, N > 3 ,且 N 为奇数,以方便进行多数表决。NMR 的结构如图17-6 所示。
17.6.2 信息冗余
信息冗余是指通过在数据中附加冗余的信息以到达故障检测、故障掩蔽或容错的目标。应用最广泛的是海明校验码、奇偶校验码。
1.海明校验码
海明校验码是由 Richard Hamming 于 1950 年提出,现在仍然被广泛采用的一种很有用的校验方法,是只要增长少数几个校验位,就能检测出二位同时出错,亦能检测出一位出错并能自动规复该出错位的正确值的有用手段,后者称为自动纠错。它的实现原理,是在 k 个数据位之外加上 r 个校验位,从而形成一个 k+r 位的新的码字,使新的码字的码距比力匀称地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相干的几个校验位的值发生变革,不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。
基本的海明纠错码能改正一位错。它的原理是基于重叠奇偶校验的概念:将原始数据位分成若干个重叠的组,每组设一位奇偶校验位。由于组间有重叠,因此每位原始数据附属于多于一个组。而且每位原始数据的附属关系是不一样的,纠错时,根据哪些组的奇偶校验位出错,就可以唯一地确定是哪一位数据出错。将该位取反就完成了纠错。海明校验码是一种特别的(n,k)线性纠错码,线性纠错码可借助它们的奇偶校验矩阵(Parity-Check Matrix,PCM)来形貌。(n,k)线性码的 PCM 是一个(n−k)×n 的矩阵,其元素是 0 和 1。矩阵的每一列与码字中的一个位相对应,而每一行与校验位相对应。 推导并使用长度为 m 位的码字的海明码,所需步调如下:
(1)确定最小的校验位数 k,将它们记成 D1、D2、…、Dk,每个校验位符合不同的奇偶测试规定。
(2)原有信息和 k 个校验位一起编成长为 m+k 位的新码字。选择 k 校验位(0 或 1)以满意须要的奇偶条件。
(3)对所接收的信息作所需的 k 个奇偶查抄。
(4)如果所有的奇偶查抄结果均正确,则以为信息无错误。
如果发现有一位或多位错了,则错误的位由这些查抄的结果来唯一地确定。
2.循环冗余校验码
循环冗余校验码(Cyclic Redundancy Chec,CRC)也广泛应用于移动通信和磁盘数据存储中。CRC 也是给信息码加上几位校验码,以增长整个编码系统的码距和查错纠错本领。 CRC 的基本原理是:在 K 位信息码后再添加 R 位的校验码,整个编码长度为 N 位,因此,这种编码又称(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为 N-K=R 的多项式 G(x)。根据 G(x)可以生成 R 位的校验码,而 G(x)叫作这个 CRC 码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式 C(x)表现,将 C(x)左移 R 位,则可表现成 C(x)×2R 如许 C(x)的右边就会空出 R 位,这就是校验码的位置。通过 C(x)×2R除以生成多项式 G(x)得到的余数就是校验码。 CRC 码的生成步调为:
(1)将 x 的最高幂次为 R 的生成多项式 G(x)转换成对应的 R+1 位二进制数。
(2)将信息码左移 R 位,相当于对应的信息多项式 C(x)×2R 。
(3)用生成多项式(二进制数)对信息码做模 2 除,得到 R 位的余数。
(4)将余数拼到信息码左移后空出的位置,得到完整的 CRC 码。
17.7 备份与规复