Download presentation
Presentation is loading. Please wait.
1
Review CPSC 321 Andreas Klappenecker
2
Administrative Issues Midterm is on October 12 Allen Parish’s help session Friday 10:15-12:15
3
Questions? Project partners?
4
Today’s Menu What happened so far...
5
History One of the first calculation tools was the abacus, presumably invented sometime between 1000-500 B.C.
6
Early History around 1600, John Napier invents the Napier bones, a tool that helps in calculations 1621, William Oughtred invents the slide rule that exploit Napier’s 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)
7
Early 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.
8
Z1 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).
9
Z3 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. (Art and photo courtesy of Horst Zuse)
10
Performance Response time: time between start and finish of the task (aka execution time) Throughput: total amount of work done in a given time
11
Performance Relative Performance (Absolute) Performance
12
Amdahl’s 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
13
Assembly 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
14
Things 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
15
Instruction Word Formats Register format Immediate format Jump format op-code rs rt rd shamt funct op-code rs rt immediate value op-code 26 bit current segment address 6 55 16 6 555 5 6 6 26
16
Machine Language 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 What does that mean?
17
Watson, the case is clear… add $t0, $s1, $s2 00000010001100100100000000100000 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 555 5 6
18
Number Representations Signed and unsigned integers Number conversions Comparisons Overflow rules
19
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 Detecting Overflow
20
OperationOperand AOperand BOverflow if result A+B>=0 <0 A+B<0 >=0 A-B>=0<0 A-B<0>=0
21
Logic Design: Build ALU, etc.
22
Logic Design Determine truth tables of combinatorial circuits Determine combinatorial circuits from truth tables Determine critical path Overflow detection in ALU
23
SLT 4 operations subtraction output available Connect MSB set output w/ LSB less
24
Adders Ripple carry Carry-lookahead
25
Fast Adders Iterate the idea, generate and propagate c i+1 = g i + p i c i = g i + p i (g i-1 + p i-1 c i-1 ) = g i + p i g i-1 + p i p i-1 c i-1 = g i + p i g i-1 + p i p i-1 g i-2 +…+ p i p i-1 …p 1 g 0 +p i p i-1 …p 1 p 0 c 0 Two level AND-OR circuit Carry is known early!
26
Multiplication 0010 (multiplicand) __ x_1011 (multiplier) 0010 x 1 00100 x 1 001000 x 0 0010000 x 1 0010110
27
Booth 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
28
Example: 0010 x 0110 IterationMcandStepProduct 0 0010 Initial values 0000 0110,0 10010 00: no op arith>> 1 0000 0110,0 0000 0011,0 20010 10: prod-=Mcand arith>> 1 1110 0011,0 1111 0001,1 30010 11: no op arith>> 1 1111 0001,1 1111 1000,1 4 0010 01: prod+=Mcand arith>> 1 0001 1000,1 0000 1100,0
29
IEEE 754 Floating Point Representation Float – 1 sign bit, 8 exponent bits, 23 bits for significand. seeeeeeeefffffffffffffffffffffff value = (-1) s x F x 2 E-127 with F= 1 +.ffffffff.... fff Double – 1 sign bit, 11 exponent bits, 52 bits for significand
30
Processor Be able to build the datapath Be able to explain issues concerning datapath and control
31
Control
32
Single- versus Multicycle Processor What are the differences? What is executed during the 7 th cycle? How many cycles do we need?
33
Summary
34
Need 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.