CS152 · 第 26 课
Finale:把整个学期串成一条线
这一讲本身不引入新的技术内容——它是纯粹的课程总结与回顾,把 26 讲里出现过的所有主线重新串在一起,帮助建立"大图景"。
授课:Sophia Shao
预计用时:40 分钟
难度:回顾
贯穿全课程的一条主线:ISA 与微架构的分离
第 1 课用 IBM 360 讲清楚了整门课的出发点:ISA 是软件可见的契约,微架构是实现这份契约的具体硬件方式。此后每一个单元,本质上都是在探索"同一个 ISA 语义,可以用哪些不同的微架构风格来实现,各自的代价和收益是什么":
- 控制逻辑的实现风格(第 2、3 课):硬连线 vs. 微编码——由当时逻辑/ROM/RAM 的相对成本决定,而不是审美偏好
- 流水线(第 4、5 课):把"每周期一条指令"这个目标,从"周期必须长到能容纳最慢指令"升级为"周期只需容纳最慢的流水级"
- 存储层级(第 6-10 课):用局部性弥合处理器与 DRAM 之间越来越大的性能鸿沟,再用分页和 TLB 解决多程序共享内存的问题
- 乱序执行(第 11-13 课):CDC 6600 的 Scoreboard 是历史起点,寄存器重命名(Tomasulo, 1967)消除了假依赖,精确陷阱的解决方案让乱序执行在 1990 年代重新流行
- VLIW(第 14 课):反其道而行——让编译器保证并行性,硬件保持极简,在通用计算领域败给了乱序超标量,却在 DSP 和 Google TPU 这类加速器上活得很好
- 分支预测(第 15 课):2 位饱和计数器、BTB、返回地址栈,把"猜测执行"的代价压到最低
- 多线程(第 16 课):从 CDC 6600 外围处理器的固定轮转,到今天几乎无处不在的 SMT
- 数据级并行(第 17-19 课):向量机、GPU 的 SIMT、RISC-V 向量扩展——本质上是同一个思想的三种不同包装
- 多核一致性与相合性(第 21-23 课):MSI/MESI 保证单地址的一致性,SC/TSO 等相合性模型决定跨地址的顺序,Dekker 算法和原子指令解决同步
- 超越单芯片(第 24、25 课):仓库规模计算机把功耗/散热/故障率变成一等架构约束,互联网络的拓扑/路由决定了这一切能否真正扩展
如果只能记住一件事:体系结构设计几乎从不是"哪个方案绝对更好"的问题,而是"在当前的技术条件、成本结构、应用需求下,哪种权衡更划算"——第 3 课的 IC 技术反转(RAM 追上 ROM 速度)如此,第 14 课 VLIW 在通用计算与 DSP 之间的不同命运如此,第 22、23 课"更强的相合性模型 vs. 更多的硬件优化空间"也是如此。这条方法论主线,比任何一个具体的协议或算法都更值得带走。
如果想继续深入
本课程的乱序执行、分支预测、向量化、一致性协议等主题,在研究生课程和真实处理器研发中还有大量更深入的内容——例如更先进的分支预测结构、更复杂的乱序调度策略、以及针对特定工作负载(AI 训练/推理、数据库、网络)的专用加速器设计。CS252A(本课程的研究生版本)的论文阅读环节和课程项目,是继续深入这些方向的自然下一步。
知识检查
问题 1:本课总结中提到的"IC 技术反转"具体指的是什么?
问题 2:本课总结认为,贯穿整门课程 26 讲的核心主线是什么?
参考资料与延伸阅读
- 本课幻灯片:
sp23/lecture_slides/L26_Finale.pdf(UC Berkeley CS152/CS252A, Spring 2023, Sophia Shao)——课程总结与致谢,无新增技术内容
- Discussion 13 worksheet:Final Review(sp23 discussions)
- 回顾第 1 课「Early Machines」,重新体会 IBM 360 的 ISA/微架构分离思想如何贯穿全课程