0
0
0
【中软设】2.7 计算机组成与体系结构-CISC与RISC、流水线、可靠性

# 1. CISC 与 RISC
| 对比维度 | CISC(复杂指令集 Complex) | RISC(精简指令集 Reduced) |
| ---- | ---- | ---- |
| 指令特点 | 数量多,使用频率差别大;**可变长格式** | 数量少,使用频率接近;**定长格式**,大部分为单周期指令;运算操作针对寄存器,仅 Load/Store 操作内存 |
| 寻址方式 | 支持多种 | 支持方式少 |
| 实现方式 | 微程序控制技术(微码) | 增加通用寄存器;**硬布线逻辑控制为主**;适合流水线 |
| 其他 | 研制周期长 | 优化编译,有效支持高级语言 |
## 1.1 例题 1
以下关于 RISC(精简指令系统计算机)技术的叙述中,错误的是()。
- A、指令长度固定、指令种类尽量少
- B、指令功能强大、寻址方式复杂多样
- C、增加寄存器数目以减少访存次数
- D、用硬布线电路实现指令解码,快速完成指令译码
**答案:B**
**解析**:“指令功能强大、寻址方式复杂多样”是 CISC 复杂指令集的特点。RISC 寻址方式少,指令功能简单,复杂工作交给编译器实现。
# 2. 流水线技术
相关参数计算:**流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率**等。
## 2.1 概念
- 流水线是指在程序执行时多条指令重叠进行操作的一种**准并行处理**实现技术。
- 各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。


## 2.2 流水线时间计算
> **流水线周期**:取执行时间最长的一段,记作 $t_{max}$
>
> **流水线总时间公式**:
>
> $$T_{总}=1条指令执行时间 + (指令条数-1) \times 流水线周期$$
### 2.2.1 例题 2
一条指令的执行过程可以分解为**取指、分析和执行**三步:$t_{取指}=3\triangle t$、$t_{分析}=2\triangle t$、$t_{执行}=4\triangle t$。
- 若按**串行方式**执行,则 10 条指令全部执行完需要()$\triangle t$;
- 若按**流水线方式**执行,流水线周期为()$\triangle t$,则 10 条指令全部执行完需要()$\triangle t$。
**计算过程**:
1. 单条指令串行时间:$3\triangle t+2\triangle t+4\triangle t =9\triangle t$
2. 串行 10 条:$10 \times 9\triangle t=\boldsymbol{90\triangle t}$
3. 流水线周期取最大值:$\boldsymbol{4\triangle t}$
4. 流水线总时间:$9\triangle t + (10-1)\times4\triangle t =9+36=\boldsymbol{45\triangle t}$
**答案:90;4;45**
## 2.3 流水线吞吐率
### 2.3.1 基本概念
**吞吐率(TP)**:单位时间内流水线完成的任务/指令数量。
$$
TP=\frac{指令条数}{流水线执行时间}
$$
### 2.3.2 最大吞吐率
指令数量趋向无穷大时的吞吐率极限。
$$
TP_{max}=\lim_{n \to \infty}\frac{n}{(k+n-1)t_{max}}=\frac{1}{t_{max}}
$$
### 2.3.3 例题 3
一条指令的执行过程可以分解为取指、分析和执行三步,$t_{取指}=3\triangle t$、$t_{分析}=2\triangle t$、$t_{执行}=4\triangle t$。
10 条指令的吞吐率是()?最大吞吐率是()?
**计算过程**:
1. 前面已算出 10 条指令流水线总执行时间:$45\triangle t$
2. 实际吞吐率:$TP=\frac{10}{45\triangle t}=\boldsymbol{\frac{2}{9\triangle t}}$
3. 流水线周期:$t_{max}=4\triangle t$
4. 最大吞吐率:$TP_{max}=\boldsymbol{\frac{1}{4\triangle t}}$
**答案**:$\displaystyle \frac{2}{9\triangle t}$;$\displaystyle \frac{1}{4\triangle t}$
## 2.4 例题 4
下列关于流水线方式执行指令的叙述中,不正确的是( )。
- A、流水线方式可提高单条指令的执行速度
- B、流水线方式下可同时执行多条指令
- C、流水线方式提高了各部件的利用率
- D、流水线方式提高了系统的吞吐率
**答案:A**
**解析**:流水线不能缩短单条指令本身的执行时间,单条指令耗时不变;只是多条指令重叠执行,提升整体吞吐率与部件利用率。
## 2.5 例题 5
将一条指令的执行过程分解为**取指、分析和执行**三步,按照流水方式执行。若取指时间 $t_{取指}=4\triangle t$、分析时间 $t_{分析}=2\triangle t$、执行时间 $t_{执行}=3\triangle t$,则执行完 100 条指令,需要的时间为()$\triangle t$。
- A、200
- B、300
- C、400
- D、405
**计算过程**:
1. 单条指令执行总时间:$4\triangle t+2\triangle t+3\triangle t =9\triangle t$
2. 流水线周期取最大段时间:$t_{max}=4\triangle t$
3. 流水线总时间公式:$T_{总}=单条指令时间+(指令条数-1)\times流水线周期$
4. 代入:$9\triangle t + (100-1)\times4\triangle t = 9 + 396 = \boldsymbol{405\triangle t}$
**答案:D**
# 3. 系统可靠性指标
## 3.1 基本指标
- **MTTF(平均无故障时间)**:$MTTF=\displaystyle \frac{1}{\lambda}$,$\lambda$ 为失效率
- **MTTR(平均故障修复时间)**:$MTTR=\displaystyle \frac{1}{\mu}$,$\mu$ 为修复率
- **MTBF(平均故障间隔时间)**:$MTBF = MTTR + MTTF$
> 实际应用中 MTTR 很小,一般认为 $MTBF \approx MTTF$
- **可靠性**:$\displaystyle \frac{MTTF}{1+MTTF}$
- **可维护性**:$\displaystyle \frac{1}{1+MTTR}$
- **可用性**:$\displaystyle \frac{MTBF}{1+MTBF}$

