CS 61C: Great Ideas in Computer Architecture (Machine Structures)
- 开设学校:UC Berkeley
- 涉及语言:C, RISC-V
- 课程页面:CS61C
介绍
作为CS61ABC系列中的最后一节,涵盖的课程内容较为困难,但又十分基础。在国内的课程体系中,可能会被称作《计算机组成原理》,其教学内容相似,但除开理论学习,还配有Lab及Project的实践训练,学习更加新颖且简单的RISC-V指令集;
课程内容简览
- C语言、基本数据表达、RISC-V汇编语言、CPU电路设计、流水线、缓存、虚拟内存、并行...
- 所涵盖的内容及其丰富,是学习计算机体系结构的敲门砖
- Project1将会带你巩固C语言,实现一个小游戏(2022的snek其实比较简单,可以去挑战CSCI0300的snake);Project2将会引导你搭建一个手写数字识别的神经网络,巩固汇编知识;Project3将会要求你实现一个基于RISC-V的二级流水线CPU;Project4将会使用OpenMP,带你优化矩阵运算(对Arm架构的同学不大友好...)
- 2022FALL的HW没有公开,不过你可以在某些特殊的途径找到它(比如说某个群里?)
个人分享
- 61C的学习较为平稳,涵盖的知识十分重要,很适合补充"计算机组成原理"的空白,很适合希望认认真真学习计算机体系的同学,在一个比较“陈旧”的环境听老师唠嗑,在某个基础问题上不断与同学揪细节,能学到什么?即使高分,又收获了什么,其他课程的学习同理,坚持学习这门课程需要极大的内推力,否则你会因为RISC-V汇编语言调试、搭建CPU的繁琐而劝退
- RISC-V指令集正在不断发展壮大,精简的指令集也很适合初步学习(你可能会说x86也挺适合的,因人而异)
- 很多人会把CSAPP与CS61C拿出来一起比较,学习哪门更合适,其实应该比较CMU15-213与CS61C,我给出一些比较与建议:
- 15-213开放的课程视频较旧,61C每年都有人往b站上搬运
- 15-213的lab有极多人分享自己实现,61C则较少(lab/Project每次都会变化),二者的测试都很齐全,61C的指引更加友好,“没有参考”也对自学的同学提出了较大的挑战,不过个人更喜欢这样的学习,在通过测试时的激动与兴奋真的难以描述!
- ...
- 虽然CSAPP这本书部分内容有在15-213、61C中出现,但不代表不用阅读CSAPP这本书,相反,我认为阅读完CSAPP很有必要
- 综上,其实我更加推荐这样的学习61C后,阅读完CSAPP(也可以一起看),如果有充足的时间,可以学习CSCI0300
- 在学习完61C后,还可以趁热学习EECS151