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

Integer Arithmetic Floating Point Representation Floating Point Arithmetic

Embed Size (px)

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

Citation preview

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