/Nand2Tetris

《计算机系统要素:从零开始构建现代计算机》课程笔记&作业+数电复习

Primary LanguageHTML

总结

Bits, however, and computing systems at large, entail a consoling exception: in spite of their fantastic complexity, one can completely understand how modern computers work, and how they are built.

如名字一样,课程由与非门开始,搭建出一套可以玩俄罗斯方块的电脑。

课程高度专注于计算机体系结构中的核心概念,设计时只求实现功能,将优化、错误处理等内容留给更细分的专业领域。

课程分为上下两半,各6章。每章专注于计算机系统中的一个层次进行设计,下一层在前一层的基础上展开。

资源

课程官网

课程围绕作者自己写的教材进行设计(The Elements of Computing Systems)。

21年刚刚再版了一次,Z-library可下载。注意官网的章节节选自旧版。

作者还做了一套教学视频在Coursera上。不过自己还是更喜欢读教材+做作业的方式。

课程内容完全自封闭,仅下半部分要求掌握一门高级语言作为前置知识,推荐零基础的朋友试试CS50x

配套内容十分完善,包括专门设计的硬件描述语言、测试脚本语言、算术逻辑单元、汇编语言、高级语言和操作系统,还有一整套仿真程序。

课程的所有作业所需工具加起来不超过1M,所有作业均可在电脑上完成。

课程所有相关内容均开源。赞美作者,赞美互联网精神。

上半部分

由逻辑门向上构建出数字电路模块,进而构建RAM, ROM, CPU,组合为一台通用计算机(称为HACK),并在上面运行汇编语言。

课程对硬件的许多电气特性做了理想化处理,但设计的核心**仍具普遍意义。

在学习时,结合电路知识,对硬件的物理特性进行了总结分析,使课程内容更具现实意义。

下半部分

在HACK上进行软件开发,设计高级语言,虚拟机和操作系统,最终设计并运行俄罗斯方块这样的图形游戏。