## 3.2 串联电路图和并联电路图可靠度计算

- **串联计算**:每个可靠整个才可靠,所以是乘法。
- **并联计算**:1-失效率=可靠度,1-每个部件失效率=整个部件的可靠率。
## 3.3 混合电路可靠率

> 前提:单个部件可靠度为 $R$
1. **串联**:全部部件正常,系统才正常。总可靠度 = 各部件可靠度相乘。
2. **并联**:至少 1 个部件正常,系统就正常。并联可靠度公式:$\boldsymbol{1-(1-R)^n}$,$n$ 为并联部件数量。
$$
R_{总}=R \times \big[1-(1-R)^3\big] \times \big[1-(1-R)^2\big]
$$
## 3.4 例题 6
计算机系统的( )可以用 $\displaystyle \frac{MTBF}{1+MTBF}$ 来度量,其中 MTBF 为平均失效间隔时间。
- A、可靠性
- B、可用性
- C、可维护性
- D、健壮性
**公式回顾**:
- **可靠性**:$\displaystyle \frac{MTTF}{1+MTTF}$
- **可维护性**:$\displaystyle \frac{1}{1+MTTR}$
- **可用性**:$\displaystyle \frac{MTBF}{1+MTBF}$
**答案:B**
## 3.5 例题 7
某计算机系统由下图所示的部件构成,假定每个部件的千小时可靠度都为 $R$,则该系统的千小时可靠度为( )。
- A、$R+2R/4$
- B、$R+R^2/4$
- C、$R(1-(1-R)^2)$
- D、$R\big(1-(1-R)^2\big)^2$
**结构分析**:
1. **左侧**:2 个部件并联,可靠度:$1-(1-R)^2$
2. **中间**:1 个部件串联,可靠度:$R$
3. **右侧**:2 个部件并联,可靠度:$1-(1-R)^2$
三部分整体串联,总可靠度:
$$
R_{总}= \big[1-(1-R)^2\big] \times R \times \big[1-(1-R)^2\big] = R\big(1-(1-R)^2\big)^2
$$
**答案:D**
