首页
/ CS自学指南:ETH Zurich DDCA 数字设计与计算机体系结构,从晶体管到完整 MIPS CPU 的完整学习路线

CS自学指南:ETH Zurich DDCA 数字设计与计算机体系结构,从晶体管到完整 MIPS CPU 的完整学习路线

2026-09-05 17:40:45作者:凤尚柏Louis

本文基于 CS自学指南 仓库中的课程文档 DDCA(英文版)DDCA(中文版),系统拆解 ETH Zurich(苏黎世联邦理工学院)这门面向自学者完全开源的体系结构课程:它讲什么、9 个 FPGA 实验如何从零拼出一台完整的 MIPS CPU、配套教材如何选择,以及它在自学体系中的定位。读完之后,你可以判断这门课是否匹配你的先修背景,准备好 Vivado 与 Basys 3 开发板等工具,并规划出约 100 小时的学习路径。

一、课程概览:以计算机设计者视角贯穿软硬边界

DDCA(Digital Design and Computer Architecture)由 ETH Zurich 开设,授课教师是体系结构领域的知名专家 Onur Mutlu。根据课程文档的设定,它的基本属性如下:

  • 所属大学:ETH Zurich
  • 先修要求:CS50 或同级别的计算机导论课程;最好具备 C 语言基础
  • 涉及的语言/工具:C、Verilog、MIPS 汇编、LC3 汇编
  • 课程难度:🌟🌟🌟(仓库课程页中的三星难度,介于零门槛的入门课与伯克利 CS61C 这类四星专业课之间)
  • 预计学时:100 小时
  • 开源程度:除实验答案与当期考试答案外,课程资料全部开源

这门课与普通"计算机组成原理"式课程最大的区别在于视角:它完全从计算机设计者的角度出发,从晶体管、逻辑门这样的物理起点讲起,一路推进到微架构、缓存(Cache)和虚拟内存,并且还会介绍体系结构领域的最新研究进展。也就是说,它的目标不是让你"理解 CPU 大概是怎么工作的",而是让你能够亲手设计并实现一台 CPU。

课程语言列表中同时出现了 MIPS 与 LC3,值得注意:从课程与教材的对应关系看(详见后文教材一节),LC3 大概率对应 Patt & Patel 教材中使用的教学指令集 LC-3,主要用于课程理论部分;而真正落在 FPGA 实验台上的则是 MIPS 指令集。

二、知识体系:从晶体管到虚拟内存的完整链条

结合课程文档的描述,可以把 DDCA 的知识脉络整理为如下链条,这也是自学时建议的推进顺序:

知识模块 核心内容 典型产出
晶体管与逻辑门 数字电路基础,从器件到门级电路 会用门电路搭建基本逻辑
组合与时序电路 加法器、寄存器、计数器、状态机 时序电路设计,Verilog 建模
硬件描述语言 Verilog 语法、仿真与综合 可综合的 RTL 代码
指令集与汇编 MIPS 指令集,C 与 MIPS 汇编之间的转换关系 手写/阅读 MIPS 汇编的能力
CPU 数据通路与控制 单周期 CPU、多周期 CPU 完整的 MIPS CPU 实现
流水线与性能分析 流水化改造、冒险处理、性能度量 流水线 CPU 及性能分析
存储层次 Cache 的设计原理 缓存相关概念与实现
虚拟内存 地址翻译、虚拟内存机制 对现代内存子系统的整体理解
前沿研究 体系结构领域的最新研究进展 建立科研视野

中文版课程文档对学完后的能力有明确表述:掌握数字电路、Verilog 硬件描述语言、MIPS 与 C 之间的转换关系、MIPS 单周期/多周期/流水线 CPU 的设计和性能分析、缓存、虚拟内存等重要概念。这条"器件 → 电路 → 指令集 → CPU → 存储层次"的主线,正是现代计算机体系结构课程的标准骨架,而 DDCA 的特点是把这条骨架全部落到了可运行的硬件上。

三、9 个实验:用 FPGA 开发板从零拼出一台 MIPS CPU

DDCA 的实战部分由 9 个 lab 组成,是这门课区别于纯理论课程的核心。工具链与流程如下:

  1. 硬件载体:Basys 3 FPGA 开发板(文档注明可自行购买)。所有电路最终部署到真实 FPGA 芯片上运行,而不是停留在软件仿真里;
  2. EDA 工具:Xilinx 公司的 Vivado(可在官网免费下载使用),用于 Verilog 代码的设计、仿真与综合,生成可在 FPGA 上运行的比特流;
  3. 推进路线:从组合电路和时序电路开始,逐级搭建,最终组装出一个完整的 MIPS CPU。中文版文档的概括是"9 个实验从零开始设计 MIPS CPU"。

从课程文档给出的"starting from combinational and sequential circuits, and eventually assembly into a complete CPU"可以推断,实验的难度曲线是:先让学习者独立完成门级/部件级的组合与时序电路(如加法器、ALU 部件等),再组合成 CPU 的数据通路与控制逻辑,最后交付一台可运行的 CPU。

关于开源边界,文档表述得很清楚:除实验(及考试)答案外,全部课程资料开源——讲义、笔记、课程代码框架等都可以自由获取和用于学习,唯独不放出作业答案,这一点在自学时需要自行寻找讨论渠道或独立完成。

对自学者而言有两个实操要点:

  • 预算:Vivado 免费,主要成本是一块 Basys 3 开发板,这是动手前需要准备的唯一硬件;
  • 时间:9 个实验加上约 100 小时的理论内容,建议按一学期的节奏(每周固定投入 3~4 小时)推进,FPGA 实验的调试时间往往比预期长,尤其是时序电路与流水线的部分。

