Files
final-exam/计算机系统结构/试题册/试题1-B卷.md
T

313 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags:
- 计算机系统结构
- 试题
create time: 2026-06-15 10:00
---
# 试题 2 — 武汉科技大学《计算机系统结构》B卷
## 概述
- **课程**:计算机系统结构
- **学校**:武汉科技大学
- **题型**:选择题, 判断题, 分析题, 综合题
- **知识点**:Cache, 流水线, 指令系统, Amdahl定律, 存储层次, Flynn分类, RISC, I/O系统
> [!tip] 学习建议
> 本套试题新增了**判断题**和**综合题**两种题型,综合题侧重于 Amdahl 定律的计算应用和并行系统性能分析。判断题考察基本概念的准确性,分析题中的流水线数据相关和 Cache 设计计算是重点难点,建议配合 A 卷对比复习。
## 正文
### 一、选择题(每题 2 分,共 10 分)
1. 在相联映像,LRU 替换的 Cache 存储器,不影响 Cache 命中率的是( )。
A. 增加主存容量
B. 增加块的大小
C. 增大 Cache 容量
D. 减少 Cache 中的块数
> [!abstract]- 答案
> **A**
> [!note] 知识点补充
> Cache 命中率主要受 Cache 容量、块大小、相联度和替换策略影响。**主存容量**的增减不影响 Cache 的命中率,因为 Cache 只缓存主存中被访问过的数据块。
2. 按 Flymn 提出的计算机系统分类方法,多处理机属于( )。
A. SISD
B. SIMD
C. MISD
D. MIMD
> [!abstract]- 答案
> **D**
> [!note] 知识点补充
> 多处理机(MPP)属于 **MIMD**(多指令流多数据流),每个处理器可以独立执行不同的指令流处理不同的数据流。
3. 评价 I/O 系统性能的主要参数包括( )。
A. 连接特性
B. I/O 系统的容量
C. 响应时间和吞吐率
D. 以上都是
> [!abstract]- 答案
> **D**
> [!note] 知识点补充
> I/O 系统性能评价是多维度的:连接特性(设备数量和带宽)、容量(存储空间)、响应时间(延迟)和吞吐率(单位时间处理量)都是关键指标。
4. 以下不属于 RISC 机器遵循的设计原则的是( )。
A. 指令字长尽量是 32 位
B. 指令数量少,采用等长格式,寻址方式不超过 2 种
C. 采用流水线机制,大部分指令能在单个时钟周期内完成
D. 大多数指令采用硬连线逻辑来实现
> [!abstract]- 答案
> **A**
> [!note] 知识点补充
> RISC 的核心原则是精简指令集、等长格式、load-store 架构、硬连线控制等。**指令字长尽量是 32 位**并非 RISC 的必须原则,RISC 强调的是指令精简和规整性。
5. 从程序开发的角度看待,计算机性能更重要的指标是( )。
A. 单个程序的执行时间
B. CPU 的架构
C. 数据访问效率
D. 任务吞吐率
> [!abstract]- 答案
> **A**
> [!note] 知识点补充
> 从程序员角度,最关心的是**单个程序的执行时间**——即自己的程序跑多快。CPU 架构、数据访问效率都是影响因素,但最终体现为执行时间。
---
### 二、判断题(每题 1 分,共 10 分)
1. 理想 CPI 是衡量流水线性能的一个指标。( )
> [!abstract]- 答案
> **T**
2. 并行,即是在计算机系统某一时刻或者一段时间内进行多种运算或操作。( )
> [!abstract]- 答案
> **T**
3. 吞吐率是指单位时间内流水线完成的任务数或输出结果的数量。( )
> [!abstract]- 答案
> **T**
4. 采用分离 Cache 指令中不必使用延迟槽。( )
> [!abstract]- 答案
> **F**
5. I/O 系统的性能对 CPU 的利用率影响不大,两者的性能不匹配,I/O 系统就有可能成为整个系统的瓶颈。( )
> [!abstract]- 答案
> **T**
6. 从基于目录的 Cache 一致性机制中,可以看出这些点并非全是一个结点。( )
> [!abstract]- 答案
> **F**
7. 对于绝大多数程序来说,程序访问的局部性在地址空间的分布上不是均匀的,而是相对地聚集。( )
> [!abstract]- 答案
> **T**
8. 计算机的主存是由按块随机存取,但主存和 Cache 的大小不一样。( )
> [!abstract]- 答案
> **F**
9. 如果对某个数据项的任何处理器都能得到最新的值,则称这个存储系统是一致的。( )
> [!abstract]- 答案
> **T**
10. 计算机完成一条任务依次所经历的层次是:数据准备、存储器访问、计算、输入/输出、结果存储等。( )
> [!abstract]- 答案
> **F**
> [!note] 解题思路
> 判断题需注意关键词和细节。例如第 2 题,并行强调的是"同一时刻"或"一段时间内"的并发操作,但定义中"某一时刻或者一段时间内"表述过于宽泛。第 9 题是存储一致性的经典定义。
---
### 三、分析题(每题 16 分,共 48 分)
1. 在设计某计算机的指令系统时,如果只需要设计单地址指令和双地址指令两种类型,而且其指令字长固定为 16 位,每个地址字段都是 6 位,一共需要设计 12 条双地址指令,请问采用以下两种方式时的操作码设计,分别计算可以设计的单地址指令条数,并画出各自的指令格式。(操作码字段中地址码字段的位数分配)
(1)定长操作码格式
(2)等长扩展码
> [!abstract]- 答案
> **(1)定长操作码**:操作码 4 位($16-6\times2=4$),共 $2^4=16$ 条指令,双地址占 12 条,单地址最多 **4 条**。
>
> **(2)等长扩展码**:基本操作码 4 位中 12 个用于双地址,剩余 4 个(1100~1111)扩展为 10 位操作码 + 6 位地址,单地址最多 $4 \times 2^6 =$ **256 条**。
> [!note] 解题思路
>
> **(1)定长操作码**
>
> 指令字长 16 位,每个地址码字段 6 位。操作码字段位数 $= 16-6 \times 4 = 4$ 位,共 $2^4=16$ 条指令。双地址指令有 12 条,最多可设计 $16-12=4$ 条单地址指令。
>
> **(2)等长扩展码**
>
> 基本操作码 4 位中,12 个编码(0000~1011)用于双地址指令,其余 4 个编码(1100~1111)用于操作码扩展,和一个地址字段(共 6 位)编码。单地址指令最多 $4 \times 2^6 = 256$ 条。
2. 假设某计算机有一条流水线,该流水线没有定向传送机制,有多个操作部件,其中 MOVE 部件可以完成数据传送,ADD 部件可以完成加法操作,DIV 部件可以完成除法操作,其在处理器上执行以下三条指令构成的程序段,操作数放在 R1 寄存器中,结果放在 R4 寄存器中:
k: SUB R2, R1, R3 ;(R2)←(R1)-(R0)
k+1: MOVE R4, R2 ;(R4)←(R2)
k+2: DIV R4, R1, R3 ;(R4)←(R4)/(R3)
(1)首先分析以上三条指令组成的序列,它们存在哪些相关,在哪些段。
(2)在以下给定条件下,画出指令执行的时空图,分析完成以上 3 条指令一共需要多少个时钟周期?
给定条件:
- 在流水线中,每种指令的取指段、译码段各需要一个时钟周期。
- MOVE、SUB 和 DIV 指令的具体执行部件分别需要 2 个、3 个和 4 个时钟周期。
- 所有指令都在第一个时钟周期从通用存储器中读取操作数,在最后一个时钟周期将运算结果写回到通用寄存器。
> [!abstract]- 答案
> **(1)** k→k+1 存在 **RAW 数据相关**(R2);k+1→k+2 存在 **RAW 数据相关**(R4);k+1 与 k+2 之间存在名相关中的**输出相关**(R4)。
>
> **(2)** 无定向传送,共需 **10 个时钟周期**:
>
> | 部件 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
> |:----:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:--:|
> | IF | k | k+1 | k+2 | | | | | | | |
> | ID | | k+1 | k+2 | | | | | | | |
> | ADD | | | k | k | k | | | | | |
> | MOVE | | | | | | | k+1 | k+1 | | |
> | DIV | | | | | | | k+2 | k+2 | k+2 | k+2 |
> [!note] 解题思路
>
> **(1)数据相关分析**
>
> - **k 和 k+1 之间存在写后读相关(RAW)**:指令 k+1 需要读取 k 的结果 R2
> - **k+1 和 k+2 之间存在写后读相关(RAW)**:指令 k+2 需要读取 k+1 的结果 R4
> - **k 和 k+2 之间不存在直接相关**
>
> 由于没有定向传送机制,相关指令之间必须插入气泡(空闲周期)来避免数据冲突。
>
> **(2)时空图与时钟周期分析**
>
> 各指令执行时间:
> - SUB:取指(1) + 译码(1) + 执行(3) + 写回(1) = 6 个时钟周期
> - MOVE:取指(1) + 译码(1) + 执行(2) + 写回(1) = 5 个时钟周期
> - DIV:取指(1) + 译码(1) + 执行(4) + 写回(1) = 7 个时钟周期
>
> **(3)流水线相关的 3 种类型**
>
> - **数据相关**(真数据相关):两条指令 i 和 j,若 j 使用 i 的计算结果,则 j 与 i 数据相关。反映了数据流动关系。
> - **名相关**:两条指令使用相同寄存器/存储器名称,但无数据传递。包括反相关(写后读)和输出相关(写后写),可通过换名消除。
> - **控制相关**:由分支指令引起,需根据分支结果确定后续执行路径。
3. 在给一个计算机系统设计 Cache 方案时,有两个备选方案,分别是直接映像 Cache 和两路组相联 Cache,请根据以下列出的系统基本情况,分析计算不同方案下的平均访问时间以及 CPU 的价格,选择合适的方案。
(1)如果 Cache 情况下的 CPI 为 2.5,时钟周期为 2ns,平均每条指令访存 1.5 次。
(2)但根据 Cache 中的多路选择器使 CPU 的时钟周期增加了 10%。
(3)这种 Cache 的不命中率总是为 90‰。
(4)命中时间为 1 个时钟周期。
(5)直接映像 Cache 的不命中率为 1.5%,两路组相联 Cache 的不命中率为 1.2%。
> [!abstract]- 答案
> **直接映像**:时钟 2ns,不命中率 1.5% → 平均访存 $= 1 + 1.5\% \times 90 = 2.35$ns,$CPU时间 = IC \times (2.5 \times 2 + 1.5\% \times 90) = 7.025IC$ ns
>
> **两路组相联**:时钟 2.2ns,不命中率 1.2% → 平均访存 $= 0.8 + 2.2 + 1.2\% \times 90 = 0.28$ns,$CPU时间 = IC \times (2.5 \times 2.2 + 1.2\% \times 90) = 7.12IC$ ns
>
> **结论**:选择**直接映像 Cache**。虽然组相联访存时间略短,但时钟周期增长导致 CPU 时间更长,且直接映像实现更简单。
> [!note] 解题思路
>
> **(1)平均访存时间 = 命中时间 + 不命中率×不命中开销**
>
> - 直接映像:$T_1 = 1 + 1.5\% \times 90 = 2.35$ns
> - 两路组相联:$T_2 = 0.8 + 2.2 + 1.2\% \times 90 = 0.28$ns
>
> **(2)CPU 时间**
>
> $CPU时间 = IC \times (CPI \times 时钟周期 + 每指令访存次数 \times 不命中率 \times 不命中开销)$
>
> - 直接映像:$7.025IC$ ns
> - 两路组相联:$7.12IC$ ns
>
> 性能比 $\frac{7.12}{7.025} \approx 1.0135$,直接映像更快。
---
### 四、综合题(每题 16 分,共 32 分)
1. 自第一台通用计算机问世以来,计算机的性能以每年近人的速度增长。这得益于计算机系统结构设计技术,特别是基于计算机系统设计中广泛的定量原理。你知道系统设计中经常使用的定量原理有哪些?简述它们的主要内容和含义。
> [!abstract]- 答案
> 四个定量原理:
>
> (1)**以经常性事件为重点**:对高频事件优先处理,获得更大总体改善。
>
> (2)**Amdahl 定律**:加速比受限于瓶颈部件在系统中的重要性。
>
> (3)**CPU 性能公式**:$CPU时间 = IC \times CPI \times 时钟周期$。
>
> (4)**程序局部性原理**:程序访问在时间/空间上具有聚集性,非随机分布。
> [!note] 参考答案要点
>
> **(1)以经常性事件为重点**(最主要原理 2 分)
>
> 在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,从而得到更多的总体上的改善。
>
> **(2)Amdahl 定律**(2 分)
>
> 加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
>
> **(3)CPU 性能公式**(2 分)
>
> 执行一个程序所需的 CPU 时间 $= IC \times CPI \times$ 时钟周期时间。
>
> **(4)程序的局部性原理**(2 分)
>
> 程序在执行时所访问的地址空间的分布不是随机的,而是相对地聚集。
2. 并行处理面临着两个重要挑战:一个是程序中的并行性有限;另一个相对较大的通信开销,比如多处理器中从远端内存访问的巨大延迟。某单位需要评估程序在远程访问时间对多处理器性能的影响,作了以下试验:每单位(使用含 32 个处理器的计算机集群,处理程序的执行时间为 10ns,基于单处理器的 CPI 为 1.0),分为两种情况进行实验:第一种情况没有远程访问,第二种情况有 0.5% 的指令需要远程访问,对远程处理器访问时间为 2000ns,预测一下前后对比会快多少?(除通信以外,假设计算中的访问均匀中都局部存储器。当发出一个远程请求时,此处理器就挂起)
> [!abstract]- 答案
> 远程访问时钟 $= 2000 / 10 = 200$ 个时钟
>
> 有远程访问时 $CPI = 1.0 + 0.5\% \times 200 = 2.0$
>
> 无远程访问时 $CPI = 1.0$
>
> **结论**:无远程访问的机器速度是有 0.5% 远程访问机器的 **2 倍**。
> [!note] 参考答案要点
>
> 有 0.5% 远程访问的机器的实际 CPI 为:
>
> $CPI = \text{基本 CPI} + \text{远程访问率} \times \text{远程访问开销}$
>
> $= 1.0 + 0.5\% \times 200 = 2.0$
>
> 它为只有局部访问的机器的 $2.0 / 1.0 = 2$ 倍。
>
> 因此在没有远程访问状态下这台机器速度是有 0.5% 远程访问的机器速度的 2 倍。
## 关联笔记
- [[计算机系统结构/复习文档/index|复习文档索引]]
- [[计算机系统结构/课程笔记]]