首页
/ 从 MIPS 流水线到高速内存系统:CS自学指南中 ETH《Computer Architecture》课程详解

从 MIPS 流水线到高速内存系统:CS自学指南中 ETH《Computer Architecture》课程详解

2026-09-05 17:07:44作者:毕习沙Eudora

本文基于 CS自学指南仓库(cs-self-learning)中的 ETH: Computer Architecture 课程文档,系统梳理这由苏黎世联邦理工学院(ETH Zurich)Onur Mutlu 教授讲授的进阶体系结构课程:从先修要求、官网定义的知识体系,到 Verilog 流水线 CPU 与 C 语言周期精确模拟器构成的双线实战训练,再到资源清单与同层次课程(CS61C、DDCA)的难度对比,帮助读者为进阶计算机体系结构自学制定可落地的学习路线。

课程定位与基础信息

docs/体系结构/CA.md 是 CS自学指南"体系结构"板块中定位最高的课程页面。课程核心元信息如下:

项目 内容
所属大学 ETH Zurich(苏黎世联邦理工学院)
授课教师 Onur Mutlu 教授(体系结构领域知名学者,同时讲授 DDCA 课程)
先修要求 DDCA(Digital Design and Computer Architecture,同为 ETH 开课)
编程语言 C/C++、Verilog
课程难度 🌟🌟🌟🌟(五星制中四星)
预计学时 70 小时以上
课程项目 5 个 Project,大多与内存(memory)和缓存(cache)相关

从先修关系看,本课程是 DDCA 的进阶课。DDCA 课程完全从计算机设计者视角出发,覆盖晶体管、逻辑门到微架构、缓存、虚拟内存,并配备 9 个基于 Basys 3 FPGA 板与 Vivado 工具链的实验;而 CA 课程则假设读者已掌握这些微架构基础,进一步聚焦"如何设计控制与数据通路硬件""如何并发执行指令""如何设计快速内存与存储系统"这三个更深层的设计问题。

课程目标:三大核心技术能力

根据 docs/体系结构/CA.md 的描述,本课程旨在培养三项具体的硬件设计能力:

  1. 为类 MIPS 处理器设计控制通路(control path)与数据通路(datapath)硬件。即从指令集语义出发,推导寄存器、ALU、译码器、控制信号等硬件单元的构成与连接关系,而不是停留在"取指—译码—执行—访存—写回"的概念背诵层面。
  2. 通过流水线(pipelining)与简单超标量执行(superscalar)使机器指令并发执行。流水线将指令执行划分为阶段并让多条指令在不同阶段重叠推进;超标量则进一步在单周期内发射、执行多条指令,两者都是指令级并行(ILP)的典型技术。
  3. 设计快速的内存与存储系统。内存层次、DRAM 访问机制、缓存策略是本课程的重心之一,也与 5 个 Project 大多围绕 memory/cache 的安排相呼应。

官网定义的知识体系

课程文档 docs/体系结构/CA.md 中完整引用了官网(英文原文)对课程内容的界定,这里保留原文:

"We will learn the fundamental concepts of the different parts of modern computing systems, as well as the latest major research topics in Industry and Academia. We will extensively cover memory systems (including DRAM and new Non-Volatile Memory technologies, memory controllers, flash memory), new paradigms like processing-in-memory, parallel computing systems (including multicore processors, coherence and consistency, GPUs), heterogeneous computing, interconnection networks, specialized systems for major data-intensive workloads (e.g., graph analytics, bioinformatics, machine learning), etc. We will focus on fundamentals as well as cutting-edge research. Significant attention will be given to real-life examples and tradeoffs, as well as critical analysis of modern computing systems."

按主题域拆解,官网承诺覆盖的六大板块为:

主题域 覆盖内容
内存系统(重点,"extensively cover") DRAM、新型非易失性存储(NVM)技术、内存控制器、闪存
新范式 存内计算(processing-in-memory)
并行计算系统 多核处理器、缓存一致性与一致性协议(coherence and consistency)、GPU
异构计算 异构计算体系结构
互连网络 片间/核间互连网络
数据密集型负载专用系统 图分析、生物信息学、机器学习等负载的专用系统

官网同时强调三点课程特色:基础知识与前沿研究并重(fundamentals as well as cutting-edge research)、重视真实案例与工程权衡(real-life examples and tradeoffs)、对现代计算系统做批判性分析(critical analysis)。这也解释了文档中"课程的部分内容十分前沿"的评价。

实战训练体系:Verilog 流水线设计 + C 周期精确模拟器

CA 课程的编程实践是区别于纯理论课程的关键,由两条互补的训练线构成(均出自 docs/体系结构/CA.md):

第一条线:用 Verilog 设计并仿真类 MIPS 流水线处理器。 具体做法是用 Verilog 实现并仿真类 MIPS 流水线处理器的寄存器传输(RT,Register-Transfer)级实现,以此加深对理论课程的理解。由于 RT 级设计直接刻画硬件信号在时钟周期间的流动,前几个实验就是 Verilog 的 CPU 流水线编程——需要亲手处理流水线冒险、前递(forwarding)、控制信号生成等细节,与课程"通过流水线和简单超标量执行并发执行指令"的目标直接对应。

