计算机系统结构复习地图

把课程从“很多章节”压成一张路线图:先看整体,再抓公式,最后刷重点题型。

阅读抓手 按“系统目标 → 定量评价 → 处理器 → 存储 → I/O → 互联 → 并行”的顺序阅读。遇到计算题,优先回到公式区和考试重点清单。
iPad 阅读建议 Safari 打开本网页可以看到原题截图、展开答案和章节跳转;如果只想离线批注,也可以下载 PDF 平板版
10个专题子页面覆盖全部复习资料、问答补充与练习库
70个公式块和例题模板集中速查
22道原资料题卡,题干和答案可展开练习
119页原 PDF 截图保留讲义对照

专题子页面入口

每个子页面都按“主线、概念、公式、习题套路、例题模板、易混点、自测问题、原 PDF 截图”整理,可以直接作为复习网页使用。

总览串讲复习子页面

整门课的复习路线、章节关系、全课公式与题型总表。

基本概念复习子页面

Amdahl 反求比例、平均 CPI 例题、MIPS/MFLOPS 和性能评价。

流水线技术复习子页面

TP/S/E 公式、时空图套路、Load-Use、非线性调度例题。

指令级并行复习子页面

BHT 状态题、BTB 延迟题、多指令流出技术比较。

存储系统复习子页面

AMAT、两级 Cache、伪相联、预取、主存带宽、TLB/脏块写回。

I/O 外存系统复习子页面

可靠度公式、混联系统、RAID 容量、小写和故障恢复。

互联网络复习子页面

互连函数公式、超立方体距离、Omega 网络寻径题。

多处理器复习子页面

Amdahl 并行加速、远程访问 CPI、MSI 状态题和同步开销。

互动问答补充页

把问答里反复卡住的地方整理成考试判定表:MIPS 停顿、分支预测、BTB/BHT、Cache/TLB、RAID、互连网络和同步。

练习库

不复刻刚做过的原题,改成 20 套完整卷、160 道大题和 120 道速测,覆盖 MIPS、BTB、Cache/TLB、RAID、Omega、远程访问和 ILP。

互动问答补充

这部分不是原讲义摘要,而是复习过程中针对“看不懂题目在问什么、考试到底怎么下笔”的补丁。建议在刷题时打开,直接查判定表和例题卡。

MIPS 停顿判断

把“有没有定向、IF 后还是 ID 后停、分支预测失败怎么加拍”压成一张做题流程。

Cache/TLB 与 AMAT

解释什么时候减命中时间、TLB miss 是并进 Cache miss penalty 还是额外加。

分支预测与 BTB

区分 BHT/BHD 管跳不跳、BTB 管跳去哪,以及 branch folding 的直觉。

互连/RAID/同步

整理 Illiac、PM2、STARAN、RAID10/01、LL/SC、屏障同步等容易混的术语。

打开互动问答补充页

练习库

这页把复习内容、A 卷题型和习题课套路拆成两个层次:20 套完整卷练考试节奏,120 道速测题查漏补缺。详细卷答案按步骤展开,适合考前反复刷。

20 套完整卷

每套 8 大题、100 分,题型结构贴近期末卷:流水线、BTB、Cache 写事务、Cache/TLB、RAID、Omega、远程访问和 ILP 简答。

过程优先

每题答案都保留关键中间量,方便对照自己到底是哪一步判断错。

打开练习库

1. 一条主线看完整门课

计算机系统结构这门课,本质上是在回答一个问题:计算机怎样设计,才能在性能、成本、功耗、可靠性和可编程性之间取得平衡?

