Title: Integer Arithmetic
1Topics
- Integer Arithmetic
- Floating Point Representation
- Floating Point Arithmetic
22s Complement Integers
32s Complement Addition/Subtraction
A B ? A
What is Overflow? How is it identified?
4Unsigned Integer Multiplication
5Unsigned Integer Multiplication
Q x M ? AQ
6Unsigned Integer Multiplication Flow Diagram
72s Comp MultiplicationBooths Algorithm
Add one extra bit to the Q register
Q-1
82s Comp MultiplicationBooths Algorithm
Q-1
92s Comp MultiplicationBooths Algorithm
10Booth (7) x (3)
- A Q M
- 3 7
- 0000 0011 0 0111
- --------------------
- 1001 0011 0 0111 A lt- (A - M) 1st
- 1100 1001 1 0111 Shift
- --------------------
- 2nd
- 1110 0100 1 0111 Shift
- --------------------
- 0101 0100 1 0111 A lt- (A M) 3rd
- 0010 1010 0 0111 Shift
- --------------------
- 4th
- 0001 0101 0 0111 Shift
- --------------------
11Booth (7) x (-3)
- A Q M
- -3 7
- 0000 1101 0 0111
- --------------------
- 1001 1101 0 0111 A lt- (A - M) 1st
- 1100 1110 1 0111 Shift
- --------------------
- 0011 1110 1 0111 A lt- (A M) 2nd
- 0001 1111 0 0111 Shift
- --------------------
- 1010 1111 0 0111 A lt- (A - M) 3rd
- 1101 0111 1 0111 Shift
- --------------------
- 4th
- 1110 1011 1 0111 Shift
- --------------------
12Booth (-7) x (3)
- A Q M
- 3 -7
- 0000 0011 0 1001
- --------------------
- 0111 0011 0 1001 A lt- (A - M) 1st
- 0011 1001 1 1001 Shift
- --------------------
- 2nd
- 0001 1100 1 1001 Shift
- --------------------
- 1010 1100 1 1001 A lt- (A M) 3rd
- 1101 0110 0 1001 Shift
- --------------------
- 4th
- 1110 1011 0 1001 Shift
- --------------------
13Booth (-7) x (-3)
- A Q M
- -3 -7
- 0000 1101 0 1001
- --------------------
- 0111 1101 0 1001 A lt- (A - M) 1st
- 0011 1110 1 1001 Shift
- --------------------
- 1100 1110 1 1001 A lt- (A M) 2nd
- 1110 0111 0 1001 Shift
- --------------------
- 0101 0111 0 1001 A lt- (A - M) 3rd
- 0010 1011 1 1001 Shift
- --------------------
- 4th
- 0001 0101 1 1001 Shift
- --------------------
14Unsigned Integer Division
15Unsigned Integer Division
16Unsigned Integer Division
17Unsigned Integer Division
Divisor ? M Dividend ? Q Quotient in
Q Remainder in A
18What about 2s Comp Division ?
- Can we do something like Booths Algorithm?
- Why might we use Booths Algorithm for
multiplication but not for Division?
19Single 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 E255 and F is nonzero, then V NaN
("Not a Number") - If E255 and F is zero and S is 1, then V -
Infinity - If E255 and F is zero and S is 0, then V
Infinity - If 0ltElt255 then V (-1)S 2 (E-127)
(1.F) (exponent range -127 to 128) - If E0 and F is nonzero, then V (-1)S 2
(-126) (0.F) ("unnormalized" values) - If E0 and F is zero and S is 1, then V - 0
- If E0 and F is zero and S is 0, then V 0
Significand
Note 255 decimal 11111111 in binary (8 bits)
20FP Examples
21Double Precision Floating Point NumbersIEEE
Standard
- 64 bit Double Precision Floating Point Numbers
are stored as - S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFF -
- S Sign 1 bit
- E Exponent 11 bits
- F Fraction 52 bits
- The value V
- If E2047 and F is nonzero, then V NaN
("Not a Number") - If E2047 and F is zero and S is 1, then V -
Infinity - If E2047 and F is zero and S is 0, then V
Infinity - If 0ltElt2047 then V (-1)S 2 (E-1023)
(1.F) (exponent range -1023 to 1024) - If E0 and F is nonzero, then V (-1)S 2
(-1022) (0.F) ("unnormalized" values) - If E0 and F is zero and S is 1, then V - 0
- If E0 and F is zero and S is 0, then V 0
Significand
Note 2047 decimal 11111111111 in binary (11
bits)
2232 bit 2s Complement Integer Numbers
All the Integers from -2,147,483,648 to
2,147,483,647, i.e.
- 2 Gig to 2 Gig-1
2332 bit FP Numbers
24Density of 32 bit FP Numbers
Note ONLY 232 FP numbers are representable
There are only 232 distinct combinations of
bits in 32 bits !
25The Added Denormalized FP Numbers
26Floating Point Addition / Subtraction
- Steps
- 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
27Floating Point Addition/Subraction
28Floating Point Multiplication
- Check for zero
- Multiply significands
- Add exponents
- Normalize
- Overflow/underflow?
29Floating Point Multiplication
30Floating Point Division
- Check for zero
- Divide significands
- Subract exponents
- Normalize
- Overflow/underflow?
31Floating Point Division