A Whirlwind Tour through Computer Architecture
Honors Computer Systems Organization (Prof. Grishman)
Goal: highest performance within

technical constraints

financial constraints

(sometimes) compatibility constraints
How has this goal affected the choices of computer architecture (primarily,
the choice of instruction sets)?
Components
To understand the tradeoffs, we must first understand something about
the components from which a processor is built.
Gates:

perform the basic Boolean operations (and, or, not, ...) on single bits

built from a few switches; speed limited by switching speed

as technology improves, switches (transistors) get smaller; as a
result, individual switches get faster and we can put more switches on
a single chip (now have a few million transistors on a chip)
Combinatorial circuits

are built out of gates

can compute any function which can be stated as a Boolean formula, including
arithmetic operations (add, subtract, ...)

speed depends on number of gates a signal must go through

multiplexer: select one of N inputs

adder: add two binary numbers; fast adders take time on order
of log(2) of number of bits
Registers

hold data

may be grouped together into register files
Memories

act like large register files

bigger memories are slower (main memory significantly slower than CPU)
Simple CPU Design

combine several combinatorial circuits (adder, subtractor, logical operations)
into one big combinatorial circuit which performs all the operations needed
for the CPU: 'ArithmeticLogic Unit' (ALU)

connect inputs and outputs of ALU to register file

this simple design supports register op register > register
operations