multiplication 1101 multiplicand - university of...

49
Multiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier

Upload: trinhthien

Post on 25-May-2018

242 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplication

1101 0101 1101 0000 1101 0000 1000001

X

multiplicand

multiplier

Page 2: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplication

1101 1101 11010 110100 1101000 1000001

multiplicand

multiplier

0 1 0 1

Shift by 0

Shift by 1

Shift by 2

Shift by 3

Include term

MSB

Page 3: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplication 1101 00000000 + 1101 =00001101 + 00000 =00001101 + 110100 =1000001 +0000000 =01000001

multiplicand

multiplier

0 1 0 1

RUNNING PRODUCT

Page 4: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Algorithm prod = 0 N = 32

while (N > 0)

{

if (Mier & 1) prod += Mand; Mier >>= 1; Mand <<= 1; N--;

}

Page 5: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier: Take #1

prod

Mand

0 Mier

Shift

Shift

2N

2N

2N adder

Page 6: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier: Take #2

0

Shift

N

N

N adder

C

Shift

N

Mier

Mand

Prod

Page 7: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier: Initial State

0

0 0 0 0 Shift

N

N

N adder

0

Shift

N

0 1 0 1

0 0 0 0

1 1 0 1

Mier

Mand

Prod

Page 8: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 1: Add Mand to Prod

0

0 0 0 0 Shift

N

N

N adder

0

Shift

N

0 1 0 1

1 1 0 1

1 1 0 1

Mier

Mand

Prod

Page 9: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 1: Shift Prod and Mier

0

1 0 0 0 Shift

N

N

N adder

0

Shift

N

0 0 1 0

0 1 1 0

1 1 0 1

Mier

Mand

Prod

Page 10: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 2: Add Mand to Prod

0

1 0 0 0 Shift

N

N

N adder

0

Shift

N

0 0 1 0

0 1 1 0

1 1 0 1

Mier

Mand

Prod

Page 11: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 2: Shift Prod and Mier

0

0 1 0 0 Shift

N

N

N adder

0

Shift

N

0 0 0 1

0 0 1 1

1 1 0 1

Mier

Mand

Prod

Page 12: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 3: Add Mand to Prod

0

0 1 0 0 Shift

N

N

N adder

1

Shift

N

0 0 0 1

0 0 0 0

1 1 0 1

Mier

Mand

Prod

Page 13: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 3: Shift Prod and Mier

0

0 0 1 0 Shift

N

N

N adder

0

Shift

N

0 0 0 0

1 0 0 0

1 1 0 1

Mier

Mand

Prod

Page 14: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 4: Add Mand to Prod

0

0 0 1 0 Shift

N

N

N adder

0

Shift

N

0 0 0 0

1 0 0 0

1 1 0 1

Mier

Mand

Prod

Page 15: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Step 4: Shift Prod and Mier

0

0 0 0 1 Shift

N

N

N adder

0

Shift

N

0 0 0 0

0 1 0 0

1 1 0 1

Mier

Mand

Prod

Page 16: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Take #2: How it works

Iteration Step Carry Prod Mier

0 Initial Value 0 0000 0000 0101

1 Add + Mult 0 1101 0000 0101

Shift 0 0110 1000 0010

2 Add+Mult 0 0110 1000 0010

Shift 0 0011 0100 0001

3 Add+Mult 1 0000 0100 0001

Shift 0 1000 0010 0000

4 Add+Mult 0 1000 0010 0000

Shift 0 0100 0001 0000

Page 17: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Low Prod and Mier can be merged

0

0 1 0 0 Shift

N

N

N adder

1

Shift

N

0 0 0 1

0 0 0 0

1 1 0 1

Mier

Mand

Prod useful

empty

Page 18: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier: Take #2

A

Mand

0

Q

Shift N

N

N adder

C

Shift Initially = Mier

Initially = 0

N

Page 19: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Array

1101 1101 11010 110100 1101000 1000001

multiplicand

multiplier

0 1 0 1

Include term

MSB

Page 20: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Array

1101 1101 11010 110100 1101000 1000001

multiplicand

multiplier

0 1 0 1

MSB

Page 21: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Array 1 1 0 1

multiplicand

0 1 0 1

MSB

multiplier 0

0 0 0 0

FA

Mandj

Mieri

Cin Cout

Partial Product(i+1)k

