From Nand to Tetris / Part I

开始时间: 04/11/2015 持续时间: 7 weeks

所在平台: Coursera

课程类别: 计算机科学

大学或机构: Hebrew University of Jerusalem(耶路撒冷希伯来大学)

授课老师: Noam Nisan Shimon Schocken



课程评论: 2 个评论

评论课程        关注课程


This course is a fascinating 7-week voyage of discovery in which you will go all the way from Boolean algebra and elementary logic gates to building a central processing unit, a memory system, and a hardware platform, leading up to a general-purpose computer that can run any program that you fancy. In the process of building this computer you will become familiar with many important hardware abstractions, and you will implement them, hands on. But most of all, you will enjoy the tremendous thrill of building a complex and useful system from the ground up.

You will build all the hardware modules
 on your home computer, using a Hardware Description Language (HDL), learned in the course, and a hardware simulator, supplied by us. A hardware simulator is a software system that enables building and simulating gates and chips before actually committing them to silicon. This is exactly what hardware engineers do in practice: they build and test computers in simulation, using HDL and hardware simulators.


Week 0: course introduction and overview, the roles of abstraction and implementation in systems design, the road ahead.

Week 1:
Introduction to Boolean functions, gate logic, Hardware Description Language (HDL), and hardware simulation. Project: build a set of 15 elementary logic gates that will serve as the building blocks of subsequent chips.

Week 2: Binary numbers, binary addition, the two's complement methods, combinational logic. Project: build a family of adder chips leading up to an Arithmetic Logic Unit (ALU).

Week 3: Flip-flops, clocks, memory systems, sequential logic. Project: build a family of storage units from 1-bit registers to n-bit registers to Random Access Memories (RAM) of arbitrary sizes.

Week 4: Machine language, binary and symbolic instructions, input and output handling, using an assembler. Project: write some low-level assembly programs and run them on a supplied CPU emulator. 

Week 5: Computer organization, the Von Neumann architecture, the fetch-execute cycle. Project: build the Hack CPU and computer system, using all the chips that were built in the previous projects.

Week 6: Assembly languages, assemblers, parsing, symbol tables, code generation, the translation process. Project: build an assembler that translates Hack symbolic programs into Hack executable (binary) code.



逝__水__ 2015-05-26 09:07 0 票支持; 0 票反对



The_Seventh_Heaven 2015-05-24 04:03 2 票支持; 0 票反对

刚做完最后一次作业。课程很优秀,作为计算机专业的硕士来听这门入门课,仍然能学到新东西,于我而言,最大的用处就是帮助我把之前在学校学习的计算机专业课大体复习了一遍。虽然课程内容是开发一个简单的玩具计算机,但在学习的过程中总能不经意回忆起以前学过的内容,作为part I,主要的还是计算机组成原理。听一遍课作为以前知识的复习强化,这个东西,excited!不论是不是计算机专业的同学,都应该学习一个。这么好的课,Coursera要大力宣传,课程图谱也要大力宣传,我学完了也为这课宣传,以后这课就人山人海了。


Build a modern computer system, starting from first principles. The course consists of six weekly hands-on projects that take you from constructing elementary logic gates all the way to building a fully functioning general purpose computer. In the process, you will learn -- in the most direct and intimate way -- how computers work, and how they are designed.


技术机组成原理 现代计算机系统 俄罗斯方块