1定义系统结构先分清“做什么”“怎么做”“怎么造”。
2定量评价用执行时间、CPI、吞吐率判断好坏。
3加速指令执行流水线、冲突处理、分支预测、ILP。
4缓解内存瓶颈Cache、主存带宽、虚拟存储器。
5连接外设和节点I/O、RAID、互联网络。
6走向并行系统多处理器、一致性、同步。
  • 先定义计算机系统结构:它研究计算机“做什么”和“怎样高效做”。
  • 再用定量方法判断什么叫“高效”:执行时间、吞吐率、CPI、Amdahl 定律等。
  • 然后分别研究关键子系统:ISA、处理器流水线、存储层次、I/O、互联网络和多处理器。
  • 最后回到工程权衡:性能提升往往伴随硬件复杂度、成本、功耗或通信开销的增加。
课程模块核心问题复习关键词
ISA软件如何控制硬件指令类型、寻址方式、指令格式、寄存器
处理器微结构指令如何更快执行流水线、冲突、分支预测、ILP
存储系统CPU 和内存速度差距如何缓解Cache、局部性、平均访问时间、主存带宽
I/O 系统外存如何更可靠、更高效可靠性、可用性、RAID
互联网络节点之间如何连接和传输互联函数、静态/动态网络、寻路
多处理器多个处理器如何协同共享存储、消息传递、Cache 一致性、同步

2. 基本概念与定量分析

2.1 系统结构、组成与实现

系统结构 定义软件看得见的功能接口,回答“做什么”。 例:规定有 ADD 指令。
计算机组成 定义这些功能的逻辑实现,回答“怎么做”。 例:ALU 执行加法,寄存器写回。
计算机实现 把逻辑落到物理电路,回答“怎么造出来”。 例:CMOS 电路实现加法器。
概念含义例子
计算机系统结构规定软件可见的功能和接口,回答“做什么”。有一条 ADD R1,R2,R3 指令。
计算机组成规定系统结构的逻辑实现,回答“怎么做”。控制器产生信号,ALU 执行加法,结果写回寄存器。
计算机实现规定组成的物理实现,回答“怎么造出来”。用 CMOS 电路实现 32 位加法器。

一句话记忆:系统结构定义功能,计算机组成实现逻辑,计算机实现落到物理电路。

2.2 什么叫高效

不同场景关注的效率指标不同。个人用户通常关心单个程序执行时间,数据中心或服务器场景更关注单位时间完成任务数,也就是吞吐率。

执行时间 吞吐率 成本 功耗 可靠性

2.3 四个定量设计原则

以经常性事件为重点优化最常发生的部分,通常收益最大。先找瓶颈,不要平均用力。
Amdahl 定律整体加速受限于被优化部分在总执行时间中的占比。
CPU 性能公式CPU 时间 = IC × CPI × 时钟周期时间。
局部性原理程序倾向于再次访问刚访问过的数据,或访问其附近数据。

3. 处理器:流水线与指令级并行

3.1 流水线的基本思想

流水线把一条指令的执行过程拆成若干阶段,使多条指令在不同阶段重叠执行。典型五段流水线为 IF、ID、EX、MEM、WB。

IF取指
ID译码
EX执行
MEM访存
WB写回
类比 非流水线像一篓衣服洗完、脱水、晾干后再处理下一篓;流水线则让洗、脱水、晾干同时处理不同衣篓。启动后,吞吐率明显提高。
指标含义考试常见问法
吞吐率单位时间完成的任务数量。给出流水段时间和任务数,求完成率。
加速比顺序处理时间与流水线处理时间之比。比较非流水线和流水线总时间。
效率设备实际使用时间占总运行时间的比例。常要求计算各段或整体效率。

3.2 流水线的现实问题

  • 瓶颈问题:各段时间不等时,最长流水段决定输入节拍。
  • 额外开销:流水寄存器延迟、时钟偏移等会降低理想收益。
  • 冲突问题:指令之间的资源、数据或控制依赖导致停顿。
冲突类型原因典型解决思路
结构冲突多条指令争用同一硬件资源。增加资源、错开访问、调整流水线结构。
数据冲突后一条指令依赖前一条指令结果。暂停、数据转发、编译器调度。
控制冲突分支导致下一条指令地址不确定。分支预测、延迟槽、提前判断分支。

