Title: Review CPSC 321
1ReviewCPSC 321
2Administrative Issues
- Midterm is on October 12
- Allen Parishs help session Friday 1015-1215
3Questions? Project partners?
4Todays Menu
5History
One of the first calculation tools was the
abacus, presumably invented sometime between
1000-500 B.C.
6Early History
- around 1600, John Napier invents the Napier
bones, a tool that helps in calculations - 1621, William Oughtred invents the slide rule
that exploit Napiers logarithms to assist in
calculations - 1625 Wilhelm Schickard invents a mechanical
device to add, subtract, multiply and divide
numbers - 1640 Blaise Pascal invents his Arithmetic Machine
(which could only add) - 1671 Wilhelm von Leibniz invents the Step
Reckoner, a device that allows to perform
additions, subtractions, multiplications,
divisions, and evaluation of square roots (by
stepped additions)
7Early History
- Charles Babbage proposes in 1822 a machine to
calculate tables for logarithms and trigonometric
functions, called the Difference Engine. - Before completing the machine, he invents in 1833
the more sophisticated Analytic Engine that uses
Jacquard punch cards to control the arithmetic
calculations - The machine is programmable, has storage
capabilities, and control flow mechanisms it is
a general purpose computer. - The Analytic Engine was never completed.
- Augusta Ada Lovelace writes the first program for
the Analytical Engine (to calculate Bernoulli
numbers). Some consider her as the first
programmer.
8Z1
- The Z1 computer was clocked at 1 Hz. The memory
consists of 64 words with 22 bits. Input and
output is done by a punch tape reader and a punch
tape writer. - The computer has two registers with 22 bits and
is able to perform additions and subtractions (it
is not a general purpose computer).
9Z3
(Art and photo courtesy of Horst Zuse)
- Zuse constructed the Z3, a fully programmable
general purpose computer, in 1939-1941.
Remarkably, it contained a binary floating point
arithmetic. It was clocked at 5.33 Hz, based on
relays, and had 64 words of 22 bits. - The small memory did not allow for storage of the
program.
10Performance
- Response time time between start and finish of
the task (aka execution time) - Throughput total amount of work done in a given
time
11Performance
(Absolute) Performance
Relative Performance
12Amdahls Law
- The execution time after making an improvement to
the system is given by - Exec time after improvement I/A E
- I execution time affected by improvement
- A amount of improvement
- E execution time unaffected
13Assembly Language
.text code section .globl main main li
v0, 4 system call for print string la a0,
str load address of string to
print syscall print the string li v0,
10 system call for exit syscall
exit .data str .asciiz Hello world!\n
NUL terminated string, as in C
14Things to know...
- Instruction and pseudo-instructions
- Register conventions (strictly enforced)
- Machine language instruction given, find the
corresponding assembly language instruction - Code puzzles
- Solve a small programming task
15Instruction Word Formats
- Register format
- Immediate format
- Jump format
op-code rs rt
rd shamt funct
6 5 5 5 5
6
op-code rs rt
immediate value
6 5 5 16
op-code 26 bit current
segment address
6 26
16Machine Language
What does that mean?
- Machine language level programming means that we
have to provide the bit encodings for the
instructions - For example, add t0, s1, s2 represents the
32bit string - 00000010001100100100000000100000
- Assembly language mnemonics usually translate
into one instruction - We also have pseudo-instructions that translate
into several instructions
17Watson, the case is clear
- add t0, s1, s2
- 00000010001100100100000000100000
- 000000 10001 10010 01000 00000 100000
- Operation and function field tell the computer to
perform an addition - 000000 10001 10010 01000 00000 100000
- registers 17, 18 and 8
op-code rs rt
rd shamt funct
6 5 5 5 5
6
18Number Representations
- Signed and unsigned integers
- Number conversions
- Comparisons
- Overflow rules
19Detecting Overflow
- No overflow when adding a positive and a negative
number - No overflow when signs are the same for
subtraction - Overflow occurs when the value affects the sign
- overflow when adding two positives yields a
negative - or, adding two negatives gives a positive
- or, subtract a negative from a positive and get a
negative - or, subtract a positive from a negative and get a
positive
20Detecting Overflow
Operation Operand A Operand B Overflow if result
AB gt0 gt0 lt0
AB lt0 lt0 gt0
A-B gt0 lt0 lt0
A-B lt0 gt0 gt0
21Logic Design Build ALU, etc.
22Logic Design
- Determine truth tables of combinatorial circuits
- Determine combinatorial circuits from truth
tables - Determine critical path
- Overflow detection in ALU
23SLT
- 4 operations
- subtraction output available
- Connect
- MSB set output
- w/ LSB less
24Adders
- Ripple carry
- Carry-lookahead
25Fast Adders
- Iterate the idea, generate and propagate
- ci1 gi pici
- gi pi(gi-1 pi-1 ci-1)
- gi pigi-1 pipi-1ci-1
- gi pigi-1 pipi-1gi-2 pipi-1 p1g0
-
pipi-1 p1p0c0 - Two level AND-OR circuit
- Carry is known early!
26Multiplication
- 0010 (multiplicand)
- __ x_1011 (multiplier)
- 0010 x 1
- 00100 x 1
- 001000 x 0 0010000 x 1
0010110
27Booth Multiplication
- Current and previous bit
- 00 middle of run of 0s, no action
- 01 end of a run of 1s, add multiplicand
- 10 beginning of a run of 1s, subtract mcnd
- 11 middle of string of 1s, no action
28Example 0010 x 0110
Iteration Mcand Step Product
0 0010 Initial values 0000 0110,0
1 0010 0010 00 no op arithgtgt 1 0000 0110,0 0000 0011,0
2 0010 0010 10 prod-Mcand arithgtgt 1 1110 0011,0 1111 0001,1
3 0010 0010 11 no op arithgtgt 1 1111 0001,1 1111 1000,1
4 0010 0010 01 prodMcand arithgtgt 1 0001 1000,1 0000 1100,0
29IEEE 754 Floating Point Representation
- Float 1 sign bit, 8 exponent bits, 23 bits for
significand. - seeeeeeeefffffffffffffffffffffff
- value (-1)s x F x 2E-127
- with F 1 .ffffffff .... fff
- Double 1 sign bit, 11 exponent bits, 52 bits
for significand
30Processor
- Be able to build the datapath
- Be able to explain issues concerning datapath and
control
31Control
32Single- versus Multicycle Processor
- What are the differences?
- What is executed during the 7th cycle?
- How many cycles do we need?
33Summary
34Need for Speed
- You need to be able to answer the question in a
short time (75 minutes) - Routine calculations, such as number conversions,
should not slow you down - Read the chapters very carefully!
- Many repetitions will help you to gain a better
understanding