COS 126 Lecture 13: Computer architecture

Overview - slide 1

This slide outlines the major levels of abstraction in computer architecture.

FETCH-INCREMENT-EXECUTE refers to the sequence of fetching an instruction, incrementing the PC (program counter), and executing the instruction. An instruction must be 'fetched' from memory before it can be executed. The encoding of the instruction will be used to control the operation of the CPU. The PC must be automatically incremented so that the next instruction can be incremented. Execution of the function will rely on the underlying architecture. This cycle simply continues infinitely as the computer runs.


slide 2 - Building blocks

We've seen most of these building blocks except for...

Multiplexer: a multiplexer has n control lines and up to 2^n input lines in addition to a single output bit. The output bit will 'get' the value of one of the input bits. The control lines specify which input bit to select. You can think of a muliplexer as a 'selector' - it selects one of the input lines as its output. An analogy that might be helpful in understanding the multiplexer's operation is that of a switch in a train yard. The switch specifies which train track is connected to the main line. In a multiplexer, the control lines specify a particular input line with a binary encoding. If there are 3 control lines, then 000 specifies the first line, 001 specifies the second, 010 specifies the third, etc.

CONTROL LINES: Control lines specify things like which function to execute. They're used to specify things like the controls of multiplexers, decoders, read/write bits of memory, etc.


slide 3 - Register Transfer

This slide demonstrates how data can be moved through the computer system. It's pretty straightforward.


slide 4 - Register Selection

The implementation of a simple selector circuit is given - you can verify its validity with a truth table. A series of these circuits can be used to select entire registers.


slide 5 - Basic Machine Organization

Don't worry about this! Just look it over. The distinction between data and control lines is important and we've already seen examples of each. They are both just wires, though. To implement the computer architecture, we just need to organize the information correctly.


slide 6 - Control

sorry, it's late & I'm working on very little sleep - I can't think of anything to say here.


slide 7 - Final Step

Notice the use of decoders in this example. In exercises, we've looked at decoders that take a binary number as its input and output a 1 on the corresponding line. (Example: 110 will cause the 7th line to have value 1, where the line corresponding to 000 is considered to be the 1st line.) Decoders in general often have different function. They can be implemented to decode any defined encoding. The important thing to remember is that only one output line will have value 1 (the result of the function.)

I think the rest of this slide is fairly self-explanatory.


slide 8 - Summary

If you've found this section of the course to be interesting, you might want to look into the history or some of the new technologies listed.