346 lines
17 KiB
Markdown
346 lines
17 KiB
Markdown
|
|
---
|
|||
|
|
tags:
|
|||
|
|
- 计算机系统结构
|
|||
|
|
- 试题
|
|||
|
|
create time: 2026-06-15 10:00
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 试题 1 — 武汉科技大学《计算机系统结构》A卷
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
- **课程**:计算机系统结构
|
|||
|
|
- **学校**:武汉科技大学
|
|||
|
|
- **题型**:选择题, 分析与设计题, 论述题
|
|||
|
|
- **知识点**:Cache, 流水线, RISC, Amdahl定律, 总线, 存储层次, 指令系统, Flynn分类
|
|||
|
|
|
|||
|
|
> [!tip] 学习建议
|
|||
|
|
> 本套试题重点考察 Cache 优化、流水线调度和 Amdahl 定律的应用。建议先掌握选择题中的基础概念(Flynn 分类、RISC 原则),再深入分析题中的 Cache 命中率计算与流水线时空图绘制。论述题侧重理论阐述,需理解存储一致性协议和 Cache 优化的系统性分类。
|
|||
|
|
|
|||
|
|
## 正文
|
|||
|
|
|
|||
|
|
### 一、选择题(每题 2 分,共 20 分)
|
|||
|
|
|
|||
|
|
1. 流水线计算机中,把指令 Cache 和数据 Cache 分开,主要是为了( )。
|
|||
|
|
A. 提高存储系统的速度
|
|||
|
|
B. 增加存储系统的容量
|
|||
|
|
C. 解决访存部件冲突
|
|||
|
|
D. 解决访存冲突
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **D**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 指令 Cache 和数据 Cache 分离的核心目的是避免**结构冲突**——当 CPU 同一周期需要同时读取指令和数据时,统一 Cache 只能串行服务,分离后可并行访问。
|
|||
|
|
|
|||
|
|
2. 计算机系统中,某个功能的处理时间占整个系统运行时间的 20%,如果将该功能部件的处理速度提升至原来的 15 倍,改进后整个系统的加速比是( )。
|
|||
|
|
A. 1/0.72
|
|||
|
|
B. 0.72
|
|||
|
|
C. 1/0.45
|
|||
|
|
D. 0.45
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **A**
|
|||
|
|
>
|
|||
|
|
> Amdahl 定律:$S = \frac{1}{(1-f) + \frac{f}{n}} = \frac{1}{0.8 + 0.2/15} \approx 1.228$,即 $1/S \approx 0.814 \approx 1/0.72$。
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 这是经典的 **Amdahl 定律**:$S = \frac{1}{(1-f) + \frac{f}{n}}$,其中 $f=0.2$,$n=15$,代入得 $S = \frac{1}{0.8 + 0.2/15} \approx 1.228$。注意题目问的是"改进后整个系统的加速比",即 $1/S_{new}$,需仔细审题。
|
|||
|
|
|
|||
|
|
3. 某计算机的主频为 600MHz,执行 2000 条指令的测试程序,每条指令的平均时钟周期数为 4,则该计算机的 MIPS 为( )百万条/秒。
|
|||
|
|
A. 15
|
|||
|
|
B. 150
|
|||
|
|
C. 3000
|
|||
|
|
D. 300000
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **B**
|
|||
|
|
>
|
|||
|
|
> $MIPS = \frac{f}{CPI \times 10^6} = \frac{600 \times 10^6}{4 \times 10^6} = 150$
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> $MIPS = \frac{f}{CPI \times 10^6} = \frac{600 \times 10^6}{4 \times 10^6} = 150$。MIPS 是衡量处理器运算速度的常用指标。
|
|||
|
|
|
|||
|
|
4. Flymn 分类法是按照指令流和数据流的多倍性进行分类的,其中( )只是人为的划分,并没有实际的计算机。
|
|||
|
|
A. SISD
|
|||
|
|
B. SIMD
|
|||
|
|
C. MISD
|
|||
|
|
D. MIMD
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **C**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> **MISD**(多指令流单数据流)在实际中几乎不存在——同一个数据同时被多条不同指令处理的场景在冯·诺依曼架构下没有实际意义,故为理论分类。
|
|||
|
|
|
|||
|
|
5. 以下各项中,( )不是设计 RISC 机器应当遵循的原则。
|
|||
|
|
A. 指令数少,指令功能简单
|
|||
|
|
B. 采用寄存器到寄存器的寻址方式
|
|||
|
|
C. 指令格式力求统一,寻址方式尽可能少
|
|||
|
|
D. 采用 load-store 结构,只有 load 和 store 指令才能访问存储器
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **C**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> RISC 的核心原则包括:指令精简、寻址方式简单、load-store 架构、指令格式统一等。B 选项"采用寄存器到寄存器的寻址方式"表述不够准确,RISC 的 ALU 操作在寄存器间进行,但 load/store 仍需访问内存,所以 B 不是 RISC 的典型原则描述。
|
|||
|
|
|
|||
|
|
6. 流水线计算机的实际 CPU 时间等于理想流水线的 CPU 加上各种停顿的时钟周期数,其中各种停顿周期数大致不包括( )。
|
|||
|
|
A. 由结构冲突引起的停顿
|
|||
|
|
B. 由 Cache 不命中中引起的停顿
|
|||
|
|
C. 由数据冲突引起的停顿
|
|||
|
|
D. 由控制冲突引起的停顿
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **B**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 流水线停顿主要来自三类冲突:**结构冲突**、**数据冲突**、**控制冲突**。Cache 不命中引起的停顿属于存储访问延迟,通常归入结构冲突或单独讨论,但不作为流水线冲突的标准分类。
|
|||
|
|
|
|||
|
|
7. Amdahl 定律告诉我们,计算机系统的性能受限于( )。
|
|||
|
|
A. 系统中最慢的部分
|
|||
|
|
B. 主存储器的速度
|
|||
|
|
C. 系统的响应时间
|
|||
|
|
D. 外部存储器的速度
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **A**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> **Amdahl 定律**的核心思想:系统整体性能受限于最慢的部件(瓶颈)。改进非瓶颈部件对整体性能提升有限。
|
|||
|
|
|
|||
|
|
8. 分离事务总线的基本思想是:将总线事务分成请求和响应两部分,在请求和响应之间的空闲时间空间内,总线可以供给其他 I/O 使用,下面的选项中,( )不是分离事务总线的另一种名称。
|
|||
|
|
A. 流水总线
|
|||
|
|
B. 分离协议总线
|
|||
|
|
C. 交叉互连总线
|
|||
|
|
D. 独占总线
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **D**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 分离事务总线通过将事务分成请求和响应阶段,在空闲时间允许其他设备使用总线,提高总线利用率。**交叉互连总线**是一种不同的总线拓扑结构,不属于分离事务总线的别称。
|
|||
|
|
|
|||
|
|
9. 计算/通信比是反映并行程序性能的一个重要指标。通常情况下,计算/通信比值随着处理的数据规模的增加而( ),随着处理器数目的增加而( )。
|
|||
|
|
A. 减少,增加
|
|||
|
|
B. 减少,减少
|
|||
|
|
C. 增加,减少
|
|||
|
|
D. 增加,增加
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **C**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 随数据规模增加,计算量增长快于通信量(如 $O(n^2)$ vs $O(n)$),比值增大;随处理器增多,每个处理器分到的数据减少,但通信开销相对增加,比值减小。
|
|||
|
|
|
|||
|
|
10. 在计算机层次结构的各个级上都有自己固有的系统结构,计算机系统结构的经典定义是:Amdahl 提出的,它是( )所见到的计算机属性。
|
|||
|
|
A. 应用语言程序员
|
|||
|
|
B. 高级语言程序员
|
|||
|
|
C. 机器语言程序员
|
|||
|
|
D. 汇编语言程序员
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **C**
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> Amdahl 定义的计算机系统结构是**机器语言程序员**所见到的计算机属性,即指令集架构(ISA)层面。这是系统结构的核心定义。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 二、分析与设计题(共 56 分)
|
|||
|
|
|
|||
|
|
1.(16分)假设计算机系统指令字长固定为 12 位,每个地址字段都是 3 位,试提出一种指令设计方案,使该指令系统具有 4 条三地址指令,八条二地址指令和 190 条单地址指令,要求针对这三种指令,分别画出各自的指令格式,并说明操作码字段和地址码字段的分配,并给出各段的组合编码。
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> 采用**扩展操作码**技术:
|
|||
|
|
>
|
|||
|
|
> **三地址指令**(操作码 3 位 + 地址×3 = 12位):操作码 000~011(4条)。
|
|||
|
|
>
|
|||
|
|
> **二地址指令**(操作码 6 位 + 地址×2 = 12位):操作码高3位 100,低3位 000~111(8条)。
|
|||
|
|
>
|
|||
|
|
> **单地址指令**(操作码 9 位 + 地址 = 12位):利用 101~111 共 7 组高位编码,低 6 位扩展,$3 \times 2^3 \times 8 + ... = 190$ 条。
|
|||
|
|
|
|||
|
|
> [!note] 解题思路
|
|||
|
|
> 采用**扩展操作码**技术:操作码字段位数不固定,通过高位码区分不同类型的指令。三地址指令用最少操作码位,二地址和单地址指令逐步扩展操作码位数。
|
|||
|
|
>
|
|||
|
|
> **三地址指令格式**(操作码 3 位 + 地址1 3位 + 地址2 3位 + 地址3 3位 = 12位):
|
|||
|
|
>
|
|||
|
|
> | 操作码(3位) | 地址1(3位) | 地址2(3位) | 地址3(3位) |
|
|||
|
|
> |:-----------:|:----------:|:----------:|:----------:|
|
|||
|
|
> | 0~2 | 3~5 | 6~8 | 9~11 |
|
|||
|
|
>
|
|||
|
|
> **二地址指令格式**(操作码 6 位 + 地址1 3位 + 地址2 3位 = 12位):
|
|||
|
|
>
|
|||
|
|
> | 操作码(6位) | 地址1(3位) | 地址2(3位) |
|
|||
|
|
> |:-----------:|:----------:|:----------:|
|
|||
|
|
> | 0~5 | 6~8 | 9~11 |
|
|||
|
|
>
|
|||
|
|
> **单地址指令格式**(操作码 9 位 + 地址1 3位 = 12位):
|
|||
|
|
>
|
|||
|
|
> | 操作码(9位) | 地址1(3位) |
|
|||
|
|
> |:-----------:|:----------:|
|
|||
|
|
> | 0~8 | 9~11 |
|
|||
|
|
|
|||
|
|
2.(24分)有一个 4 段线性流水线,各段执行时间均为 $\Delta t$,其预约表如下所示:
|
|||
|
|
|
|||
|
|
| 时间 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
|||
|
|
|:----:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|
|||
|
|
| $S_1$ | $\checkmark$ | | | | $\checkmark$ | | |
|
|||
|
|
| $S_2$ | | $\checkmark$ | | | | $\checkmark$ | |
|
|||
|
|
| $S_3$ | | | $\checkmark$ | | | | $\checkmark$ |
|
|||
|
|
| $S_4$ | | | | $\checkmark$ | | | |
|
|||
|
|
|
|||
|
|
(1)画出流水线任务调度的状态转移图(10 分)
|
|||
|
|
|
|||
|
|
(2)求流水线的最优调度策略(4 分)
|
|||
|
|
|
|||
|
|
(3)按最优调度策略连续输入 4 个任务,画出完成这 4 个任务的流水线时空图,并计算流水线的实际吞吐率。
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **(1)** 禁止表 $F=\{1, 3, 4, 6\}$,初始冲突向量 $C_0 = \langle 101101 \rangle$。$j=2$ 时新向量为 $C_1 = 101111$;$j=5$ 时新向量为 $C_0$。状态转移图:$C_0 \xrightarrow{j=2} C_1$,$C_1 \xrightarrow{j=2} C_1$,$C_0 \xrightarrow{j=5} C_0$,$C_1 \xrightarrow{j=5} C_0$。
|
|||
|
|
>
|
|||
|
|
> **(2)** 最优调度策略为 **(2, 5)**,平均延迟 **3.5 拍**。
|
|||
|
|
>
|
|||
|
|
> **(3)** 连续 4 个任务用时 $= 7\Delta t + (2+5)\Delta t = 16\Delta t$,吞吐率 $TP = \frac{4}{16\Delta t} = \frac{1}{4\Delta t}$。
|
|||
|
|
|
|||
|
|
> [!note] 解题思路
|
|||
|
|
>
|
|||
|
|
> **(1)状态转移图**
|
|||
|
|
>
|
|||
|
|
> 由预约表可写出禁止表 $F=\{1, 3, 4, 6\}$;初始冲突向量 $C_0 = \langle 101101 \rangle$。
|
|||
|
|
>
|
|||
|
|
> 即一个任务进入流水线之后,间隔 1、3、4、6 个时钟周期($\Delta t$)不可以进入下一个任务。可取 $j$ 的值只能是 2 和 5。
|
|||
|
|
>
|
|||
|
|
> - $j=2$,新的冲突向量 $= SHR^{(2)}(C_0) \lor C_0 = 001011 \lor 101101 = 101111$,记为 $C_1$;
|
|||
|
|
> - $j=5$,新的冲突向量 $= SHR^{(5)}(C_0) \lor C_0 = 000001 \lor 101101 = 101101 = C_0$。
|
|||
|
|
>
|
|||
|
|
> 进一步,在状态 $C_1$ 下,$j$ 可取 2 和 5。新的冲突向量 $= SHR^{(2)}(C_1) \lor C_0 = 001011 \lor 101101 = 101111 = C_1$。
|
|||
|
|
>
|
|||
|
|
> 状态转移图:
|
|||
|
|
>
|
|||
|
|
> ```mermaid
|
|||
|
|
> stateDiagram-v2
|
|||
|
|
> direction LR
|
|||
|
|
> [*] --> C0
|
|||
|
|
> C0 --> C1: "j=2"
|
|||
|
|
> C0 --> C0: "j=5"
|
|||
|
|
> C1 --> C1: "j=2"
|
|||
|
|
> C1 --> C0: "j=5"
|
|||
|
|
> ```
|
|||
|
|
>
|
|||
|
|
> **(2)最优调度策略**
|
|||
|
|
>
|
|||
|
|
> | 调度策略 | 平均延迟拍数 |
|
|||
|
|
> |:--------:|:----------:|
|
|||
|
|
> | (5) | 5 |
|
|||
|
|
> | (2, 5) | 3.5 |
|
|||
|
|
> | (2, 7) | 4.5 |
|
|||
|
|
>
|
|||
|
|
> 最优调度策略是 (2, 5),平均延迟 3.5 拍。
|
|||
|
|
>
|
|||
|
|
> **(3)时空图与吞吐率**
|
|||
|
|
>
|
|||
|
|
> | 时间 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|
|||
|
|
> |:----:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|
|
|||
|
|
> | $S_1$ | $X_1$ | | | | $X_2$ | | | | $X_3$ | | | | $X_4$ | | | |
|
|||
|
|
> | $S_2$ | | $X_1$ | | | | $X_2$ | | | | $X_3$ | | | | $X_4$ | | |
|
|||
|
|
> | $S_3$ | | | $X_1$ | | | | $X_2$ | | | | $X_3$ | | | | $X_4$ |
|
|||
|
|
> | $S_4$ | | | | $X_1$ | | | | $X_2$ | | | | $X_3$ | | | | $X_4$ |
|
|||
|
|
|
|||
|
|
3.(16分)在给一个计算机系统设计 Cache 方案时,有两个备选方案:一个方案是指令 Cache 和数据 Cache 分离,容量各为 16KB;另一个是采用混合 Cache,容量为 32KB。
|
|||
|
|
|
|||
|
|
(1)假定取指令对 Cache 的访问命中率为 78%,对数据 Cache 访问命中率为 22%;
|
|||
|
|
|
|||
|
|
(2)Cache 的命中时间为 1 个时钟周期,不命中开销为 40 个时钟周期。在混合 Cache 中一次 load 或 store 操作 Cache 的命中时间都要增加 1 个时钟周期;
|
|||
|
|
|
|||
|
|
(3)若采用分离 Cache,16KB 的指令 Cache 的不命中率为 1%,16KB 的数据 Cache 的不命中率为 5%;若采用 32KB 的混合 Cache,其不命中率为 1.5%。
|
|||
|
|
|
|||
|
|
试问指令 Cache 和数据 Cache 总容量为 16KB 的分离 Cache 和总容量为 32KB 的混合 Cache 相比,哪种 Cache 的总体性能更好?写出计算平均访问时间的公式,计算两种情况下的平均访问时间各是多少?并详细说明你的分析过程。
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> **混合 Cache** 不命中率 1.5%,但 load/store 命中时间 +1 周期:
|
|||
|
|
> - 平均访存时间 $= 78\% \times (1+1.5\% \times 40) + 22\% \times (2+1.5\% \times 40) = 1.782$ 周期
|
|||
|
|
>
|
|||
|
|
> **分离 Cache** 指令不命中率 1%、数据 5%:
|
|||
|
|
> - 平均访存时间 $= 78\% \times (1+1\% \times 40) + 22\% \times (1+5\% \times 40) = 1.752$ 周期
|
|||
|
|
>
|
|||
|
|
> **结论**:选择**分离 Cache**,虽然混合 Cache 不命中率更低,但额外的命中时间开销使其整体更慢。
|
|||
|
|
|
|||
|
|
> [!note] 解题思路
|
|||
|
|
>
|
|||
|
|
> **(1)总体不命中率**
|
|||
|
|
>
|
|||
|
|
> 混合 Cache:1.5%;分离 Cache:$78\% \times 1\% + 22\% \times 5\% = 1.88\%$
|
|||
|
|
>
|
|||
|
|
> **(2)平均访存时间 = 命中时间 + 不命中率×不命中开销**
|
|||
|
|
>
|
|||
|
|
> **① 混合 Cache**:指令命中时间 1 周期,数据命中时间 2 周期(load/store +1)
|
|||
|
|
>
|
|||
|
|
> 平均访存时间 $= 78\% \times (1 + 1.5\% \times 40) + 22\% \times (2 + 1.5\% \times 40) = 1.782$ 周期
|
|||
|
|
>
|
|||
|
|
> **② 分离 Cache**:命中时间均为 1 周期
|
|||
|
|
>
|
|||
|
|
> 平均访存时间 $= 78\% \times (1 + 1\% \times 40) + 22\% \times (1 + 5\% \times 40) = 1.752$ 周期
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 三、论述题(共 24 分)
|
|||
|
|
|
|||
|
|
1.(10分)对于多处理器的存储器系统一致性问题,一般我们认为:如果对某个数据项的任何处理器都能得到最新的值,则称该存储系统是一致的。针对此定义,从处理器对存储单元 X 进行读/写的角度,具体分析一下存储器应该满足什么条件,才能保证该存储器是一致的。
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> 存储一致性需满足三个条件:
|
|||
|
|
>
|
|||
|
|
> (1)处理器 P 写 X 后又读 X,若期间无其他处理器写 X,则 P 读到的是自己写入的值。
|
|||
|
|
>
|
|||
|
|
> (2)处理器 P 写 X 后,处理器 Q 读 X,若期间无其他写操作,则 Q 读到的是 P 写入的值。
|
|||
|
|
>
|
|||
|
|
> (3)对 X 的两次写之间若无其他处理器写 X,则最后写入的值保留(写顺序对所有处理器可见)。
|
|||
|
|
|
|||
|
|
> [!note] 参考答案要点
|
|||
|
|
> 如果一个存储器满足以下三点,则称该存储器是一致的:
|
|||
|
|
>
|
|||
|
|
> (1)处理器 P 在对存储单元 X 进行一次写之后又对 X 进行读,并且在这个读和写之间没有其他处理器对 X 进行写,则 P 读到的值应该是该写操作的值。
|
|||
|
|
>
|
|||
|
|
> (2)处理器 P 对存储单元 X 进行写之后,另一个处理器 Q 对 X 进行读,且在这个读和这个写之间没有其他对 X 写,则 Q 读到的值应该是 P 写进去的值。
|
|||
|
|
>
|
|||
|
|
> (3)对同一存储单元 X 的两次写是进行的,但在这两个写之间没有其他处理器对 X 写,则最后写入的值应该留在 X 中。例如,对同一地址先写 1、后写 2,则任何处理器都会先读到 1、后读到 2。
|
|||
|
|
|
|||
|
|
2.(14分)Cache 的优化技术一共有 17 种,其中:
|
|||
|
|
|
|||
|
|
- 8 种着重于降低不命中开销,增加 Cache 块大小,增加 Cache 的容量,提高相联度,伪相联 Cache,硬件预取,编译器控制的预取,编译优化," Victim " Cache
|
|||
|
|
- 5 种着重于减少不命中开销,采用非阻塞 Cache,让不命中先完成写存,写缓冲合并,请求字处理技术,非阻塞 Cache 技术
|
|||
|
|
- 4 种着重于减少命中时间,容量小,结构简单的 Cache,虚拟 Cache,Cache 访问流水化,路预测
|
|||
|
|
|
|||
|
|
——任选 3 种简述其基本思想及其对 Cache 性能的影响情况(略)
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> 17 种 Cache 优化技术分三类:**降低不命中率**(8种:增大块/容量、提高相联度、伪相联、预取、编译优化、Victim Cache);**减少不命中开销**(5种:非阻塞、写合并、请求字);**减少命中时间**(4种:小容量简单 Cache、虚拟 Cache、流水化、路预测)。
|
|||
|
|
|
|||
|
|
> [!note] 解题思路
|
|||
|
|
> 此题要求从 17 种 Cache 优化技术中任选 3 种,分别阐述基本思想和性能影响。常见选择包括:
|
|||
|
|
>
|
|||
|
|
> - **增加 Cache 块大小**:利用空间局部性,减少强制性不命中,但块过大会增加不命中开销
|
|||
|
|
> - **提高相联度**:降低冲突不命中率,但增加命中时间
|
|||
|
|
> - **非阻塞 Cache**:允许不命中时继续服务后续请求,提高流水线效率
|
|||
|
|
> - **硬件预取**:提前将可能需要的数据调入 Cache,减少等待时间
|
|||
|
|
> - **容量小、结构简单的 Cache**:缩短命中时间,适用于第一级 Cache
|
|||
|
|
|
|||
|
|
3.(10分)简述计算机系统结构的四个定量原理。
|
|||
|
|
|
|||
|
|
> [!abstract]- 答案
|
|||
|
|
> (1)**以经常性事件为重点**:对经常发生的情况赋予优先处理权,获得更大总体改善。
|
|||
|
|
>
|
|||
|
|
> (2)**Amdahl 定律**:系统加速比受限于瓶颈部件的改进潜力。
|
|||
|
|
>
|
|||
|
|
> (3)**CPU 性能公式**:$CPU时间 = IC \times CPI \times 时钟周期$。
|
|||
|
|
>
|
|||
|
|
> (4)**程序局部性原理**:程序访问在时间和空间上具有聚集性。
|
|||
|
|
|
|||
|
|
> [!note] 知识点补充
|
|||
|
|
> 四个定量原理是计算机系统设计的基石。Amdahl 定律决定了优化的方向(聚焦瓶颈),CPU 性能公式提供了分析框架,局部性原理指导了 Cache 和存储层次的设计。
|
|||
|
|
|
|||
|
|
## 关联笔记
|
|||
|
|
- [[计算机系统结构/复习文档/index|复习文档索引]]
|
|||
|
|
- [[计算机系统结构/课程笔记]]
|