从与非门到俄罗斯方块 Nand2tetris 《计算机系统要素》

·
no tag February 8, 2018

We were losing the forest for trees.

随着计算机硬件与软件体系的高速发展,我们的计算机性能愈加强大,变得越来越复杂,然而,进入大学的一年多以来,我却一直在高级语言层面与计算机打交道。高级语言是怎样编译(Compiler)成二进制指令的?计算机又怎样能执行二进制指令?字符串是怎样输出到屏幕上的,计算机又怎样通过输入设备与人交互?

我们接触的计算机,操作系统(Operating System),都被层层的商业专利所包裹, 在提供强大的计算能力,便利的调用接口(Interface)的同时,也使得我们更难窥察到计算机的整个工作原理。

如何才能对计算机有更深刻的了解?最快速的方法是——自己动手做一台计算机!

Shimon Schocken 是自组织式课程学习的发起者,Shimon Schocken 和Noam Nisan 为学生开发了一套从与非门开始,逐步构造计算机的的课程,他们把课程放到网络(Network)上,同时放出了工具,模拟器(Emulator),內建芯片和课件以及教程,在接下来的几天里,我们从学习最基本的原理开始,构建现代化的计算机系统。

mark

上图蓝色的部分是计算机指令集结构,这个课程第一部分学习的是蓝色区域以下的部分,从逻辑门以及时序电路开始,构造出 hdl 语言描述的 ,名叫 Hack 的计算机硬件平台,并设计完整的汇编指令集,并用这套计算机系统,运行一个弹球游戏。该课程由六个动手项目组成,带你从搭造最基本的逻辑门电路开始,直到构建一台功能齐全的通用计算机。在这个过程中,你将以最直接、最贴近的方式学到计算机是如何工作的,以及如何设计计算机。

mark

在接下来的几天里,我将会按照学习进度,将我学习过程中的笔记进行整理和发布,将给出每个任务我自己的实现过程以及项目源码。笔记仅供参考,每个项目独立完成才会有更大的收获。

本项目使用教材:《计算机系统要素》

计算机系统要素作者: Noam Nisan / Shimon Schocken

出版社: 电子工业出版社

副标题: 从零开始构建现代计算机

原作名: The Elements of Computer Systems: Building a Modern Computer from First Principles

网上资源地址:http://www.nand2tetris.org/ 包括本书的内容,PPT,软件等

推荐先修课程:数字电路(逻辑门、时序电路的基本知识)、Java 或 Python 等具有较完善库函数的高级语言(用于最后的汇编编译器的设计)

上帝创造与非门

mark

Happy Coding!

TECS Software Suite 2.5 软件和资料打包下载(约32MB):
(包括配套软件、配套软件源代码、实践项目源文件、软件使用教程、演讲材料、原版图书样章等内容)
http://bv.csdn.net/down/TECS-Software-Suite-2_5.rar

-----------------------------------------------------------

TECS Software Suite 2.5 软件及源代码下载(约1.8MB):
http://bv.csdn.net/down/EOCS_Software.rar

实践项目源文件打包下载(约725KB):
http://bv.csdn.net/down/EOCS_Projects.rar

软件使用教程打包下载(约6MB):
http://bv.csdn.net/down/EOCS_Tutorial.rar

演讲材料打包下载(约21MB):
http://bv.csdn.net/down/EOCS_Lecture.rar

原版图书样章打包下载(约1.9MB):
http://bv.csdn.net/down/EOCS_Book.rar

配套软件源代码下载:
http://www1.idc.ac.il/tecs/software/tecs-open-source-2.5.zip

附加软件(Jack语言IDE):
http://www1.idc.ac.il/tecs/software/JACK_IDE_SETUP.msi

Hardware Simulator(硬件仿真器)教程下载:
http://www1.idc.ac.il/tecs/tutorials/hardware-simulator.pps
http://www1.idc.ac.il/tecs/tutorials/hardware-simulator.pdf

Assembler(汇编编译器)教程下载:
http://www1.idc.ac.il/tecs/tutorials/assembler.pps
http://www1.idc.ac.il/tecs/tutorials/assembler.pdf

CPU Emulator(CPU模拟器)教程下载:
http://www1.idc.ac.il/tecs/tutorials/cpu-emulator.pps
http://www1.idc.ac.il/tecs/tutorials/cpu-emulator.pdf

VM Emulator(VM模拟器)教程下载:
http://www1.idc.ac.il/tecs/tutorials/vm-emulator.pps
http://www1.idc.ac.il/tecs/tutorials/vm-emulator.pdf

Jack IDE 教程下载:
http://www1.idc.ac.il/tecs/tutorials/jack-ide.pps
http://www1.idc.ac.il/tecs/tutorials/jack-ide.pdf

  • 1718
  • 《计算机系统要素》Day01 布尔逻辑

_(:3 」∠)_
(抱歉)
这里不能评论哦


© 2025 夏末阁. Using Typecho & Moricolor.

陕ICP备16018536号-1