Pages

                           

Monday, December 20, 2010

Project: Nand To Tetris in 12 Steps...




Cover Page of the book "The Elements of Computing Systems"



From the name of the project one will find difficult at once to know the concept behind the project. But "Nand To Tetris in 12 Steps" is the apt name that can be given to the project. This project is  the implementation of the book "The Elements of Computing Systems"  by Shimon ( IDB Professor of Information Technologies and founding dean of the Efi Arazi School of Computer Science) together with Noam Nisan in 2005.


The Basic criteria for a person implementing this project is mere graduation and some knowledge in basic computer science subjects. With this knowledge one can easily read and understand the concepts explained in the book and complete the project. The main idea is to build an entire computing system from the basic NAND gate. Hearing this one may wonder on how to implement the hardware components of the system. But the authors have taken this as a challenge and built a open source software suit which consists of Hardware Simulators. In this Hardware simulators using a simple Hardware Description Language one can easily build hardware components for building a entire system. In the different phases of the project, the  students will practice many Computer Science abstractions studied in typical CS courses. The main advantage using the software suit given along with the book is that , if one finds it difficult at any phase, they can skip to the next phase or can go in any order. 


The book contains 12 chapters in which each chapter concretes the complete hardware platform and a modern software hierarchy from the ground up, and thus maiking the students discover how computer systems work, and how they are built. The starting of the entire system is from a Nand gate from which we bulid the other gates(since Nand gate is a universal gate). And this is depicted in the 1st chapter. The 2nd chapter teaches on how to create the Combinatorial chips(Half Adder, Full Adder, ALU...) from the previously created logic gates. Then the following chapters thus defines the designing and building of  Sequential chips( Bit,Registers,RAM,...) ,Assembler, Virtual Machine and a compiler for a simple object based language all in an bottom up approach.  A mini-OS is also built, using the high-level language designed in the course. And in final phase a game is build above all the abstraction and the game is TETRIS...

And thus the final implementation from Nand To Tetris is developed in 12 steps...

The book, study plan along with the open source software suit is available here...

No comments:

Post a Comment