Title: Multiplication
1Multiplication
2Multiplier Notation
Partial Products Logical-AND
3Shift and Add Paradigm
4Shift and Add Examples
5Programmed Multiplication
6Programmed Multiplication (cont.)
7Hardware Shift and Add (right)
8Hardware Shift and Add
9Hardware Shift and Add (left)
10Signed Number Multiplication(positive case)
11Signed Number Multiplication(negative case)
12Booths Recoding (or encoding)
- Developed for Speeding Up Multiplication in
Early Computers - When a Partial Product of 0 Occurs, Can Skip
Addition and Just Shift - Doesnt Help Multipliers Where Datapaths Go
Through Adder Such as Previous Examples - Does Help Designs for Asynchronous
Implementation or Microprogramming Since
Shifting is Faster Than Addition - Variable Delay Depends on Number of Ones in
- Booth Observed that a String of 1s May be
Replaced as
13Booths Recoding Example
xn xn-1 ... xi xi-1 ... x0
(0)
yixi-1 - xi
yn ... yi ... y0
EXAMPLE
0011110011(0) 0100010101
14Booths Recoding
- Maps Words With Digit Set 0,1 to Those With
-1,1
15Sequential Multiplication
A 1011 (-510) X
1101 (-310) Y 0111
(recoded) (-1) Add A 0101 Shift
00101 (1) Add A 1011
11011 Shift 111011 (-1) Add A
0101 001111 Shift
0001111 (1510)
16Booth Multiplier Example
17Booths Recoding Drawbacks
- Number of add/sub Operations are Variable
- Some Inefficiencies
EXAMPLE 001010101(0)
011111111
- Can Use Modified Booths Recoding to Prevent
- Will Look at This in Later Class
18Sign Extension
- Consider 6-bit 2s Complement Number
- s0 Positive Value s1 Negative Value
- Show Sign Extension Works
- Definition of 2s Complement
19Sign Extension Example
A 010110 (2210) X 001011
(1110) Y 010101 (recoding)
11111101010 (neg. A) 0000000000 (0 A)
111101010 (neg. A) 00000000 (0 A)
0010110 (neg. A) 000000 (0 A)
00011110010 (24210)
20Sign Extension Example
- Same Trick as Before, Complement Original Sign
Bit - Add 1 to Column 5
1 001010 (neg. A) 100000
(0 A) 001010 (neg. A) 100000
(0 A) 110110 (neg. A) 100000
(0 A) 00011110010 (24210)
21Methods for Fast Multiplication
- Reduce Number of Partial Products to be Added
- Group Multiplier Bits Together
- Higher Radix Multiplier
- Add the Partial Products Faster
22Radix-r Shift and Add
23Radix-4 Multiplication
- Shifter is Multi-bit
- No Longer a Simple AND of xi with a
- Need 41 MUX with 0, a, 2a, 3a as Inputs
24Partial Product Selection
- 0, a and 2a are easy
- 3aa2a ? Requies an Adder!
- Need a Way to Compute 3a Efficiently
25Example With 3a Availability
26Computing 3a
- One Way is to Precompute 3a and Store in
Register Initially - Another Way is When 3a Occurs Add -a
- Send Carry of 1 to Next into Next Radix-4 Digit
of Multiplier - Causes Incoming Multiple to be 0,4 Versus
0,3 - 4 Because incoming carry to 112 Causes Digit
1002 - Multiples 0, 1, 2 Handled Easily
- Multiple 3 Converted to 1 With Outgoing Carry
of 1 - Multiple 4 Converted to 0 With Outgoing Carry of
1 - Requires Extra Cycle of Computation Since MSD
May Have Carry
27Example With 3a Availability
28Using Radices gt4
- Could Also Use Radices of 8, 16, ...
- Bit Groupings of Size 3, 4, ...
- Multiple Generation Hardware Becomes More
Complex - Must Precompute 3a, 5a, 7a, ....
- Or Use 3a With a Carry Scheme
- Carry Scheme Converts Multipliers 5a, 6a, 7a
to 3a, -2a, -a, etc. - Carry Digit in This Form Becomes a 1
29Booth Recoding
- Modern Arithmetic Circuits DO NOT Apply Booth
Recoding Directly - Useful in Understanding Higher-radix Versions of
Booth Recoding - No Consecutive 1s or 1s Occur Using
Previously Seen Booth Recoding - Booth Recoding in Radix-4 Results in the
Following - Only Multiples of ?a or ?2a are Required
- These are Easily Obtained Using Shifting and
Complementation
30Modified Booth Recoding
- Booth Recoding Results From xi and xi-1
- Radix-4 Multiplier Digits Implies Booth Recoding
Based on xi1, xi and xi-1 - Similar to Classical Booth Recoding, Modified
Booth Recoding Encodes Multipliers into -2,2
31Modified Booth Recoding
32Example Modified Booth Recoding
33Example Multiplication with MBR
34Hardware MBR Example