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

Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

• Integer Arithmetic

• Floating Point Representation

• Floating Point Arithmetic

Topics

Page 2: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

2’s Complement Integers

Page 3: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

Unsigned Integer Multiplication

Page 5: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Unsigned Integer Multiplication

Q x M AQ

Page 6: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Unsigned Integer Multiplication Flow Diagram

Page 7: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

2’s Comp MultiplicationBooth’s Algorithm

Q-1

Page 9: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

2’s Comp MultiplicationBooth’s Algorithm

Page 10: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

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 Topics.

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 Topics.

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 Topics.

Unsigned Integer Division

Page 15: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Unsigned Integer Division

Page 16: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Unsigned Integer Division

Page 17: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

Unsigned Integer Division

Divisor M

Dividend Q

Quotient in Q

Remainder in A

Page 18: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

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 Topics.

FP Examples

Page 21: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

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 Topics.

32 bit FP Numbers

Page 24: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

“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 Topics.

The Added Denormalized FP Numbers

Page 26: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

Floating Point Addition/Subraction

Page 28: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

Floating Point Multiplication

Page 30: Integer Arithmetic Floating Point Representation Floating Point Arithmetic Topics.

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 Topics.

Floating Point Division