Arithmetic Chapter1
Arithmetic Chapter1
Chapter 1
Numbers and Arithmetic
Spring 2020
‹#›
Dr. Shadrokh Samavi 1
Computer Arithmetic
Text:
Parhami, Behrooz, “Computer Arithmetic: Algorithms and Hardware Designs”
Oxford University Press, 2010.
http://www.ece.ucsb.edu/Faculty/Parhami/text_comp_arit.htm
‹#›
Dr. Shadrokh Samavi 2
Part I Number Representation Part III Multiplication
Part II Addition/Subtraction
6 Carry-Lookahead Adders
8 Multioperand Addition
‹#›
Dr. Shadrokh Samavi 3
Part IV Division Part VI Function Evaluation
‹#›
Dr. Shadrokh Samavi 4
Course Learning Objectives
‹#›
Dr. Shadrokh Samavi 5
Course Learning Objectives
‹#›
Dr. Shadrokh Samavi 6
Course Learning Objectives
‹#›
Dr. Shadrokh Samavi 7
1.1 What Is Computer
Arithmetic?
‹#›
Dr. Shadrokh Samavi 8
Pentium Division Bug (1994-95): Pentium’s radix-4 SRT
algorithm occasionally produced an incorrect quotient. First
noted in 1994 by T. Nicely who computed sums of reciprocals of
twin primes:
‹#›
Dr. Shadrokh Samavi 9
Scope of computer arithmetic.
‹#›
Dr. Shadrokh Samavi 10
1.2 A Motivating Example
‹#›
Dr. Shadrokh Samavi 11
‹#›
Dr. Shadrokh Samavi 12
Patriot Missile
‹#›
Dr. Shadrokh Samavi 13
Patriot Missile
‹#›
Dr. Shadrokh Samavi 14
Importance of Computer Arithmetic
3.2 GHz Pentium has a clock cycle of 0.31 ns. Can one
integer addition be done < 0.31 ns in execution stage
of Pipeline?
STEP 1
1101
1110 -Note: added from right to left.
11011
‹#›
Dr. Shadrokh Samavi 15
Ripple-carry Structure
x31 y31 x1 y1 x0 y0
c31 c2 c1 c0=0
c32 z31 z1 z0
‹#›
Dr. Shadrokh Samavi 16
Full-Adder Implementation
x y cin z cout xy
00 01 11 10
0 0 0 0 0 cin
0 0 1 1 0 0 0 1 0 1
0 1 0 1 0
0 1 1 0 1 1 1 0 1 0
1 0 0 1 0
1 0 1 0 1
z = cin x y + cin x y + cin x y + cin x y
1 1 0 0 1
1 1 1 1 1 = cin ⊕ x ⊕ y
xy 00 01 11 10
cin
0 0 0 1 0
1 0 1 1 1
‹#›
Dr. Shadrokh Samavi 17
Adder Circuit Analysis
STEP 3 – Analysis
‹#›
Dr. Shadrokh Samavi 18
Addition Paradigms
‹#›
Dr. Shadrokh Samavi 19
1.3 Numbers and Their Encodings
‹#›
Dr. Shadrokh Samavi 20
Numbers versus their representations (numerals)
The number “twenty-seven” can be represented in different
ways using numerals or numeration systems:
||||| ||||| ||||| ||||| ||||| || sticks or unary code 27 radix-10 or
decimal code (27)ten 11011 radix-2 or binary code (11011)two
XXVII Roman numerals
Encoding of digit sets as binary strings: BCD example
‹#›
Dr. Shadrokh Samavi 22
Weighted Positional Number System
‹#›
Dr. Shadrokh Samavi 23
1.4 Fixed-Radix Positional
Number Systems
‹#›
Dr. Shadrokh Samavi 24
Binary Number System
• n-ordered sequence:
xn −1 xn −2 x2 x1 x0
• each xi∈{0,1} is a BInary digiT (BIT)
• magnitude of n is important
• sequence is a short-hand notation
• more precise definition is:
‹#›
Dr. Shadrokh Samavi 25
Number System
A Number System is defined if the followings exist
1. A digit set
2. A radix or base value
3. An addition operation
4. A multiplication operation
‹#›
Dr. Shadrokh Samavi 28
Encoding of numbers in 4 bits
‹#›
Dr. Shadrokh Samavi 29
Negative Radix Number System
‹#›
Dr. Shadrokh Samavi 30
Example
•Assume 4-bit registers, unsigned binary numbers
X min ≡ 00002 =
010 X max ≡ 11112 =
1510
[ X min , X max ] ≡ [00002 ,11112 ]
X 1101 13
Y + 0110 6 19(mod 16) = 3
1 0011 19
Answer in register is 00112=310
Overflow
‹#›
Dr. Shadrokh Samavi 31
Example
X = 7 ⋅ 84 + 6 ⋅ 83 + 2 ⋅ 81 + 4 ⋅ 80
X = 760248
Note the importance of the use of 0 to serve as a
coefficient of the weight value w2=82
‹#›
Dr. Shadrokh Samavi 32
Fixed-Radix Systems
Register of length n can represent a number with a
fractional part and an integral part
k – number of integral digits
m – number of fractional digits
.
n=k+m
xk −1 xk −2 x1 x0 x−1 x− m
radix point
X xk −1β k −1 + xk −2 β k −2 + + x1β 1 + x0 β 0
=
k −1
+ x −1 β −1 + + x − m β − m =∑ i
x β
i= −m
i
aX ± aY = a ( X ± Y )
2
aX ⋅ aY =a XY
aX X
=
aY Y
‹#›
Dr. Shadrokh Samavi 34
Unit in the Last Position (ulp)
‹#›
Dr. Shadrokh Samavi 36
Radix Conversion
Converting whole part w: (105)ten = (?)five
Repeatedly divide by five Quotient Remainder
105 0
21 1
4 4
0
Therefore, (105)ten = (410)five
‹#›
Dr. Shadrokh Samavi 38
Radix Conversion
‹#›
Dr. Shadrokh Samavi 40
Radix Conversion
=Q {[( xk −1 β d + xk − 2 ) β d + + x2 ]β d + x1}
Desired LSD = x0
Can Repeatedly Divide to Obtain Converted Value
‹#›
Dr. Shadrokh Samavi 41
Radix Conversion Example
XI = 34610 βs=10 βd =3
Fixed-point Decimal to Ternary Integer Conversion,
(arithmetic in old radix)
XI = 1102113
X
= F x β
−1 d
−1
+ x β
−2 d
−2
+ + x β
− ( m −1) d
− ( m −1)
+ x β
−m d
−m
‹#›
Dr. Shadrokh Samavi 45
Classes of Number Representations
‹#›
Dr. Shadrokh Samavi 46
Machine Representations
Most familiar number systems are:
1. Non-redundant – every value is uniquely represented
by a radix polynomial
2. Weighted – sequence of weights
wn −1 , wn −2 , , w2 , w1 , w0
determines the value of the n-tuple formed from
the digit set
xn −1 , xn −2 , , x2 , x1 , x0
n −1
X = ∑ xi wi
i =0
‹#›
Dr. Shadrokh Samavi 47