ece645 lecture8 sequential multipliers...right-shift multiplication algorithm: example . area...

61
Sequential Multipliers Lecture 8

Upload: others

Post on 16-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential Multipliers

Lecture 8

Page 2: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Required Reading

Chapter 9, Basic Multiplication Scheme Chapter 10, High-Radix Multipliers Chapter 12.3, Bit-Serial Multipliers Chapter 12.4, Modular Multipliers

Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design

Page 3: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Notation

a Multiplicand ak-1ak-2 . . . a1 a0 x Multiplier xk-1xk-2 . . . x1 x0 p Product (a ⋅ x) p2k-1p2k-2 . . . p2 p1 p0

If multiplicand and multiplier are of different sizes, usually multiplier has the smaller size

Page 4: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Multiplication of two 4-bit unsigned binary numbers in dot notation

Partial Product 0

Partial Product 1

Partial Product 2

Partial Product 3

Number of partial products = number of bits in multiplier x Bit-width of each partial product = bit-width of multiplicand a

Page 5: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Basic Multiplication Equations

x = ∑ xi ⋅ 2i

i=0

k-1 p = a ⋅ x

p = a ⋅ x = ∑ a ⋅ xi ⋅ 2i =

= x0a20 + x1a21 + x2a22 + … + xk-1a2k-1

i=0

k-1

Page 6: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithm Right-shift version

Page 7: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithms Right-shift algorithm

p = a ⋅ x = x0a20 + x1a21 + x2a22 + … + xk-1a2k-1

= (...((0 + x0a2k)/2 + x1a2k)/2 + ... + xk-1a2k)/2 =

k times

=

p(0) = 0

p = p(k)

p(j+1) = (p(j) + xj a 2k) / 2 j=0..k-1

Page 8: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential shift-and-add multiplier for right-shift algorithm

Page 9: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Right-shift multiplication

algorithm: Example

Page 10: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Page 11: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithms Right-shift algorithm: multiply-add

= (...((y2k + x0a2k)/2 + x1a2k)/2 + ... + xk-1a2k)/2 =

k times

p(0) = y2k

p = p(k)

p(j+1) = (p(j) + xj a 2k) / 2 j=0..k-1

= y + x0a20 + x1a21 + x2a22 + … + xk-1a2k-1 = y + a ⋅ x

Page 12: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Signed Multiplication •  Previous sequential multipliers are for unsigned multiplication •  For signed multiplication:

–  assume sign-extended operation for p(j) + xja –  if 2's complement multiplier is POSITIVE

right-shift sequential algorithms (shift-add) will work directly –  if 2's complement multiplier is NEGATIVE than we must use

"negative weight” for xk-1 and subtract xk-1a in the last cycle •  Slight increase in area due to control and one-bit sign extension on

inputs of adder –  Unsigned: k bit number + k bit number à k+1 bit number –  Signed: k+1 bit sign extended number + k+1 bit sign extended

number à k+1 bit number

Page 13: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential multiplication

of 2’s-complement numbers

with right shifts (positive multiplier)

Page 14: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential multiplication

of 2’s-complement numbers

with right shifts (negative multiplier)

Page 15: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithm Left-shift version

Page 16: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithms Left-shift algorithm

p = a ⋅ x = x0a20 + x1a21 + x2a22 + … + xk-1a2k-1

= (...((0⋅2 + xk-1a)⋅2 + xk-2a)⋅2 + ... + x1a)⋅2 + x0a=

k times

=

p(0) = 0

p = p(k)

p(j+1) = (p(j) ⋅2 + xk-1-ja) j=0..k-1

Page 17: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential shift-and-add multiplier for left-shift algorithm

Left shifts are not as efficient for two's complement because must sign extend multiplicand by k bits

Page 18: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Left-shift multiplication

algorithm: Example

Page 19: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

p(0) = y2-k

p = p(k)

p(j+1) = (p(j) ⋅2 + xk-(j+1)a) j=0..k-1

Shift/Add Algorithms Left-shift algorithm: multiply-add

= (...((y2-k ⋅2 + xk-1a)⋅2 + xk-2a)⋅2 + ... + x1a)⋅2 + x0a =

k times

= y + xk-1a2k-1 + xk-2a2k-2 + … + x1a21 + x0a = y + a ⋅ x

Page 20: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Shift/Add Algorithm Right-shift version

with Carry-Save Adder

Page 21: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential shift-and-add multiplier with a carry save adder

Page 22: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

High-Radix Sequential Multipliers

Page 23: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

High-Radix Notation

a Multiplicand (an-1an-2 . . . a1 a0)r x Multiplier (xn-1xn-2 . . . x1 x0)r p Product (a ⋅ x) (p2n-1p2n-2 . . . p2 p1 p0)r

Page 24: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-4, or two-bit-at-a-time, multiplication in dot notation

Page 25: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Basic Multiplication Equations

x = ∑ xi ⋅ ri

i=0

n-1 p = a ⋅ x

p = a ⋅ x = ∑ a ⋅ xi ⋅ ri =

= x0ar0 + x1a r1 + x2a r2 + … + xn-1a rn-1

i=0

n-1

Page 26: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

High-Radix Shift/Add Algorithms Right-shift high-radix algorithm

p = a ⋅ x = x0ar0 + x1ar1 + x2ar2 + … + xn-1arn-1

= (...((0 + x0arn)/r + x1arn)/r + ... + xn-1arn)/r =

n times

=

p(0) = 0

p = p(n)

