系统的两种服务状态
可靠性的度量
- mean time to failure(MTTF)两次failure产生的时间间隔
- annual failure rate (AFR)= (一年)8760(小时) / MTTF(小时)
- mean time to repair (MTTR)两次正常工作时间之间的failure时间
- mean time between failure (MTBF)= MTTF + MTTR
- availability = MTTF / (MTTF + MTTR)系统正常工作时间的占比
- 提高availability:
fault tolerance:采用冗余措施在系统故障时保障工作。
下面主要介绍fault tolerance的重要实现方式。
Hamming SEC/DED Code
- 奇偶校验码 odd-parity:计算码字中1的数量,1代表奇数,0是偶数,当一个字被写入时,奇偶校验位也被写入,字的N位和奇偶校验位组成的码字中1的个数永远是偶数。读出数据时将计算出的校验码和储存的比较,不符合则发生错误。所以它只能检测奇数位发生错误的情况。
- Hamming distance:两个数对应位置不同的位的数量。(111和000 距离为3)
- Minimum distance = 2 provides single bit error detection (e.g. odd-parity)
- Minimum distance = 3 provides single error correction (SEC), 2bit error detection(DED)
- 若Minimum distance = n,则可以实现 (n-1)/ 2位的correction和n-1位的error
下面介绍汉明纠错码(Hamming Error Correction Code,ECC)
Encoding
- 与一般顺序相反,从左边开始编号
- 将编号为2的幂的位作为标记位,其他位置作为数据位
- 以图中8位数据汉明纠错码为例,p1(二进制0001)检查1,3,5,7,9,11位(这些位的二进制最右边都是1),p2~p4相同原理。
- 每个数据位至少被两个校验位覆盖。
- 进行偶校验设置校验位。
Decoding
- 对汉明编码字,对每个校验位进行奇偶校验,不为偶性则该组有错误。
- 如何确定出错的位置:若校验位对应组没有错误记为0,有错记为1,以011100101110为例,四个校验组的
- 结果分别是0101,反转形成二进制就是1010,也就是位置10出现错误。
改正:出错的bit反转。
以上是一位纠错码。
下面对此编码再加一位,Minimum distance变成4,此时可以纠正一位错同时检测两位错。
(原来的parity bits集合叫H,新加的叫Pn)
- H even, Pn even, no error
- H odd, Pn even, double bits error
- H even, Pn odd, error in Pn bit
- H odd, Pn odd, correctable single bit error