1 可靠性与系统性能评测
1.1 可靠性计算
可靠性:系统在一段时间内不出故障的概率 ,用 R 表示,范围 0~1。
比如 R=0.9,表示 90% 概率正常运行。
1.1.1 串联系统
含义
多个部件串在一起 ,任何一个坏了,整个系统就坏 。
就像一串灯泡,一个灭,全灭。
公式
假设有 n 个部件,可靠性分别是 R₁、R₂、... Rₙ
总可靠性:
R_{总} = R_1 \\times R_2 \\times \\dots \\times R_n
例子
3 个部件可靠性都是 0.9
总可靠性 = 0.9 × 0.9 × 0.9 = 0.729
结论:
串联部件越多,系统越不可靠。
1.1.2 并联系统
含义
多个部件并联 ,只要有一个正常,系统就能工作 。
比如双电源、双硬盘备份。
公式
先算每个部件的失效率 :
F_i = 1 - R_i
总可靠性:
R_{总} = 1 - F_1 \\times F_2 \\times \\dots \\times F_n
例子
2 个部件,R=0.9
F = 1−0.9 = 0.1
总可靠性 = 1 − 0.1×0.1 = 0.99
结论:
并联越多,可靠性越高。
1.1.3 模冗余系统(常见:三模冗余 TMR)
含义
用 多套完全相同的电路 同时计算,然后投票,少数服从多数。
最典型:三模冗余 TMR
- 3 个模块同时运行
- 2 个及以上结果一致,就认为正确
公式(TMR)
单个模块可靠性 R
系统可靠性:
R_{TMR} = 3R\^2 - 2R\^3
例子
R=0.9
R_TMR = 3×0.81 − 2×0.729 =2.43 − 1.458 = 0.972
适用场景:卫星、航天、医疗设备等不能出错的地方。
1.2 系统性能评价
怎么客观评价一台计算机"快不快"。
1.2.1 常用评价方法
(1)时钟频率
CPU 每秒跑多少个周期,单位 GHz。
- 越高,理论越快
- 但不能完全代表性能(架构不同不能直接比)
(2)指令执行速度
用 CPI 和 MIPS 表示:
- CPI:每条指令平均周期数
- MIPS:每秒百万条指令
MIPS 越高,代表处理简单指令越快。
(3)等效指令法
把各种指令按使用频率加权,算一个平均速度,更贴近实际。
(4)数据处理速率 PDR
综合运算、访存等操作,给出一个综合评分。
(5)核心程序法
跑真实软件里最关键的那段代码,测实际速度。
1.2.2 基准测试程序(行业标准)
(1)整数测试程序
测整数加减、逻辑、跳转等。
对应日常办公、编译、系统运行。
(2)浮点测试程序
测小数、科学计算。
对应游戏、视频渲染、AI、科学仿真。
(3)理论峰值浮点速度
理论最大值,实际一般达不到。
(4)Linpack
测高性能计算、超级计算机 排名用。
主要测密集浮点运算。
(5)Whetstone
早期经典综合基准,测浮点+整数混合。
(6)SPEC
工业界最权威标准:
- SPECint:整数性能
- SPECfp:浮点性能
(7)TPC
测数据库、事务处理、服务器 性能。
比如每秒能处理多少订单、交易。
1.3 校验码
数据传输/存储可能出错(0变1、1变0),校验码用来检错 + 纠错。
1.3.1 海明码距(码距)
码距
两个二进制串,不同位的个数 。
比如 101 和 111 → 1 位不同 → 码距 1。
码距与检错/纠错能力
- 码距 d
- 检错能力:d−1
- 纠错能力:⌊(d−1)/2⌋
例子:
- 码距 2 → 能检1位错
- 码距 3 → 能检2位错 或 纠1位错
- 码距 4 → 能检3位错 或 纠1位+检2位错
1.3.2 海明校验码
既能检错,又能纠错,是最经典的纠错码。
原理
在数据位中插入校验位,通过多组奇偶校验,定位出错的位置。
步骤(零基础版)
- 确定需要多少校验位:满足 (2^r \ge n + r + 1)
n=数据位数,r=校验位数 - 把校验位放在 2⁰、2¹、2²... 的位置
- 每组进行偶/奇校验
- 接收方计算校验子,出错时直接定位是哪一位错了,翻转即可纠正
特点
- 能纠正1位错误
- 能发现2位错误
常用于内存 ECC 校验。
1.3.3 CRC 校验码(循环冗余校验)
原理
把数据看成多项式,除以一个约定的生成多项式 ,得到余数作为 CRC 校验码。
接收方同样做除法,余数为0则正确。
特点
- 检错能力极强
- 能检测大部分随机错误和突发错误
- 只能检错,不能纠错
应用
- 以太网数据包
- 硬盘、U盘、压缩文件
- 通信传输