integer arithmetic floating point representation floating point arithmetic

31
• Integer Arithmetic • Floating Point Representation • Floating Point Arithmetic Topics

Upload: breanna-mccall

Post on 31-Dec-2015

42 views

Category:

Documents


2 download

DESCRIPTION

Topics. Integer Arithmetic Floating Point Representation Floating Point Arithmetic. 2’s Complement Integers. 2’s Complement Addition/Subtraction. A + B  A. What is Overflow? How is it identified?. Unsigned Integer Multiplication. Unsigned Integer Multiplication. Q x M  AQ. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

• Integer Arithmetic

• Floating Point Representation

• Floating Point Arithmetic

Topics

Page 2: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

2’s Complement Integers

Page 3: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

2’s Complement Addition/Subtraction

A + B A

What is Overflow? How is it identified?

Page 4: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Multiplication

Page 5: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Multiplication

Q x M AQ

Page 6: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Multiplication Flow Diagram

Page 7: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

2’s Comp MultiplicationBooth’s Algorithm

Q-1

Add one extra bit to the Q register:

Page 8: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

2’s Comp MultiplicationBooth’s Algorithm

Q-1

Page 9: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

2’s Comp MultiplicationBooth’s Algorithm

Page 10: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Booth : (7) x (3)

A Q M

3 7

0000 0011 0 0111

--------------------

1001 0011 0 0111 A <- (A - M) 1st

1100 1001 1 0111 Shift

--------------------

2nd

1110 0100 1 0111 Shift

--------------------

0101 0100 1 0111 A <- (A + M) 3rd

0010 1010 0 0111 Shift

--------------------

4th

0001 0101 0 0111 Shift

--------------------

Page 11: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Booth : (7) x (-3)

A Q M -3 7 0000 1101 0 0111 -------------------- 1001 1101 0 0111 A <- (A - M) 1st 1100 1110 1 0111 Shift -------------------- 0011 1110 1 0111 A <- (A + M) 2nd 0001 1111 0 0111 Shift -------------------- 1010 1111 0 0111 A <- (A - M) 3rd 1101 0111 1 0111 Shift -------------------- 4th 1110 1011 1 0111 Shift --------------------

Page 12: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Booth : (-7) x (3)

A Q M 3 -7 0000 0011 0 1001 -------------------- 0111 0011 0 1001 A <- (A - M) 1st 0011 1001 1 1001 Shift -------------------- 2nd 0001 1100 1 1001 Shift -------------------- 1010 1100 1 1001 A <- (A + M) 3rd 1101 0110 0 1001 Shift -------------------- 4th 1110 1011 0 1001 Shift --------------------

Page 13: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Booth : (-7) x (-3)

A Q M -3 -7 0000 1101 0 1001 -------------------- 0111 1101 0 1001 A <- (A - M) 1st 0011 1110 1 1001 Shift -------------------- 1100 1110 1 1001 A <- (A + M) 2nd 1110 0111 0 1001 Shift -------------------- 0101 0111 0 1001 A <- (A - M) 3rd 0010 1011 1 1001 Shift -------------------- 4th 0001 0101 1 1001 Shift --------------------

Page 14: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Division

Page 15: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Division

Page 16: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Division

Page 17: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Unsigned Integer Division

Divisor M

Dividend Q

Quotient in Q

Remainder in A

Page 18: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

What about 2’s Comp Division ?

• Can we do something like Booth’s Algorithm?

• Why might we use Booth’s Algorithm for multiplication but not for Division?

Page 19: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Single Precision Floating Point NumbersIEEE Standard

32 bit Single Precision Floating Point Numbers are stored as:

S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF S: Sign – 1 bit E: Exponent – 8 bits F: Fraction – 23 bits

The value V:• If E=255 and F is nonzero, then V= NaN ("Not a Number") • If E=255 and F is zero and S is 1, then V= - Infinity • If E=255 and F is zero and S is 0, then V= Infinity • If 0<E<255 then V= (-1)**S * 2 ** (E-127) * (1.F) (exponent range = -127 to +128)• If E=0 and F is nonzero, then V= (-1)**S * 2 ** (-126) * (0.F) ("unnormalized" values”) • If E=0 and F is zero and S is 1, then V= - 0 • If E=0 and F is zero and S is 0, then V = 0

Note: 255 decimal = 11111111 in binary (8 bits)

Significand

Page 20: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

FP Examples

Page 21: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Double Precision Floating Point NumbersIEEE Standard

64 bit Double Precision Floating Point Numbers are stored as:

S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF S: Sign – 1 bit E: Exponent – 11 bits F: Fraction – 52 bits

The value V:• If E=2047 and F is nonzero, then V= NaN ("Not a Number") • If E=2047 and F is zero and S is 1, then V= - Infinity • If E=2047 and F is zero and S is 0, then V= Infinity • If 0<E<2047 then V= (-1)**S * 2 ** (E-1023) * (1.F) (exponent range = -1023 to +1024)• If E=0 and F is nonzero, then V= (-1)**S * 2 ** (-1022) * (0.F) ("unnormalized" values) • If E=0 and F is zero and S is 1, then V= - 0 • If E=0 and F is zero and S is 0, then V= 0 Note: 2047 decimal = 11111111111 in binary (11 bits)

Significand

Page 22: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

32 bit 2’s Complement Integer Numbers

All the Integers from -2,147,483,648 to + 2,147,483,647,

i.e. - 2 Gig to + 2 Gig-1

Page 23: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

32 bit FP Numbers

Page 24: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

“Density” of 32 bit FP Numbers

Note: ONLY 232 FP numbers are representable

There are only 232 distinct combinations of bits in 32 bits !

Page 25: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

The Added Denormalized FP Numbers

Page 26: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Addition / SubtractionSteps:

• Check for zero

• Align the significands (fractions)

• Add or Subtract the significands

• Normalize the Result

Bad Results:

• Exponent Overflow • Exponent Underflow• Significand Overflow• Significand Underflow

Page 27: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Addition/Subraction

Page 28: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Multiplication

1) Check for zero

2) Multiply significands

3) Add exponents

4) Normalize

Overflow/underflow?

Page 29: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Multiplication

Page 30: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Division

1) Check for zero

2) Divide significands

3) Subract exponents

4) Normalize

Overflow/underflow?

Page 31: Integer Arithmetic  Floating Point Representation  Floating Point Arithmetic

Floating Point Division