四、教材选择:两本经典互为补充

课程文档列出了两本指定教材:

  1. Patt and Patel, Introduction to Computing Systems:覆盖面较广的计算机体系结构与汇编编程教材,课程语言列表中的 LC3 即与其使用的教学指令集 LC-3 对应,主要支撑课程中汇编与体系结构理论部分的学习;
  2. Harris and Harris, Digital Design and Computer Architecture (MIPS Edition):书名与课程名几乎一致,且明确是 MIPS 版,从课程与教材的对应关系看可以推断,它是与 FPGA 实验线(Verilog 搭建 MIPS CPU)对齐的核心教材。该书的中文译本为《数字设计和计算机体系结构(原书第2版)》,中文自学者可以直接采用译本降低语言门槛。

两本书的分工可以这样理解:Harris & Harris 负责"数字设计 + MIPS CPU 设计"这条硬核主线,Patt & Patel 负责汇编编程与更完整的计算机系统视角。自学时不必把两本书都从头读到尾,以课程讲义为主线、按需查阅对应章节即可。

五、在自学路线中的定位:DDCA 前后接哪些课

在 CS自学指南 的整体课程体系中,体系结构板块共收录了四门课程(导航见 mkdocs.yml 的"体系结构"一节)。DDCA 在其中的位置可以从仓库内其他课程文档直接对比得出:

课程 开设机构 难度 预计学时 实践载体 实验规模
Nand2Tetris 希伯来大学(Coursera) 🌟🌟🌟 40 小时 模拟器,无硬件要求 10 个 Project
DDCA(本文主题) ETH Zurich 🌟🌟🌟 100 小时 Basys 3 FPGA + Vivado 9 个 lab
CS61C UC Berkeley 🌟🌟🌟🌟 100 小时 Logisim 等模拟工具,RISC-V 4 个 Project
ETH CA ETH Zurich 🌟🌟🌟🌟 70 小时+ Verilog + C 周期精确模拟器 5 个 Project

几个关键结论:

  • 入门衔接:如果你的目标是零门槛先建立全局观,仓库推荐先学 Nand2Tetris(从与非门造计算机,40 小时即可走完);DDCA 则要求 CS50 级别先修 + C 基础,定位是"有编程基础后真正动手设计 CPU"的一步;
  • 同阶替代CS61C(伯克利)与 DDCA 主题高度重叠(都是流水线、Cache、虚存 + 搭 CPU),但 CS61C 使用 RISC-V 且难度标注为四星;DDCA 用 FPGA 上真实硬件、且实验数量更多(9 个),偏好"真板子"体验的自学者可以选 DDCA;
  • 进阶出口:仓库中的 ETH Computer Architecture 明确标注其先修要求就是 DDCA,由同一位教授 Onur Mutlu 授课,内容深入内存子系统、并行与异构计算等前沿方向。也就是说,DDCA 是这条"ETH 体系结构双课"路线的第一课,学完后可以直接衔接 CA 继续深造;
  • 与系统课程的关系:体系结构之后通常进入操作系统(如 MIT 6.S081)或系统入门课 CMU 15-213 CSAPP,DDCA 中建立的 MIPS 汇编、CPU 设计与存储层次知识是它们的直接前置。整体选课逻辑可参考仓库的 CS 学习规划 中"体系结构"部分的入门课/专业课划分。

六、课程资源与学习建议

课程文档中列出的资源清单如下(具体访问地址以仓库课程页为准,这里说明其用途):

  • 课程网站:ETH 官方课程页面,文档中同时收录了 2020 年与 2023 年两个学期的版本,是讲义、lab 说明与资料的总入口,9 个实验的具体要求也需在该网站查阅;
  • 课程录影:官方在 YouTube 提供完整 lecture 播放列表;中文版文档另收录了 B 站搬运的 2020 年版本视频,方便国内网络环境下观看;
  • 教材:前述 Patt & Patel 与 Harris & Harris 两本;
  • 实验:9 个 lab,题目与说明详见课程网站。

基于以上内容,给自学者的执行建议是:

  1. 先备工具再开课:注册安装 Vivado,下单一块 Basys 3 开发板,跑通一次空工程的综合下载流程,确认硬件链路没问题;
  2. 讲义与视频并行:每周按课程网站公布的讲义推进,配合对应 lecture 视频;实验题目以课程网站的 lab 页面为准(实验不公开答案,需独立完成);
  3. 教材按需查:以课程讲义为主线,Harris & Harris(中译本《数字设计和计算机体系结构(原书第2版)》)用于数字设计与 MIPS CPU 部分的深入,Patt & Patel 用于汇编编程与 LC-3 部分;
  4. 学完即衔接:若希望继续向存储系统与前沿方向深入,直接接仓库收录的 ETH CA;若转向操作系统,则可进入 MIT 6.S081UCB CS162 的练习。

七、小结

DDCA 是 CS自学指南 体系结构中"重实践"路线的代表:它用 100 小时、9 个 FPGA 实验,把学习者从晶体管一路带到完整的 MIPS CPU,并且课程资料除答案外全部开源。仓库文档 DDCA.en.mdDDCA.md 记录了课程的全部关键信息(先修、语言、难度、学时、工具链与资源),配合本文给出的知识链条、教材分工与前后课程衔接(Nand2Tetris → DDCA → ETH CA),即可作为一门从零设计 CPU 的完整自学方案来执行。

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