Computer Architecture

In a nutshell: Let's recap the last four modules: we've built some elementary logic gates (module 1), and then used them to build an ALU (module 2) and a RAM (module 3). We then played with low-level programming (module 4), assuming that the overall computer is actually available. In this module we assemble all these building blocks into a general-purpose 16-bit computer called Hack. We will start by building the Hack Central Processing Unit (CPU), and we will then integrate the CPU with the RAM, creating a full-blown computer system capable of executing programs written in the Hack machine language.

Key concepts: Von Neumann and Harvard architectures, the stored program concept, fetch-execute cycle, data bus, instruction bus, CPU, computer design.

Unit 5.1: Von Neumann Architecture

  • The ALU loads information from the Data bus and manipulates it using the Control bits.

  • Both Data and Addresses are stored in the registers.

Unit 5.2: The Fetch-Execute Cycle

Fetching

  • Put the location of the next instruction into the "address" of the program memory

  • Get the instruction code itself by reading the memory contents at that location

Executing

  • The instruction code specifies "what to do"

    • Which arithmetic or logical instruction

    • What memory to access (read/write)

    • if/where to jump

    • ...

  • Often, different subsets of the bits control different aspects of the operation

  • Executing the operation involves also accessing registers and/or data memory

The fetch part of the cycle reads from the program memory, and the execute part reads from data memory.

Simpler Solution: Harvard Architecture

  • Variant of von Neumann

  • Keeps Program and Data in two separate memory modules

  • Complication avoided

Unit 5.3: Central Processing Unit

  • The Hack CPU Abstraction

    • a 16-bit processor designed to:

      • Execute the current instruction

      • Figure out which instruction to execute next (written in the Hack language)

Unit 5.4: The Hack Computer

  • Abstraction: A computer capable of running programs written in the Hack machine language.

  • RAM: 16-bit / 16K RAM chip

  • Screen: 16-bit / 8K memory chip with a raster display side-effect

  • Keyboard: 16-bit register with a keyboard side-effect

    • probe memory register 24576

  • Hardware implementation: plug-and-play ROM chips

  • Hardware simulation: programs are stored in text files; program loading is emulated by the built-in ROM chip

Unit 5.5: Project 5 Overview

Last updated