p(j+1) = (p(j) + xj a rn) / r j=0..n-1

Page 27: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

High-Radix Shift/Add Algorithms Left-shift high-radix algorithm

p = a ⋅ x = x0ar0 + x1ar1 + x2ar2 + … + xn-1arn-1

= (...((0⋅r + xn-1a)⋅r + xn-2a)⋅r + ... + x1a)⋅r + x0a=

n times

=

p(0) = 0

p = p(n)

p(j+1) = (p(j) ⋅ r + xn-1-ja) j=0..n-1

Page 28: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

The multiple generation part of a radix-4 multiplier with precomputation of 3a

Page 29: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Example of radix-4 multiplication using the 3a multiple

Page 30: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

The multiple generation part of a radix-4 multiplier based on replacing 3a with 4a (carry into next higher radix-4 multiplier

digit) and -a

Page 31: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Higher Radix Multiplication

•  In radix-8, one must precompute 3a, 5a, 7a – Overhead becomes prohibitive and does not

help •  However, when we discuss CSA this may

be useful

Page 32: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-2 Booth Recoding

i j j+1

Page 33: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-2 Booth Recoding

yi = -xi + xi-1

Page 34: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Sequential multiplication of 2’s-complement numbers with

right shifts using Booth’s recoding

Page 35: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Notation

Y Multiplicand ym-1ym-2 . . . y1 y0 X Multiplier xm-1xm-2 . . . x1 x0 P Product (Y ⋅ X ) p2m-1p2m-2 . . . p2 p1 p0

If multiplicand and multiplier are of different sizes, usually multiplier has the smaller size

Page 36: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-4 Booth Recoding

(1) -1 0 1 0 0 -1 1 0 -1 1 -1 1 0 0 -1 0

Page 37: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

zi/2 = -2xi+1 + xi + xi-1

Page 38: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Example radix-4 multiplication with modified Booth’s recoding of the 2’s-complement

multiplier

Page 39: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

The multiple generation part of a radix-4 multiplier based on Booth’s recoding

Page 40: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

High-Radix Multipliers with Carry-Save Adder

Page 41: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-4 multiplication with a carry-save adder used to combine the

cumulative partial product, xia, and 2xi+1a into two numbers

Page 42: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-4 multiplier with a carry-save adder and Booth’s recoding

Page 43: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Booth recoding and multiple selection logic for high-radix multiplication

Page 44: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-4 multiplier with two carry-save adders

Page 45: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Radix-16 multiplier with carry-save adders

Page 46: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Bit-Serial Multipliers

Page 47: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Bit Serial Multipliers Advantages

•  small area

•  reduced pin count

•  reduced wire length

•  high clock rate

Page 48: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Systolic Array

•  Systolic array: synchronous arrays of processing elements that are interconnected by only short, local wires thus allowing very high clock rates

Page 49: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Semisystolic Bit-Serial Multiplier (1)

Page 50: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Semisystolic Bit-Serial Multiplier (2)

a3x0 a2x0 a1x0 a0x0

a3x1 a2x1 a1x1 a0x1

a3x2 a2x2 a1x2 a0x2

a3x3 a2x3 a1x3 a0x3 a3 0 a2 0 a1 0 a0 0

a3 0 a2 0 a1 0 a0 0

a3 0 a2 0 a1 0 a0 0

a3 0 a2 0 a1 0 a0 0

p0

p1

p2

p3

p4

p5

p6 p7

Page 51: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Retiming

d

k k

k+n k+n+d

d k k+d

k+d+n k+d+n

Page 52: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Retimed Semisystolic Bit-Serial Multiplier (1)

Page 53: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Retimed Semisystolic Bit-Serial Multiplier (2)

a3 0 a2 0 a1 0 a0x0

a3 0 a2 0 a1x0 a0x1

a3 0 a2x0 a1x1 a0x2

a3x0 a2x1 a1x2 a0x3 a3 x1 a2x2 a1x3 a0 0

a3 x2 a2x3 a1 0 a0 0

a3x3 a2 0 a1 0 a0 0

a3 0 a2 0 a1 0 a0 0

p0

p1

p2

p3

p4

p5

p6 p7

Page 54: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Systolic Bit-Serial Multiplier

Page 55: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Modular Multipliers

Page 56: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Modular Multiplication

Special Cases

a x

pH pL

a x = p = pH 2k + pL

k bits

a x mod 2k = pL

a x mod 2k-1 = pL + pH + carry

p

a x

a x mod 2k+1 = pL - pH - borrow

Page 57: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Modular Multiplication

Special Case (1)

a x mod 2k-1 = (pH 2k + pL) mod (2k-1) = = (pH (2k mod (2k-1)) + pL) mod (2k-1) = = pH + pL mod (2k-1) = =

pH + pL if pH + pL < 2k - 1

pH + pL - (2k-1) if pH + pL ≥ 2k - 1

= pL + pH + carry

carry = carry from addition pL + pH

Page 58: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Modular Multiplication

Special Case (2)

a x mod 2k+1 = (pH 2k + pL) mod (2k+1) = = (pH (2k+1-1) + pL) mod (2k+1) = = pL - pH mod (2k+1) = =

pL - pH if pL - pH ≥ 0

pL - pH + (2k+1) if pL - pH < 0

= pL - pH + borrow

borrow = borrow from subtraction pL + pH

Page 59: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

Modulo (2b-1) Carry Save Adder

Page 60: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

4 x 4 Modulo 15 Multiplier

Page 61: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm

4 x 4 Modulo 13 Multiplier