Skip to content

Index

计算机组成 杨坤

课程介绍

  • 教师:杨坤
  • 成绩组成: 有4次小测(助教出题,但有时候题量会比较爆炸),3次签到(貌似只要来了2次就可以拿满),5个lab+1bonus, 期末考试(可带一张手写A4)
  • 教材Computer_Organization_RiscV_Edition_5th

经验

计组感觉是这学期相对学的比较好的一科。知识点相对DB没有那么繁杂,而且框架比较清晰。第2章开始的RISC-V如果学过计概的话能很快上手。第3章和数逻重复的比较大。第4章从流水线开始会比较复杂,思想好理解但细节很多,如寄存器堆上升沿/下降沿写,分支预测在ID,EX还是MEM。第5章Cache的部分还算简单,但虚拟内存还是需要些时间搞明白的,个人感觉关键是把作业里的例题搞懂。总之马德智云yyds. 感觉ppt里的一句话很能概括计组这门课的特征: The basic idea is easy. The devil is in the details

image-20240705135934163

实验方面:计组实验是本学期投入时间较多的,个人感觉也是收获很大的。实验4,5都认真写了核心模块(如4的CPU控制器和Datapath, 5的stall控制模块),对理解理论课的内容真的有很大帮助。而且从零开始写一个能支持绝大多数RISC-V指令的CPU非常有成就感。特别是lab5对着仿真波形调stall调了一周,特别感谢同班dalao的帮助。现在看来计组实验应该尽早开始,最好在春学期完成lab4-2(4-3指令扩展和4-4中断可以放到后面),不然期末的时候和minisql撞在一起会很难受(被迫放弃lab6)。

但是想吐槽的点也很多: 首先实验需要写的没有意义的连线代码太多了,如果参考DB的minisql实验,助教搭框架学生编写指定模块代码,可能学习的效率会高一些。其次下发的代码里面充满各种低级错误,比如接口字母的大小写,Jump写成Junp。同时可能是因为今年换了板子,github上部分代码的顶层模块CSSTE和vga模块需要修改。

有用资源

笔记

  • 马德的ppt
  • 看马德ppt并抄到A4上,或参考这篇博客

A4:个人感觉这次抄的比较全,基本没有A4 miss的情况(笑) A4纸下载

  • IEEE754浮点数,特别是NaN和inf
  • 汇编:最好抄一个汇编写递归的程序如斐波那契,考试时照猫画虎。以及长距离跳转,lui+add构建32位立即数, 数组越界判断(bgeu)等常用指令组合

  • CPU这块看个人,感觉抄了的都没考(心虚

  • Cache抄bit数的计算,虚拟内存,TLB画个图
  • I/O抄了 三种方式(polling,interrupt-driven,DMA)的定义, 硬盘读取时间的计算,Amdahl's Law, 同步和异步总线

实验

历年卷: 之前98大佬已经做过整理

作业答案 答案的错误不少,需要自己的独立思考

Comments