跳转至

1753436464

计算机系统 Ⅰ

课程学习内容

计算机系统是信安课改出的一门系统贯通课,分为三门课均为 5.5 学分,三门课的内容包括了传统的计逻、计组、体系结构、操作系统四门课,难度比四门课简单,也更加贯通。课程整体目标可以说是从逻辑电路开始学起,到自己设计一个 CPU,再在自己的 CPU 上运行自己写的内核。系统Ⅰ这门课包含了计逻和部分的计组、体系结构,最后的目标是用 verilog 语言写一个单周期 CPU

任课教师

这个教学班的课程内容由刘海风老师教授,何晓飞老师仅在中间某节课过来做一个分享讲座。由于 24 级是海风老师第一次教授计算机系统这门课,所以会出现时不时卡壳的情况。整体上的听课体验尚可。老师人很好,在 24 级的时候没有点名,同时尽可能减少了平时小测的占比,向老师提问老师回答也很亲切。上课的时候会“开火车”式地提问,但是回答不出来也没关系。在实验的时间安排上,老师和助教也安排的比其他教学班轻松一些。最后大家的成绩大部分也都很不错。

本学期沈浩頲老师负责了逻辑电路部分,卢立老师负责了 ISA 和处理器部分。沈浩頲老师上课的语速较慢,讲解比较清晰;卢立老师讲课还是很清晰的,只是习惯每句话都加个“对吧”,可能要适应一下(x

张明敏老师几乎每节课都会点名和选人提问,同时在讲课的时候会时不时跳过课件上的某些内容,总体来说听课体验较差。更详细的地方可以参考查老师,慎选!

详见查老师,慎选!

分数构成

  • 平时 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,推荐看英文原版,很厚可以收藏(划掉)。还没看完(悲),不过据吴爷爷说看了这本书之后收获很大,几乎是他的启蒙之书。这本书的第二章是这门课的第一个部分也就是信息的表示和处理,这本书讲的比吴磊清晰得多,学的时候可以参考一下。

参考笔记

学长组课程学习建议

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%,对于总成绩影响也不是很大。

历年卷