文章

大三下-26春计算机系统结构学习心得

资料仓库地址:GigaBin-y/26SpringBUPT-ComputerArchitecture: 北京邮电大学计算机学院26春计算机系统结构,课程资料、实验、报告、作业、复习文档

1. 课程整体印象

这学期跟随邝坚老师学习的《计算机系统结构》。大号计组,知识点多、杂、乱,涵盖了计算机组成原理的内容(性能评价公式、流水线、并行),思维难度不高、但是需要熟记这6章的知识点。

2. 成绩构成与学习策略

课程包含理论学习、MIPS 实验和研究性学习报告。其中,研究性学习要求结合课程知识研究一个典型计算机系统结构技术专题,提交 2500 字以上文字报告,并录制 15 分钟以内的视频报告。MIPS 实验部分则围绕流水线冲突、点积、冒泡排序、指令调度和延迟分支展开。

具体成绩占比建议发布前补充成如下表格:

考核项目

占比

我的复习/完成建议

平时表现

待补充

MIPS实验会让做一个加分的线上模拟版,可以加满平时分

理论作业/课堂作业

待补充

按时提交即可拿到

MIPS 实验

待补充

根据指导书完成实验,会有实验抽查汇报,老师随机点人在课堂上展示某个实验是怎么做的

研究性学习

待补充

有研究性学习的汇报演讲,需报名(共两个名额),也可以加平时分

期末考试

70%

考试定成绩,无期中、故占比很高

3. 学习内容主线

我把这门课的内容理解成六条主线。

第一条是概念与定量分析。课程一开始讨论计算机系统结构的定义、虚拟机、系统层次、体系结构分类和并行度分类。真正重要的是后面的定量分析方法,比如大概率事件优先原则、Amdahl 定律、CPU 性能公式和性能评测。这一部分相当于全课的方法论:后面所有结构优化,最终都要落到执行时间和性能指标上。

第二条是流水线。流水线的核心不是让单条指令变快,而是让多条指令在时间上重叠执行,提高单位时间完成的指令数。复习时要重点抓住流水线性能指标、瓶颈段、额外开销、MIPS 五段流水线、结构冲突、数据冲突、控制冲突、定向传送、互锁和延迟分支。这一章很适合通过画时空图来理解。

第三条是指令级并行。ILP 部分从静态流水线进一步走向动态调度,内容包括 Scoreboard、Tomasulo 算法、动态分支预测、前瞻执行、ROB、多指令流出、超流水线和异常处理。这里最容易混淆的是“相关”和“冲突”的区别,以及“乱序执行”和“顺序提交”的关系。我的理解是,硬件可以尽量提前执行,但必须保证最终暴露给程序员的体系结构状态仍然正确。

第四条是互联网络。互联网络部分看起来公式和图比较多,但主线很清楚:节点之间怎么连、开关怎么控制、消息怎么传。复习重点包括互连函数、网络性能指标、静态互连网络、动态互连网络、消息格式、存储转发、虚拟直通、虫孔传送和寻径方式。这一章适合把“拓扑结构”和“数据怎么走”放在一起理解。

第五条是向量处理与阵列机。向量处理可以理解为把循环中的同类运算批量交给硬件处理,一条向量指令处理多个数据元素。重点包括向量指令、向量处理方式、向量处理机结构、链接技术、分段开采、性能评价,以及 SIMD/阵列处理机的存储模型和计算例子。它和今天的 SIMD、GPU、矩阵计算有一定思想联系。

第六条是多处理机。多处理机部分讨论 MIMD、共享存储器、消息传递、Amdahl 定律、Cache 一致性、监听协议、目录协议、多线程技术,以及 SMP、DSM、MPP、Cluster 等并行系统结构。这里最重要的体会是:并行不是核心越多越好,通信、同步、远程访问和一致性维护都会吃掉性能收益。

4. 作业与实验内容

本文件夹里的 MIPS 实验材料主要集中在实验 2 到实验 5。

实验 2 关注流水线及流水线中的冲突,包括结构冲突和数据冲突。这个实验的价值在于把课件里的“停顿”“定向”“流水线冲突”变成可观察的数据。

实验 3 使用 MIPS 指令实现两个数组点积,并比较原始程序和静态调度优化后的程序。报告数据中,开启定向和静态调度后,RAW 停顿明显减少,优化版本在开启定向后相对性能达到 1.625。这个实验让我更直观地看到:同样的计算任务,指令排列方式会影响流水线效率。

实验 4 使用 MIPS 指令实现冒泡排序。相比点积,排序中的循环和分支更多,控制停顿和数据相关都更明显。报告数据里,优化后的程序在开启定向后,执行周期和停顿周期都有下降,说明调度优化不仅是理论概念,也能反映在周期数上。

实验 5 关注指令调度与延迟分支。原始调度程序从 33 个周期优化到 18 个周期,延迟分支程序从 38 个周期优化到 25 个周期。这个实验最能体现“编译器/程序员调度”和“硬件流水线行为”之间的关系。

除了实验,本课程还有研究性学习任务。我的选题是“韬(τ)定律:从几何缩微到时间缩微的计算机系统结构研究”。这个报告要求阅读至少 3 份相关文献,并在文字报告和视频报告中给出个人观点。做这个题目的收获是,我把 CPU 时间公式、关键路径、存储层次、互连结构和并行性放到后摩尔时代的产业背景里重新理解了一遍。体系结构优化不只是设计一个更强的核心,也包括让数据路径更短、通信更少、等待更低。

5. 我的复习方法

这门课复习时,我不建议只按“背概念”的方式处理。更有效的方法是按问题组织知识。

例如,看到流水线时先问:为什么流水线能提高吞吐率?哪些因素会让流水线停下来?定向、互锁、静态调度分别解决什么问题?

看到 ILP 时先问:程序中有哪些指令可以并行?哪些相关限制了并行?Tomasulo 和 ROB 分别解决了什么问题?

看到多处理机时先问:多个处理器为什么不能线性加速?Cache 一致性为什么会出现?监听协议和目录协议各适合什么规模?

我自己的复习顺序大致是:

  1. 先看每章模块划分,确定知识边界。

  2. 再整理核心公式和关键定义。

  3. 然后做典型题,尤其是流水线性能、Amdahl 定律、互连函数和一致性协议。

  4. 最后回看实验,把性能数据和理论概念对应起来。

许可协议:  CC BY 4.0