首页
/ cs-self-learning 自学指南:深入 ETH Zurich 的 Computer Architecture (CA) 课程 —— 从 MIPS 流水线 CPU 到现代内存系统前沿

cs-self-learning 自学指南:深入 ETH Zurich 的 Computer Architecture (CA) 课程 —— 从 MIPS 流水线 CPU 到现代内存系统前沿

2026-09-05 15:38:40作者:劳婵绚Shirley

本文基于 cs-self-learning(计算机自学指南)仓库中的 CA 课程文档 展开,系统讲解 ETH Zurich 的 Computer Architecture(CA)课程:它在自学路线中处于什么位置、讲授哪些核心内容、两个主线实验(Verilog 流水线处理器与 C 语言周期精确模拟器)各自扮演什么角色,以及如何组合使用课程网站、视频与 5 个 Project 完成学习。读完之后,你能明确判断自己是否具备先修基础、该按怎样的顺序安排 70+ 小时的自学时间,以及学完这门课应能掌握哪些体系结构设计能力。

课程概览

CA 是 ETH Zurich(苏黎世联邦理工学院)开设的计算机体系结构课程,授课教师为 Onur Mutlu 教授。按照 文档 中的课程元信息整理如下:

项目 说明
所属大学 ETH Zurich
先修要求 DDCA(Digital Design and Computer Architecture)
编程语言 C/C++、Verilog
课程难度 4 星(5 星制)
预计学时 70 小时以上

CA 与仓库中的另一门课 DDCA 出自同一位授课教师之手。DDCA 从晶体管、逻辑门讲起,一路覆盖微架构、缓存和虚拟内存,并配套 9 个从零设计 MIPS CPU 的实验;而 CA 在其之上继续进阶——根据课程描述,CA 的学习目标可以概括为三点:

  1. 学习如何为类 MIPS(MIPS-like)处理器设计控制通路与数据通路硬件;
  2. 学习如何通过流水线(pipelining)与简单的超标量(simple superscalar)执行让机器指令并发执行;
  3. 学习如何设计快速的内存与存储系统。

也就是说,DDCA 解决"从零造出一台 CPU"的问题,CA 则进一步回答"如何把它造得快、造得现代"的问题。

在自学路线中的定位:从 Nand2Tetris 到 CA 的进阶路径

在 cs-self-learning 仓库中,mkdocs.yml 的"体系结构"章节按固定顺序编排了四门课,恰好构成一条由浅入深的学习路径:

  1. Coursera: Nand2Tetris —— 无门槛入门,从与非门开始造一台能跑俄罗斯方块的计算机;
  2. UCB CS61C: Great Ideas in Computer Architecture —— 本科难度的核心专业课,覆盖 C 到 RISC-V 汇编、流水线、Cache、虚存与并发;
  3. ETHz: DDCA —— 数字电路 + 体系结构,9 个实验完成完整 MIPS CPU 设计;
  4. ETHz: CA —— 本文主角,体系结构进阶课程。

仓库的 CS 学习规划 对体系结构章节的编排逻辑是:低年级先学 Nand2Tetris 建立对整个计算机体系的"鸟瞰图",再用大学难度的 CS61C 深入现代计算机的细节,避免停留在"取指译码执行访存写回"的单调背诵层面。CA 则位于这条路线的更深处——文档明确指出它是 DDCA 的进阶课程,因此在未掌握 DDCA 覆盖的数字电路、Verilog 与 MIPS CPU 设计基础之前,不建议直接挑战 CA。

课程内容体系:以内存系统为主线的现代体系结构

文档中引用了官网的课程介绍(英文原文如下,中文为要点归纳):

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.

把这段官方描述拆解后,可以看到 CA 的讲授面覆盖六大板块:

  • 内存系统:DRAM、新型非易失内存(NVM)技术、内存控制器(memory controller)、闪存(flash memory)。这是全课着墨最多的部分,也与 5 个 Project 的侧重点一致(后文详述);
  • 内存中计算(processing-in-memory):打破计算与存储分离的传统范式的新研究方向;
  • 并行计算机系统:多核处理器(multicore processors)、缓存一致性与内存一致性(coherence and consistency)、GPU;
  • 异构计算(heterogeneous computing):面向不同算力单元组合的系统设计;
  • 互连网络(interconnection networks):多节点/多核之间通信网络的设计;
  • 数据密集型负载的专用系统:面向图分析、生物信息学、机器学习等典型负载的专用硬件设计。

值得注意的是课程的定位表述:"fundamentals as well as cutting-edge research"(基础与前沿并重),并且强调大量真实案例、设计权衡(tradeoffs)以及对现代计算系统的批判性分析。这意味着 CA 不是纯粹的课堂知识传授,而是把业界与学术界当前的研究热点直接引入教学内容——文档也提到"课程的部分内容十分前沿""所提供的阅读材料十分丰富,相当于听了一学期讲座"。