复习时要把“相关”和“冲突”区分开:相关是指令间客观存在的依赖关系,冲突是这种依赖在某个具体流水线实现中造成的执行阻塞。

3.3 非线性流水线调度

非线性流水线中,一个任务可能多次经过某些功能段,因此新任务不能任意间隔进入流水线,否则会发生功能段使用冲突。

  • 会看预约表:判断同一任务在哪些时刻使用哪些功能段。
  • 会求禁止表:找出不能作为启动间隔的距离。
  • 会画状态图:根据允许间隔转移状态。
  • 会找调度方案:比较平均启动距离和吞吐率。

3.4 指令级并行 ILP

指令级并行指无关指令之间可以重叠或并行执行。流水线是 ILP 的基础形式,进一步提升性能则需要动态预测和多流出技术。

技术解决的问题关键词
动态分支预测减少控制冲突造成的流水线清空。BHT 预测方向,BTB 提供目标地址。
超标量每周期发射多条指令,数量可变。硬件动态调度,复杂度高。
VLIW编译器把多条可并行指令打包。硬件较简单,依赖编译器。
超流水线一个周期内分时发射多条指令。区别于同一时刻多流出。

4. 存储系统

4.1 为什么需要层次化存储

理想存储器应该容量大、速度快、价格低,但现实中三者无法同时满足。因此系统采用寄存器、Cache、主存、磁盘等层次化结构,用小而快的上层存储缓存热点数据。

  • 时间局部性:刚访问的数据,很可能不久后再次访问。
  • 空间局部性:访问某个地址后,很可能接着访问附近地址。

4.2 Cache 的四个设计问题

Q1放在哪里?映像规则:直接、全相联、组相联。
Q2怎么找到?查找算法:在候选位置比较标记。
Q3满了换谁?替换算法:随机、FIFO、LRU。
Q4写时怎么办?写直达/写回,写分配/不写分配。
问题名称常见方法
主存块放到 Cache 哪里映像规则直接映像、全相联映像、组相联映像。
如何找到目标块查找算法候选位置中并行或串行查找标记。
Cache 满了换哪块替换算法随机、FIFO、LRU。
写访问怎么处理写策略写直达、写回;按写分配、不按写分配。
平均访问时间 AMAT = 命中时间 + 失效率 × 失效开销

提高 Cache 性能的思路也顺着这个公式展开:降低失效率、减少失效开销、减少命中时间。

4.3 主存系统与带宽

主存性能主要看延迟和带宽。延迟是发出请求到获得第一个数据的时间,带宽是单位时间能传输的数据量。

结构特点复习要点
单体多字存储器一个存储器一次读出多个连续字。提高一次访存的数据量,但请求并行性有限。
多体交叉存储器主存分成多个独立存储体,可以并行访问。重点区分高位交叉和低位交叉。
低位交叉编址连续地址分散到不同存储体。更利于连续访问并行化,常用于提高带宽。

4.4 虚拟存储器

虚拟存储器属于主存-辅存层次。它在物理主存有限的情况下,为程序提供逻辑上更大的地址空间,并由操作系统和硬件协同完成地址转换、页面调入和置换。

5. I/O 系统与 RAID

课程中的 I/O 系统重点偏向存储 I/O。对外存而言,可靠性非常重要,因为程序可以重装,但用户数据一旦丢失往往难以恢复。

指标含义常见计算
可靠性系统从初始点开始连续提供服务的能力,常用 MTTF 衡量。失效率通常是 MTTF 的倒数。
可用性系统正常工作时间在总时间中的比例。Availability = MTTF / (MTTF + MTTR)。
系统可靠度多个部件组合后的可靠程度。串联相乘;并联为 1 - 全部失效概率。

RAID 的核心思想

  • 通过数据交叉存放提高并行访问能力。
  • 通过冗余信息提高可靠性。
  • 分类时关注两个维度:数据交叉粒度,以及冗余数据的计算和存放方式。

6. 互联网络

