1753436464
计算机系统 Ⅰ¶
课程学习内容 ¶
计算机系统是信安课改出的一门系统贯通课,分为三门课均为 5.5 学分,三门课的内容包括了传统的计逻、计组、体系结构、操作系统四门课,难度比四门课简单,也更加贯通。课程整体目标可以说是从逻辑电路开始学起,到自己设计一个 CPU,再在自己的 CPU 上运行自己写的内核。系统Ⅰ这门课包含了计逻和部分的计组、体系结构,最后的目标是用 verilog 语言写一个单周期 CPU。
任课教师 ¶
这个教学班的课程内容由刘海风老师教授,何晓飞老师仅在中间某节课过来做一个分享讲座。由于 24 级是海风老师第一次教授计算机系统这门课,所以会出现时不时卡壳的情况。整体上的听课体验尚可。老师人很好,在 24 级的时候没有点名,同时尽可能减少了平时小测的占比,向老师提问老师回答也很亲切。上课的时候会“开火车”式地提问,但是回答不出来也没关系。在实验的时间安排上,老师和助教也安排的比其他教学班轻松一些。最后大家的成绩大部分也都很不错。
本学期沈浩頲老师负责了逻辑电路部分,卢立老师负责了 ISA 和处理器部分。沈浩頲老师上课的语速较慢,讲解比较清晰;卢立老师讲课还是很清晰的,只是习惯每句话都加个“对吧
张明敏老师几乎每节课都会点名和选人提问,同时在讲课的时候会时不时跳过课件上的某些内容,总体来说听课体验较差。更详细的地方可以参考查老师,慎选!
详见查老师,慎选!
分数构成 ¶
- 平时 15%:包括课堂参与、作业和两次小测
- 实验 50%:具体内容可见实验部分的介绍
- 期末 35%:允许携带一张手写的 A4 纸大小的小抄
- 平时 15%:每周第一次的课出上节课的 quiz
- 实验 50%:具体内容可见实验部分介绍
- 期末 35%:允许携带一张手写的 A4 纸大小的小抄
- 课堂参与:5%
- 作业:10%
- 实验:55%
- 期末:30%
- 作业:15%
- 实验:50%
- 期末:35%
参考书目 ¶
- 《数字逻辑与计算机组成》,袁春风
这本书相当于教材,里面讲的比较基础详细,也比较贴近这门课程。 - 《逻辑与计算机设计基础》Logic and Computer Design Fundamentals, Fifth Edition
机械工业出版社的那套计算机科学丛书之一,内容上比上面那本更多(有一些是系统Ⅰ不会讲到的东西),例子多,也有一些例题(作业题基本是从这本上选的),内容很清晰,推荐看这本书学习。 - 《计算机组成与设计:硬件 / 软件接口》Computer Organization and Design: The Hardware/Software Interface, RISC-V Edition
机械工业引进的书籍,可以买英文原版来看。这本书的前半部分是这门课的后半部分内容,也就是从指令、指令集到计算机组成和处理器设计。 - 《深入理解计算机系统》Computer System: A Programmer’s Perspective
经典书籍 CSAPP,推荐看英文原版,很厚可以收藏(划掉)。还没看完(悲),不过据吴爷爷说看了这本书之后收获很大,几乎是他的启蒙之书。这本书的第二章是这门课的第一个部分也就是信息的表示和处理,这本书讲的比吴磊清晰得多,学的时候可以参考一下。
参考笔记 ¶
- xg 的系统 Ⅰ 笔记:https://note.tonycrane.cc/cs/system/cs1/
只有数据表示和 ISA 两个部分记了 - QJJ 的计逻笔记:https://note.hobbitqia.cc/Logic/
计逻与前半部分内容大差不差,可以参考 - 修佬的数逻笔记:https://note.isshikih.top/cour_note/D2QD_DigitalDesign/
非图灵的数逻课程,同样可以参考一下
学长组课程学习建议 ¶
Abstract
22 学长组编写、25 学长组修改完善的课程学习建议。
这门课应该是大家学习的第一门硬件课,5.5 的学分加上大一春夏的课程安排使得平时的压力会比较大。个人的建议是实验部分尽早开始做(从分数构成上也可以看到实验部分是很重要的),一般一个实验会有两周的时间,但是其不太好调试的特点可能会导致喜欢赶 ddl 的同学到最后无法很顺利的完成。如果实验部分遇到了某些问题,可以多和助教或其他同学沟通,有一些可能是大家遇到的共性问题。
对于实验代码,大家切忌抄袭。这门课和其他课程一样,有查重的机制。可以询问别的同学思路,也可以相互讨论,但是不要直接发送代码,或者找别的同学要代码看。对于 AI 工具的使用,大家也应该控制好度,至少不能把实验文档发给 AI,之后直接 copy AI 生成的代码。这门课实验的贯通性很强,如果某个实验自己完全依赖 AI,那么后面的实验自己完成也可能有很大的困难。
如果是理论部分的学习遇到了困难,或者觉得老师上课不够清晰,可以看卢立 / 沈浩頲老师的智云,个人感觉这两位老师讲解还是很清晰的。
实验部分 ¶
这门课的实验占了分数的主要部分,分为 Lab0-Lab5 和最后的 Project,部分实验是 bonus,可以加平时分 or 实验分(24 级)
实验环境需要 logisim 来做逻辑电路设计和 vivado 来利用 Verilog 语言做硬件设计(vivado 很大,而且需要 Windows 系统,建议提前下载),并且会每人发一块 FPGA 开发板,这个板子会跟随你整个系统三门课,每学期末交还。
Lab0-Lab5 的构成:Lab0 是让大家熟悉一些基本元器件的特性和 Vivado 的使用;Lab1 是多路选择器和七段数码管的设计;Lab2 是全加减法器的设计;Lab3 是有限状态机、计数器和乘法器的设计;Lab4 是卷积模块和串口 (bonus) 的设计;Lab5 是 RISC-V 汇编程序的设计和调试;最后的 Project 是一个单周期 CPU 和多周期处理器 (bonus) 设计。
实验包括验收和提交报告两个部分(汇编实验除外),实验报告写清楚自己干了什么就好,不必要卷长度,只要完成文档的要求就可以拿到很高的分数。格式上足够清晰即可,没有必要去卷美观。如果实验出现了困难,在自己尝试无果的情况下可以积极向助教请教,助教在这门课当中帮助很大,同时也很辛苦,在此对他们表示由衷的感谢。
理论部分 ¶
理论部分的考试是半开卷的,也就是说可以准备一张 A4 纸大小的小抄,不过这个东西基本用处不大,考试内容很简单,可能会有作业题改编以及 PPT 上的例子,搞懂作业题看懂 PPT 了考试就问题不大。而且理论考试只占成绩的 35%,对于总成绩影响也不是很大。