编程实践:Verilog 硬件实现 + C 语言周期精确模拟器

CA 的编程实践由两条互补的主线构成,这也正是文档中"编程实践"部分的核心内容:

1. Verilog:类 MIPS 流水线处理器的寄存器传输(RT)实现

前几个实验(lab)要求使用 Verilog 设计并模拟一个类 MIPS 流水线处理器的寄存器传输级(Register-Transfer, RT)实现。"寄存器传输级"是数字设计中的一个抽象层次:不关心晶体管与门电路,而是描述数据在寄存器之间如何流动、如何被组合逻辑变换——这一层恰好对应数据通路与控制逻辑的设计,与课程目标中"为类 MIPS 处理器设计控制和数据通路硬件"直接呼应。

这条实践线的价值在于:DDCA 阶段你已经从零手写过单周期/多周期/流水线 MIPS CPU,到了 CA 阶段,同样的 Verilog 技能被用来研究性能维度——指令如何在流水线中并发推进、简单的超标量执行如何提升指令级并行度。文档中提到"前几个实验会有 Verilog 的 CPU 流水线编程",即课程开场就会把硬件设计能力用起来,而不是先讲完理论再动手。

2. C 语言:周期精确(cycle-accurate)处理器模拟器

除硬件线外,CA 还要求使用 C 语言开发一个周期精确的处理器模拟器(cycle-accurate simulator),并用这个模拟器去探索不同的处理器设计选项。

周期精确意味着模拟器的行为与真实硬件一样"按拍数走":每条指令占据几个周期、何时发生停顿(stall)、Cache 何时命中/缺失,都能在模拟器中逐拍复现。与 Verilog 线相比,C 模拟器的优势是迭代速度快、便于做参数化实验——例如调整缓存大小、替换一致性协议、改变调度策略后快速观察对性能指标的影响。可以推断,"用模拟器探索处理器设计选项"正是课程强调 tradeoffs(权衡分析)的落地方式:先建立模型,再用实验数据支撑设计决策。

两条主线的分工可以概括为:Verilog 让你"造出"硬件、理解其逐拍行为;C 模拟器让你"量化"硬件、对比设计空间。这种"硬件描述 + 软件建模"的双轨训练,是体系结构研究生水平课程的典型做法。

课程资源与使用方式

文档"课程资源"一节列出了四类资源,整理如下(外部站点地址以课程官网实际页面为准,本文不重复罗列外链):

  • 课程网站:文档中收录了 2020 秋季与 2022 秋季两个学期的课程网站入口。2022 秋季版课程站(ETH 内部的 safari.ethz.ch 上的 architecture 课程页)同时提供讲义与 lab 说明,是自学时的主入口;
  • 课程视频:官方视频托管在课程网站上;此外 B 站有 2020 年版本的完整搬运,对无法稳定访问 ETH 站点的读者是重要的替代渠道;
  • 课程教材:无指定教材,每个 lecture 都配有大量文献供阅读。文档对阅读量的评价是"相当于听了一学期讲座"——自学时需要把阅读文献的时间显式计入总学时;
  • 课程作业:共 5 个 Project,大多与内存和 Cache 相关,具体内容需查看课程网站的 lab 页面。这与前文课程内容体系中"内存系统是最大板块"相印证——无论是 lectures 还是 labs,都围绕内存层级(Cache、内存控制器、DRAM、NVM)展开设计。

文档"资源汇总"部分还补充了一点:国内有高校引入了这门课,因此按课程名检索还可以找到一些由国内高校整理出的配套资源。

难度评估与学习建议

结合文档给出的元信息与学员反馈,对 CA 有以下判断依据:

  • 难度定位:文档标注 4 星难度、预计 70 小时以上。从同学反馈看,课程本身的难度"至少高于 CS61C"。CS61C 本身在体系结构课程中已属深入(覆盖流水线、Cache、虚存、并发且 Project 要求手写汇编与搭建 CPU),因此 CA 适合已经完整走过 N2T → CS61C → DDCA 路线的读者;
  • 前沿内容需要额外背景:文档提到课程部分内容十分前沿,B 站搬运 UP 主建议大家将其作为卡内基梅隆大学 18-447(CMU 进阶计算机体系结构课程)的补充。这意味着部分讲次更偏向研究综述性质,学习时应以"理解思路与设计权衡"为目标,而不必逐字消化每篇文献;
  • 先修基础不能跳级:CA 的先修要求明确写为 DDCA。由于 CA 的实验以 Verilog RT 级流水线处理器开篇,如果数字电路、Verilog 时序设计、MIPS 数据通路这些 DDCA 的核心产出尚不熟练,实验阶段会非常吃力;
  • 学时安排:70+ 小时仅覆盖课程本身。考虑到无指定教材、每讲配大量文献,以及 5 个偏内存/Cache 方向的 Project,实际投入应按"课程视频 + 文献阅读 + 实验"三块分别估算并预留缓冲。

延伸阅读:仓库内关联文档

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