第二条线:用 C 语言开发周期精确(cycle-accurate)处理器模拟器。 学生需要编写一个周期精确的处理器模拟器,并用该模拟器探索不同的处理器设计选项。周期精确意味着模拟器的行为与真实处理器逐拍对应,这使学习者可以在不写硬件的前提下,通过实验对比不同微架构设计(如不同的流水线组织、缓存配置)对指令执行周期数的影响,从而把"设计权衡"从纸面讨论变成可量化验证的工程过程。

两条训练线一硬一软:Verilog 线训练硬件实现能力,C 模拟器线训练架构评估与性能分析能力。配套的 5 个 Project 大多围绕内存与 cache 展开,具体题目以课程网站的 lab 页面为准。

课程资源清单

以下为文档中登记的全部资源信息(文档中给出的官网地址、视频地址属于外部站点,此处仅描述其形态,便于读者自行检索):

  • 课程网站:ETH 官方课程站点提供 2020 Fall 与 2022 Fall 两个年份的版本(仓库文档中两个条目均指向 2022 Fall 版课程页面)。
  • 课程视频:官方视频收录于课程网站;Bilibili 上有 2020 年版本的搬运视频,适合离线观看与倍速学习。
  • 课程教材:无指定教材,每个 lecture 都附有大量文献(bibliography)供延伸阅读。文档评价其"所提供的阅读材料十分丰富,相当于听了一学期讲座"——这是自学时最重要的时间成本来源,规划学时时必须把文献阅读计入 70+ 小时之外。
  • 课程作业:5 个 Project,大多与内存和 cache 相关,题目细节见课程网站的 lab 页面。

难度评估与同仓库课程横向对比

关于学习体验,文档转述了来自学生与社区的三类反馈(注意均为他人评价而非官方承诺):

  • 同学反馈:从课程本身的难度上说,至少高于 CS61C
  • 课程内容十分前沿(与官网"cutting-edge research"的定位一致);
  • B 站搬运 UP 主建议将本课程作为卡内基梅隆大学 18-447 的补充

把本课程与 docs/体系结构/ 目录下的其他课程放在一起,可以得到如下由仓库文档直接支撑的对比:

课程 开课机构 难度 预计学时 实战方式
Nand2Tetris 耶路撒冷希伯来大学 / Coursera 🌟🌟🌟 40 小时 从 Nand 门搭建完整计算机并运行俄罗斯方块
CS61C UC Berkeley 🌟🌟🌟🌟 100 小时 汇编手写神经网络(MNIST)、Logisim 搭建两阶段流水线 CPU、用 OpenMP/SIMD 实现玩具版 NumPy
DDCA ETH Zurich 🌟🌟🌟 100 小时 9 个 FPGA 实验(Basys 3 板 + Vivado),从组合/时序电路到完整 MIPS CPU
CA(本课程) ETH Zurich 🌟🌟🌟🌟 70+ 小时 Verilog 流水线 CPU 仿真 + C 周期精确模拟器,5 个偏内存/缓存的 Project

可以观察到仓库的编排逻辑:N2T 无门槛入门,CS61C 是大学本科难度的主线课程,DDCA 补齐数字设计与 FPGA 实践,CA 则作为 ETH 体系内的进阶收尾,走向体系结构研究前沿。

自学路线建议

结合 CS学习规划 中体系结构章节的安排(该规划将 Nand2Tetris 列为无门槛入门、CS61C 列为大学本科难度的核心专业课,并在 docs/使用指南.md 的课程分类中把 CS61C 归入"体系结构进阶"),针对本课程的自学建议如下:

  1. 不要跳级。CA 的先修要求明确指向 DDCA,而 DDCA 又要求具备 C 语言基础;建议按 N2T(或 CS61C)→ DDCA → CA 的顺序推进,确保控制/数据通路、流水线、缓存这些前置概念已经通过 DDCA 的 FPGA 实验真正落地。
  2. 把阅读文献纳入计划。本课程无指定教材,以逐讲的 bibliography 代替教材,自学时若只看不做、或不按文献深读,很难达到课程"批判性分析现代系统"的深度。
  3. 两条实践线都要完成。Verilog 流水线实验(尤其是前几个实验的 CPU 流水线编程)与 C 周期精确模拟器分别对应硬件实现与架构评估能力,跳过任何一条都会损失该课程相对 CS61C 的差异化价值。
  4. 关注国内引入渠道。按文档"资源汇总"一节的说明,国内已有高校引入这门课程,因此可以搜索到一些额外的中文配套资源;若遇到课程网站访问困难,这类渠道可作为补充。

综上,ETH: Computer Architecture 是 CS自学指南体系结构板块中面向"从会用走向设计"学习者的进阶课程:它以类 MIPS 处理器的控制/数据通路设计、流水线与超标量执行、高速内存与存储系统为三大支柱,用 Verilog 硬件仿真与 C 周期精确模拟器两条实践线支撑理论,并延伸至存内计算、缓存一致性、异构计算与互连网络等前沿主题,适合作为完成 DDCA 之后深入体系结构研究的入口课程。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
588
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
906
1.83 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
891
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.53 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.34 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
987
506
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384