

The Hack computer’s ROM module is presented as a linear array of individually addressable, sequential, 16-bit memory registers. Therefore, the Hack design follows the Harvard architecture model with respect to bus communication between the memory units and the CPU. The address buses (15-bit), as well as the data and instruction busses (16-bit) for the ROM and RAM units are completely independent. The three units are connected by parallel buses.

Data processing and program control management are provided by the CPU. The random access memory, called RAM, provides storage for an executing program’s data and provides services and storage areas for the computer’s memory-mapped I/O mechanism.
Nand to tetris screen code#
The instruction memory, implemented as read-only memory from the viewpoint of the computer and designated ROM, holds assembled binary program code for execution. Because data is moved and processed by the computer in 16-bit words, the Hack computer is classified as a 16-bit architecture. There are two separate 16- bit memory units and a central processing unit (CPU). The Hack computer hardware consists of three basic elements as shown in the block diagram.

Nand to tetris screen simulator#
In addition to the hardware simulator used for initial implementation of the computer hardware, a complete Hack computer emulator program and assembler that supports the projects described in the book and the on-line course is also available at the author's web site.
Nand to tetris screen software#
In the twelve projects included in the course, learners start with a two input Nand gate and end up with a fully operational virtual computer, including both hardware (memory and CPU) and software (assembler, VM, Java-like programming language, and OS). One such a course, created by the authors and delivered in two parts, is freely available as a massive open online course (MOOC) called Build a Modern Computer From First Principles: From Nand to Tetris. The Hack computer is intended for hands-on virtual construction in a hardware simulator application as a part of a basic, but comprehensive, course in computer organization and architecture. In using the term “modern”, the authors refer to a digital, binary machine that is patterned according to the von Neumann architecture model. The Hack Computer is a theoretical computer design created by Noam Nisan and Shimon Schocken and described in their book, The Elements of Computing Systems: Building a Modern Computer from First Principles.