Partial Product(i)k

0

0

0

Page 22: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication
Page 23: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multipler Array Example

Page 24: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Array Critical Path?

Page 25: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Multiplier Array Critical Path

Page 26: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

A + B + C

•A = 0 1 0 1 (5) •B = 0 1 1 0 (6) •C = 0 0 1 1 (3) •A + B + C = 1110 (14)

Page 27: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Carry Save Adder: A + B

0 1 0 1 + 0 1 1 0 0 0 1 1 0 1 0 0

SUM

CARRY No need to propagate Carry

Page 28: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Redudant Representation • Represent a number with two bits per digit • (Sum, Carry)

–(1,0)(1,0)(1,0)(0,0) –1 1 1 0

• How about this:

–(1,0)(0,0)(1,0)(0,1)? –1100

Page 29: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Carry Save Adder: (A+B) + C

0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1

A + B

C

SUM

CARRY

Which number is this?

1110

Page 30: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Carry Save Adder Multiplier Array

Page 31: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Wallace Tree • Addition done hierarchically

– Groups of 3 partial products added in parallel – Produce (sum, carry) – (sum, carry) + another output

Page 32: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Signed Number Multiplication

1101 (-3) Mand 0101 (5) Mier 1111101 000000 11101 0000 11110001 (-15)

Page 33: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Signed Number Multiplication

111001 (-7) Mand 001110 (14) Mier 00000000000 1111111001 111111101 11111101 11110011110 (-98)

Page 34: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

And now for something different • Recall:

– A x (B + C) = A x B + A x C • 14 = 16 – 2 • 001110 = 010000 - 000010

001110 010000 000010

Page 35: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Signed Number Multiplication 111001 (-7) Mand 010010 (14) Mier 00000000000 0000000111 000000000 00000000 1111001 11110011110 (-98)

+ -

Inverse of -7

Skip these and do a shift by 2

Booth’s Multiplication

Page 36: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Booth Encoding 001110000111111000000 010010001000001000000 000111111111000011110 001000000001000100010 010101010101010101010 11111111111111111111

+ + - -

+ + - -

+ + + + + + + + + + - - - - - - - - - -

Page 37: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Booth Encoding Generation

Page 38: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

2-bit Booth Recoding • 0 1 1 0 0 0 0 1 1 • 0 0 1 1 0 0 0 0 1 1 0 Implied 0, always

Sign-extension

-1x +1x +0x -1x

+1x

Page 39: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

2-bit Booth Recoding • 1 0 1 1 1 (-9) • 1 1 0 1 1 1 0 Implied 0, always

Sign-extension

-1x +2x

-1x

Page 40: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Bit-Pair Booth Recoding Example

Page 41: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Generating the bit-pair Recording

Page 42: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Division

Page 43: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Simple Divisor

Page 44: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Divisor Operation • Steps for restoring division: • 1. Subtract divisor from current remainder • 2. Test the new remainder:

– 1. If positive put a 1 in the quotient – 2. If negative put a 0 in the quotient and add the divisor

back to the remainder to “restore” it back to its original value.

• 3. Shift the quotient and dividend left by 1 bit  • 4. Repeat until all bits in the dividend are

consumed. • Restoring Division:

– Divisor is added back when larger than remainder

Page 45: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Restoring Division Example

Page 46: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Non-Restoring Division • If R is negative we add D to restore value • Can we avoid this? • At each step we want to do: R – D • When negative we do: R – D + D • Then shift left: 2 x R • Then subtract D: 2xR – D • What if we don’t restore: R – D • Shift: 2x(R – D) = 2xR – 2xD • And we want 2xR – D • What to do? (2xR – 2xD) + D

Page 47: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Non-Restoring Division Example

Page 48: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

SRT Division Pointer • Sweeney, Robertson, and Tocher Division • SRT is essentially the same as non-restoring

division, but is performed in a higher radix: – SRT guesses several digits of the quotient at a time – SRT has pre-computed tables that allow it to find the

right bits depending on remainder and divisor – Like non-restoring, if it overshoots, it makes up for it in

following cycles

Page 49: Multiplication 1101 multiplicand - University of Torontomoshovos/ECE352-2015/multiply.pdfMultiplication 1101 0101 1101 0000 1101 0000 1000001 X multiplicand multiplier Multiplication

Prof. Natalie Enright Jerger