Roadmap to a Computer
Introduction
We're going to try to build a computer. This isn't the kind of
computer you get from buying parts online, where you pick a motherboard
and a CPU, and so forth. Instead, we're going to build it from
generic parts, made of registers, wires, MUXes, etc.
By this point, you should understand how all the pieces work.
In particular,
- You know what a MUX is.
- You know how to build a MUX using AND gates, OR gates, and NOT gates.
- You know what a decoder is.
- You know how to build a decoder using AND gates, OR gates, and
NOT gates.
- You know what a tri-state buffer is.
- You know what a D flip flop and a clock are.
- You know how to build a Moore or Mealy machine using either
T or D flip flops.
- You know what a bus is.
- You know how to build a standard parallel load register,
using D flip flops, a clock, and MUXes.
- You know how MIPS instructions are encoded, at least, as
R-type, J-type, and I-type instructions.
We'll go over some of the ideas again in a quick summary, but knowing
each of these topics will make it easier to understand how to construct
a computer.
Our goal isn't really to build a computer than can execute a complete
instruction set. Most realistic instruction sets are quite detailed,
and realisitic computers involve issues that are complex, such as how
best to assign binary numbers to opcodes, and issues involving timing.
Instead, the goal is far more modest. The goal is to convince
you that some small subset of a computer could be built, and that
the details to make it more realistic are really just details. They
may be important enough in reality, but not that important.
For example, when architects make architectural plans, they
are showing you the basic structure of a building. Sure, they
may have computed how much stress the building can take, but they're
not likely to include the kind of carpeting to be used, the make of
the toilets, the placement of the desks, the wiring mechanism. All
of those are important to a building, but initially, all you care
about is the basic structure.
This is how we're going to approach building a computer. In
the end, you'll probably think "but what more is left?", and it
won't be that obvious there are pieces missing. That's good, because
again, we're just trying to give you the basic idea that building
a computer to run an ISA is possible, and that it only requires
the skills you've learned in class.
Roadmap
Here's an outline of what we intend to do.
- Review the basics of combinational logic devices, mostly
emphasizing the idea of gate delay. That is, when the input
changes, there's is a small, but finite time before the output
changes. This time is important.
- Briefly review what a clock is. Review how a register works.
- Understand a register, combinational logic, register, etc.
sequence, to understand how registers and combinational logic
interact.
- Introduce the PC (program counter), a MUX, Memory, and IR,
(instruction register). Begin to build the initial parts of the computer.
- Introduce the register file abstractly.
- Explain the implementation of the register file.
- Add the register file to the design of our computer.
- Introduce the ALU abstractly.
- Explain the implementation of the ALU.
- Explain how jump/branch addresses are computed.
- Explain the control logic that orchestrates what happens and
when.
Web Accessibility