ece 8053 introduction to computer arithmetic

25
ECE 8053 Introduction to Computer Arithmetic e: http://www.ece.msstate.edu/classes/ece8053/fall_ Course & Text Content: Part 1: Number Representation Part 2: Addition/Subtraction Part 3: Multiplication Part 4: Division Part 5: Real Arithmetic (Floating-Point) Part 6: Function Evaluation Part 7: Implementation Topics

Upload: tashya-brady

Post on 31-Dec-2015

50 views

Category:

Documents


2 download

DESCRIPTION

ECE 8053 Introduction to Computer Arithmetic. (Website: http://www.ece.msstate.edu/classes/ece8053/fall_2003/). Course & Text Content: Part 1: Number Representation Part 2: Addition/Subtraction Part 3: Multiplication Part 4: Division Part 5: Real Arithmetic (Floating-Point) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ECE 8053 Introduction to Computer Arithmetic

ECE 8053 Introduction to Computer Arithmetic

(Website: http://www.ece.msstate.edu/classes/ece8053/fall_2003/)

Course & Text Content:Part 1: Number RepresentationPart 2: Addition/SubtractionPart 3: MultiplicationPart 4: DivisionPart 5: Real Arithmetic (Floating-Point)Part 6: Function EvaluationPart 7: Implementation Topics

Page 2: ECE 8053 Introduction to Computer Arithmetic

Course Learning ObjectivesComputer Arithmetic students will be able to ...

1. explain the relative merits of number systems used by arithmetic circuits including both fixed- and floating-point number systems

2. demonstrate the use of key acceleration algorithms and hardware for addition/subtraction, multiplication, and division, plus certain functions

3. distinguish between the relative theoretical merits of the different acceleration schemes

Page 3: ECE 8053 Introduction to Computer Arithmetic

Course Learning Objectives(Continued)

4. identify the implementation limitations constraining the speed of acceleration schemes

5. evaluate, design, and optimize arithmetic circuits for low-power

6. evaluate, design, and optimize arithmetic circuits for precision

Page 4: ECE 8053 Introduction to Computer Arithmetic

Course Learning Objectives(Continued)

7. design, simulate, and evaluate an arithmetic circuit using appropriate references including current journal and conference literature

8. write a paper compatible with journal format standards on an arithmetic design

9. make a professional presentation with strong technical content and audience interaction

Page 5: ECE 8053 Introduction to Computer Arithmetic

Importance of Computer Arithmetic3.2 GHz Pentium has a clock cycle of 0.31 ns

Can one integer addition be done < 0.31 ns in execution stage ofPipeline?

What if you had to build a 32-bit adder – ripple carry and a gate delay was approximately 0.1 ns?

STEP 11101

1110 11011

-Note: added from right to left. Why?

Page 6: ECE 8053 Introduction to Computer Arithmetic

Ripple-carry Structure

STEP 2 – Design a circuit

c32 z31 z1 z0

c31 c2 c1 c0=0

x31 y31 x1 y1 x0 y0

– Each box is a full-adder– Implement it

Page 7: ECE 8053 Introduction to Computer Arithmetic

Full-Adder Implementationx y cin z cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

xy

cin

00 01 11 10

0

1

0 1 0 1

1 0 1 0

xy

cin

00 01 11 10

0

1

0 0 1 0

0 1 1 1

in in in in

in

z c x y c x y c x y c x y

c x y

( )out inc c x y xy cout = cinx + ciny + x y

Page 8: ECE 8053 Introduction to Computer Arithmetic

Adder Circuit Analysis

STEP 3 – Analysis

Critical Path is carry chain, 2 gate delays/bit2 32 = 64(64)(0.1ns) = 6.4ns6.4ns >> 0.31nsMust Use Faster Adder and/or Pipeline More!!!!

Page 9: ECE 8053 Introduction to Computer Arithmetic

Number SystemsRoman Numeral System

Symbolic Digitssymbol value

I 1 V 5 X 10 L 50 C 100 D 500 M 1000

RULES:• If symbol is repeated or lies to the right of another higher-valued symbol, value is additive XX=10+10=20 CXX=100+10+10=120• If symbol is repeated or lies to the left of a higher-valued symbol, value is subtractive XXC = - (10+10) + 100 = 80 XLVIII = -(10) + 50 + 5 + 3 = 48

Page 10: ECE 8053 Introduction to Computer Arithmetic

Weighted Positional Number System

Example: Arabic Number System (first used by Chinese)

symbol (digit)

value (in 1’s position)

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9

Page 11: ECE 8053 Introduction to Computer Arithmetic

Addition Paradigms• right to left serial 1 147865 +30921 178786

• right to left, parallel 147865 +30921 177786 001000 178786

•random 461325 147865 +30921 177786 001000 178786

Page 12: ECE 8053 Introduction to Computer Arithmetic

Binary Number System• n-ordered sequence:

• each xi{0,1} is a BInary digiT (BIT)

• magnitude of n is important• sequence is a short-hand notation• more precise definition is:

1 2 2 1 0n nx x x x x

11 2 2 1 0

1 2 2 1 00

2 2 2 2 2 2n

n n in n i

i

x x x x x x

• This is a radix-polynomial form

Page 13: ECE 8053 Introduction to Computer Arithmetic

Number System• A Number System is defined if the following exist

•Example: The binary number system

1. 2. 3. Addition operator defined by addition table4. Multiplication operator defined by multiplication table

1. A digit set2. A radix or base value3. An addition operation4. A multiplication operation

{0,1}ix 2

+ 0 1 0 0 1 1 1 10

0 1 0 0 0 1 0 1

Page 14: ECE 8053 Introduction to Computer Arithmetic

Number System Observations• Cardinality of digit set (2) is equal to radix value• Addition operator XOR, Multiplication is AND

•How many integers exist?Mathematically, there are an infinite number, In computer, finite range due to register length

minX

maxX

min max[ , ]X X

smallest representable number

largest representable number

range of representable numbers[-inclusive; (-exclusive interval bounds

•When ALU produces a result >Xmax or <Xmin, incorrect result occurs

•ALU should produce an error signal

Page 15: ECE 8053 Introduction to Computer Arithmetic

Example•Assume 4-bit registers, unsigned binary numbers

min 2 100000 0X max 2 101111 15X

min max 2 2[ , ] [0000 ,1111 ]X X

max 2 101 10000 16X

max 2 21 [0000 ,1111 ] (mod16)X X

1101 13

0110 6

1 0011 19

X

Y 19(mod16) 3

Answer in register is 00112=310

Overflow

Page 16: ECE 8053 Introduction to Computer Arithmetic

Machine Representations• Most familiar number systems are:1. nonredundant – every value is uniquely represented

by a radix polynomial2. weighted – sequence of weights

determines the value of the n-tuple formed from the digit set

3. positional – wi depends only on position i4. conventional number systems

where ß is a constant. These are fixed-radix systems.

1 2 2 1 0, , , , ,n nw w w w w

1 2 2 1 0, , , , ,n nx x x x x 1

0

n

i ii

X x w

iiw

Page 17: ECE 8053 Introduction to Computer Arithmetic

Example

4 3 1 07 8 6 8 2 8 4 8X

876024X

Since octal is fixed-radix and positional,we can rewrite this value using shorthand notation

Note the importance of the use of 0 to serve as acoefficient of the weight value w2=82

Page 18: ECE 8053 Introduction to Computer Arithmetic

Fixed-Radix Systems

1 2 1 01 2 1 0

11

1

k kk k

km i

m ii m

X x x x x

x x x

Register of length n can represent a number with a fractional part and an integral part

k – number of integral digitsm – number of fractional digitsn = k + m

1 2 1 0 1.k k mx x x x x x

radix point

A programmer can use an implied radix point in any position

Page 19: ECE 8053 Introduction to Computer Arithmetic

Scaling FactorsFixed point arithmetic can utilize scaling factors to adjust radix point position

a – scaling factor

2

( )aX aY a X Y

aX aY a XY

aX X

aY Y

no correction

must divide by a

must multiply by a

Page 20: ECE 8053 Introduction to Computer Arithmetic

Unit in the Last Position (ulp)

• Given w0=r-m and n, the position of the radix point is determined

• Simpler to disregard position of the radix point in fixed point by using unit in least (significant) position ulp

For fractionsFor integers

mulp r

Example98.67510

1 ulp = 110-3=0.001

1 ulp is the smallest amount a fixed point number may increase or decrease

ulp = 1

Page 21: ECE 8053 Introduction to Computer Arithmetic

Radix Conversion

Given a number in old radix r, conversion to the new radix R representation

- can be accomplished doing the arithmetic in the old or new radix

- old and new representations may not be exactly equal

Page 22: ECE 8053 Introduction to Computer Arithmetic

Radix Conversion Given a value X represented in source system with radix s, represent the same number in a destination system with radix d

Consider the integral part of the number, XI, in the d system1 2 1 0

1 2 1 0

1 2 2 1 0{[( ) ] }

0

k kI k d k d d d

k d k d d d

i d

X x x x x

x x x x x

x

1 2 2 1

0

{[( ) ] }k d k d dQ x x x x

Desired LSD x

Can Repeatedly Divide to Obtain Converted Value

Consider the integral part of the number, XI, in the d system

If XI is divided by d , we obtain x0 as a remainder and quotient

Page 23: ECE 8053 Introduction to Computer Arithmetic

Radix Conversion ExampleXI = 34610 s=10 d =3

5 4 3 2 1 0

10 10

1 3 1 3 0 3 2 3 1 3 1 3

[243 81 18 3 1] 346

Fixed-point Decimal to Ternary Integer Conversion, (arithmetic in old radix)

Check by evaluating the radix polynomial

XI = 1102113

Page 24: ECE 8053 Introduction to Computer Arithmetic

Radix Conversion (fractional)Consider the fractional part of the value in d Fixed point system

Thus, PI is the desired digitWe can repeatedly multiply by the d value

1 2 ( 1)1 2 ( 1)

1 1 11 2 3

1

1 12 3

{ [ ( )]}

[ ( )]

m mF d d m d m d

d d d

d F I F

I

F d d

X x x x x

x x x

X P P

P x

P x x

Page 25: ECE 8053 Introduction to Computer Arithmetic

Radix Conversion ExampleXI = 0.29110 s=10 d =5

0.291 5 1.455 1

Fixed-point Decimal to Pentary Fractional Conversion(arithmetic in old radix)

0.29110 is Finite Fraction for s=10, but infinite fraction for d =5

0.455 5 2.275 2 0.275 5 1.375 1 0.375 5 1.875 1 0.875 5 4.375 4 0.375 5 1.875 1 0.875 5 4.375 4

10 50.291 (0.12114141414 )