Below, the lessons of the Machine Architecture module are summarized for review.

  1. In the introduction, we discussed two characteristics of the modern computer that have influenced its success: flexibility and efficiency. Flexibility is the result of storing program instructions and data in the same way. Hence, programs can be changed simply by loading new instructions into the computer's memory. Efficiency is the result of harnessing electricity to do computations. Since electrons travel near the speed of light, adders and other mathematical circuitry can complete calculations at nearly the same speed.

  2. All of the data storage of a computer is based on the idea of a the binary digit or bit. A group of eight bits is called a byte which can be used to encode more complex data such as integers, reals, and character symbols. The main memory of a computer is made up of millions of bytes (megabytes) and can be accessed in a direct fashion by using the address of any particular byte.

  3. Gates are tiny electronic devices that manipulate binary data in fixed ways. Three important gates are the AND gate, the OR gate, and the NOT gate. The behavior of each of these gates can be described using a truth table showing input and output values. Some other important gates are the NAND gate, the NOR gate, and the XOR gate.

  4. Using gates, more complex pieces of computer logic called circuits can be constructed. Three important circuits are the decoder, the latch, and the adder. Decoders are circuits for selecting based on a particular value. Latches are circuits used for remembering. By combining many latches together, larger memory cells can be created. Adders are responsible for binary addition.

  5. The CPU is the heart of the computer and is composed of five main components: RAM, registers, buses, the ALU, and the control unit. These components work together in a regular cycle to execute programs. This cycle is called the fetch-decode-execute cycle. Machine instructions are stored in the main memory of the computer just like the data. Each instruction is composed of two parts: the op-code and the operand.