互联网络研究计算机部件、处理器节点或计算机系统之间如何连接。目标是在成本、延迟、能耗等约束下传输尽可能多的数据,避免网络成为瓶颈。

组成作用
互连结构描述节点之间有哪些物理连接,也就是“路怎么修”。
开关元件负责接收、选择、转发数据路径。
控制方式协调路径选择、资源分配和冲突处理。

需要掌握的网络描述指标

  • 网络规模:网络中节点数量。
  • 结点度:一个节点直接连接的边数。
  • 结点距离:两个节点之间最短路径长度。
  • 网络直径:任意两个节点最短距离的最大值。
  • 等分宽度:把网络分成两半时需要切断的最少边数。

静态互联网络的连接运行时不变;动态互联网络由交换开关构成,连接状态可按程序需求改变。课程重点之一是多级混洗-交换网络的寻路算法。

7. 多处理器

随着单核性能提升受限,多处理器和多核系统成为开发并行性的主要方向。大多数现代多处理机属于 Flynn 分类中的 MIMD。

新增复习子页面 已根据《夏子隽——多处理器.pdf》整理出更直观的专题页,包含多处理器主线、通信机制、Cache 一致性、MSI 状态图、同步机制和原 PDF 截图。打开多处理器复习子页面
分类角度类型通信特点
存储结构集中式共享存储器多个处理器共享一个主存。
存储结构分布式存储器多处理机存储器分布在各个处理器或节点上。
地址空间统一共享地址空间通过共享变量通信。
地址空间多个独立地址空间通过显式消息传递通信。

两个性能挑战

  • 程序并行性有限:可并行部分占比决定整体加速上限,可用 Amdahl 定律分析。
  • 通信开销较大:通信延迟会增加 CPI,抵消一部分并行收益。

Cache 一致性与同步

多处理器系统中,每个处理器可能有私有 Cache。多个处理器缓存并修改同一内存块时,就可能出现不同处理器看到不同数据的情况,这就是 Cache 一致性问题。

机制核心思想适用印象
监听式协议各 Cache 监听总线上其他处理器的内存操作。广播式,适合规模较小的共享总线系统。
目录式协议用目录记录每个块被哪些处理器缓存,并点对点协调。可扩展性更好,适合较大规模系统。
同步机制用原子操作构建锁、信号量等机制,协调共享资源访问。保证正确性,但会带来额外开销。

8. 高频公式速查

CPU 时间 = IC × CPI × 时钟周期时间评价程序在处理器上的总执行时间。
加速比 = 改进前时间 / 改进后时间比较优化前后的整体效果。
Amdahl:Speedup = 1 / ((1 - f) + f / s)f 是可改进部分占比,s 是该部分加速倍数。
AMAT = 命中时间 + 失效率 × 失效开销Cache 性能分析最常用入口。
可用性 = MTTF / (MTTF + MTTR)衡量系统正常服务时间占比。
串联可靠度 = R1 × R2 × ...任一部件失效,串联系统就失效。
并联可靠度 = 1 - ∏(1 - Ri)所有冗余部件都失效,系统才失效。

9. 考试重点清单

优先级最高

流水线性能计算 流水线冲突与时空图 非线性流水线调度 Cache 策略与 AMAT 多体交叉主存

第二梯队

Amdahl 定律 CPU 性能公式 BHT / BTB RAID 与可靠性 互联网络寻路 Cache 一致性 同步机制

10. 建议复习顺序

  1. 第一遍:读本页面,先建立全局框架,知道每章在解决什么问题。
  2. 第二遍:回教材和 PPT,重点做流水线、Cache、主存、互联网络的例题。
  3. 第三遍:按公式和考点清单查漏补缺,专门练容易混淆的概念和计算流程。
  4. 考前最后半天:只看公式速查、冲突类型、Cache 策略、互联网络和多处理器概念表。
最后一句话 计算机系统结构就是用定量方法指导设计,在指令执行、存储访问、I/O、互联和并行处理之间不断减少瓶颈、开发并行性、提高整体效率。