SlideShare une entreprise Scribd logo
1  sur  22
ECE/CS 552:
Integer Multipliers
© Prof. Mikko Lipasti
Lecture notes based in part on slides created by Mark
Hill, David Wood, Guri Sohi, John Shen and Jim Smith
Basic Arithmetic and the ALU
2
• Earlier in the semester
• Number representations, 2’s complement,
unsigned
• Addition/Subtraction
• Add/Sub ALU
• Full adder, ripple carry, subtraction
• Carry-lookahead addition
• Logical operations
• and, or, xor, nor, shifts
• Overflow
Basic Arithmetic and the ALU
• Now
– Integer multiplication
• Booth’s algorithm
• This is not crucial for the project
3
Multiplication
• Flashback to 3rd grade
– Multiplier
– Multiplicand
– Partial products
– Final sum
• Base 10: 8 x 9 = 72
– PP: 8 + 0 + 0 + 64 = 72
• How wide is the result?
– log(n x m) = log(n) + log(m)
– 32b x 32b = 64b result
4
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Array Multiplier
• Adding all partial products
simultaneously using an
array of basic cells
5
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Full Adder
Sin Cin Ai Bj
Cout Sout
Ai ,Bj
16-bit Array Multiplier
6
Conceptually straightforward
Fairly expensive hardware, integer multiplies relatively rare
Most used in array address calc: replace with shifts
[Source: J. Hayes,
Univ. of Michigan]
Instead: Multicycle Multipliers
• Combinational multipliers
– Very hardware-intensive
– Integer multiply relatively rare
– Not the right place to spend resources
• Multicycle multipliers
– Iterate through bits of multiplier
– Conditionally add shifted multiplicand
7
Multiplier
8
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Multiplier
9
Done
1. Test
Multiplier0
1a. Add multiplicand to product and
place the result in Product register
2. Shift the Multiplicand register left 1 bit
3. Shift the Multiplier register right 1 bit
32nd repetition?
Start
Multiplier0 = 0
Multiplier0 = 1
No: < 32 repetitions
Yes: 32 repetitions
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Multiplier Improvements
• Do we really need a 64-bit adder?
– No, since low-order bits are not involved
– Hence, just use a 32-bit adder
• Shift product register right on every step
• Do we really need a separate multiplier
register?
– No, since low-order bits of 64-bit product are
initially unused
– Hence, just store multiplier there initially
10
Multiplier
11
Control
test
Write
32 bits
64 bits
Shift right
Product
Multiplicand
32-bit ALU
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Multiplier
12
Done
1. Test
Product0
1a. Add multiplicand to the left half of
the product and place the result in
the left half of the Product register
2. Shift the Product register right 1 bit
32nd repetition?
Start
Product0 = 0
Product0 = 1
No: < 32 repetitions
Yes: 32 repetitions
1 0 0 0
x 1 0 0 1
1 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 1 0 0 0
Signed Multiplication
• Recall
– For p = a x b, if a<0 or b<0, then p < 0
– If a<0 and b<0, then p > 0
– Hence sign(p) = sign(a) xor sign(b)
• Hence
– Convert multiplier, multiplicand to positive number
with (n-1) bits
– Multiply positive numbers
– Compute sign, convert product accordingly
• Or,
– Perform sign-extension on shifts for prev. design
– Right answer falls out
13
Booth’s Encoding
• Recall grade school trick
– When multiplying by 9:
• Multiply by 10 (easy, just shift digits left)
• Subtract once
– E.g.
• 123454 x 9 = 123454 x (10 – 1) = 1234540 – 123454
• Converts addition of six partial products to one shift and one
subtraction
• Booth’s algorithm applies same principle
– Except no ‘9’ in binary, just ‘1’ and ‘0’
– So, it’s actually easier!
14
Booth’s Encoding
• Search for a run of ‘1’ bits in the multiplier
– E.g. ‘0110’ has a run of 2 ‘1’ bits in the middle
– Multiplying by ‘0110’ (6 in decimal) is equivalent to
multiplying by 8 and subtracting twice, since 6 x m = (8 – 2)
x m = 8m – 2m
• Hence, iterate right to left and:
– Subtract multiplicand from product at first ‘1’
– Add multiplicand to product after last ‘1’
– Don’t do either for ‘1’ bits in the middle
15
Booth’s Algorithm
16
Current
bit
Bit to
right
Explanation Example Operation
1 0 Begins run of ‘1’ 00001111000 Subtract
1 1 Middle of run of ‘1’ 00001111000 Nothing
0 1 End of a run of ‘1’ 00001111000 Add
0 0 Middle of a run of ‘0’ 00001111000 Nothing
Booth’s Encoding
• Really just a new way to encode numbers
– Normally positionally weighted as 2n
– With Booth, each position has a sign bit
– Can be extended to multiple bits
17
0 1 1 0 Binary
+1 0 -1 0 1-bit Booth
+2 -2 2-bit Booth
2-bits/cycle Booth Multiplier
• For every pair of multiplier bits
– If Booth’s encoding is ‘-2’
• Shift multiplicand left by 1, then subtract
– If Booth’s encoding is ‘-1’
• Subtract
– If Booth’s encoding is ‘0’
• Do nothing
– If Booth’s encoding is ‘1’
• Add
– If Booth’s encoding is ‘2’
• Shift multiplicand left by 1, then add
18
2 bits/cycle Booth’s
19
Current Previous Operation Explanation
00 0 +0;shift 2 [00] => +0, [00] => +0; 2x(+0)+(+0)=+0
00 1 +M; shift 2 [00] => +0, [01] => +M; 2x(+0)+(+M)=+M
01 0 +M; shift 2 [01] => +M, [10] => -M; 2x(+M)+(-M)=+M
01 1 +2M; shift 2 [01] => +M, [11] => +0; 2x(+M)+(+0)=+2M
10 0 -2M; shift 2 [10] => -M, [00] => +0; 2x(-M)+(+0)=-2M
10 1 -M; shift 2 [10] => -M, [01] => +M; 2x(-M)+(+M)=-M
11 0 -M; shift 2 [11] => +0, [10] => -M; 2x(+0)+(-M)=-M
11 1 +0; shift 2 [11] => +0, [11] => +0; 2x(+0)+(+0)=+0
1 bit Booth
00 +0
01 +M;
10 -M;
11 +0
Booth’s Example
• Negative multiplicand:
-6 x 6 = -36
1010 x 0110, 0110 in Booth’s encoding is +0-0
Hence:
20
1111 1010 x 0 0000 0000
1111 0100 x –1 0000 1100
1110 1000 x 0 0000 0000
1101 0000 x +1 1101 0000
Final Sum: 1101 1100 (-36)
Booth’s Example
• Negative multiplier:
-6 x -2 = 12
1010 x 1110, 1110 in Booth’s encoding is 00-0
Hence:
21
1111 1010 x 0 0000 0000
1111 0100 x –1 0000 1100
1110 1000 x 0 0000 0000
1101 0000 x 0 0000 0000
Final Sum: 0000 1100 (12)
Summary
• Integer multiply
– Combinational
– Multicycle
– Booth’s algorithm
22

Contenu connexe

Similaire à ece552_08_integer_multiply.ppt

Similaire à ece552_08_integer_multiply.ppt (20)

09 arithmetic
09 arithmetic09 arithmetic
09 arithmetic
 
09 arithmetic
09 arithmetic09 arithmetic
09 arithmetic
 
09 arithmetic 2
09 arithmetic 209 arithmetic 2
09 arithmetic 2
 
CA UNIT II.pptx
CA UNIT II.pptxCA UNIT II.pptx
CA UNIT II.pptx
 
Binary Arithmetic
Binary ArithmeticBinary Arithmetic
Binary Arithmetic
 
CA Unit ii
CA Unit iiCA Unit ii
CA Unit ii
 
Booth Multiplier
Booth MultiplierBooth Multiplier
Booth Multiplier
 
Boolean operators
Boolean operatorsBoolean operators
Boolean operators
 
Alu1
Alu1Alu1
Alu1
 
Booth Multiplication.pptx
Booth Multiplication.pptxBooth Multiplication.pptx
Booth Multiplication.pptx
 
ARITHMETIC FOR COMPUTERS
ARITHMETIC FOR COMPUTERS	  ARITHMETIC FOR COMPUTERS
ARITHMETIC FOR COMPUTERS
 
Encoding Schemes for Multipliers
Encoding Schemes for MultipliersEncoding Schemes for Multipliers
Encoding Schemes for Multipliers
 
UNIT - I.pptx
UNIT - I.pptxUNIT - I.pptx
UNIT - I.pptx
 
UNIT - I.pptx
UNIT - I.pptxUNIT - I.pptx
UNIT - I.pptx
 
Decppt
DecpptDecppt
Decppt
 
Comp Arithmetic Basic.ppt
Comp Arithmetic Basic.pptComp Arithmetic Basic.ppt
Comp Arithmetic Basic.ppt
 
2s complement arithmetic
2s complement arithmetic2s complement arithmetic
2s complement arithmetic
 
2.1 data represent on cpu
2.1 data represent on cpu2.1 data represent on cpu
2.1 data represent on cpu
 
data representation
 data representation data representation
data representation
 
Computer Architecture
Computer ArchitectureComputer Architecture
Computer Architecture
 

Plus de AshokRachapalli1

17.INTRODUCTION TO SCHEMA REFINEMENT.pptx
17.INTRODUCTION TO SCHEMA REFINEMENT.pptx17.INTRODUCTION TO SCHEMA REFINEMENT.pptx
17.INTRODUCTION TO SCHEMA REFINEMENT.pptxAshokRachapalli1
 
joins in dbms its describes about how joins are important and necessity in d...
joins in dbms  its describes about how joins are important and necessity in d...joins in dbms  its describes about how joins are important and necessity in d...
joins in dbms its describes about how joins are important and necessity in d...AshokRachapalli1
 
6.Database Languages lab-1.pptx
6.Database Languages lab-1.pptx6.Database Languages lab-1.pptx
6.Database Languages lab-1.pptxAshokRachapalli1
 
inputoutputorganization-140722085906-phpapp01.pptx
inputoutputorganization-140722085906-phpapp01.pptxinputoutputorganization-140722085906-phpapp01.pptx
inputoutputorganization-140722085906-phpapp01.pptxAshokRachapalli1
 
arithmeticmicrooperations-180130061637.pptx
arithmeticmicrooperations-180130061637.pptxarithmeticmicrooperations-180130061637.pptx
arithmeticmicrooperations-180130061637.pptxAshokRachapalli1
 
Computer Network Architecture.pptx
Computer Network Architecture.pptxComputer Network Architecture.pptx
Computer Network Architecture.pptxAshokRachapalli1
 
Computer Network Types.pptx
Computer Network Types.pptxComputer Network Types.pptx
Computer Network Types.pptxAshokRachapalli1
 
dataencoding-150701201133-lva1-app6891.pptx
dataencoding-150701201133-lva1-app6891.pptxdataencoding-150701201133-lva1-app6891.pptx
dataencoding-150701201133-lva1-app6891.pptxAshokRachapalli1
 

Plus de AshokRachapalli1 (20)

17.INTRODUCTION TO SCHEMA REFINEMENT.pptx
17.INTRODUCTION TO SCHEMA REFINEMENT.pptx17.INTRODUCTION TO SCHEMA REFINEMENT.pptx
17.INTRODUCTION TO SCHEMA REFINEMENT.pptx
 
joins in dbms its describes about how joins are important and necessity in d...
joins in dbms  its describes about how joins are important and necessity in d...joins in dbms  its describes about how joins are important and necessity in d...
joins in dbms its describes about how joins are important and necessity in d...
 
6.Database Languages lab-1.pptx
6.Database Languages lab-1.pptx6.Database Languages lab-1.pptx
6.Database Languages lab-1.pptx
 
Chapter5 (1).ppt
Chapter5 (1).pptChapter5 (1).ppt
Chapter5 (1).ppt
 
Cache Memory.pptx
Cache Memory.pptxCache Memory.pptx
Cache Memory.pptx
 
Addressing Modes.pptx
Addressing Modes.pptxAddressing Modes.pptx
Addressing Modes.pptx
 
inputoutputorganization-140722085906-phpapp01.pptx
inputoutputorganization-140722085906-phpapp01.pptxinputoutputorganization-140722085906-phpapp01.pptx
inputoutputorganization-140722085906-phpapp01.pptx
 
NOV11 virtual memory.ppt
NOV11 virtual memory.pptNOV11 virtual memory.ppt
NOV11 virtual memory.ppt
 
lec16-memory.ppt
lec16-memory.pptlec16-memory.ppt
lec16-memory.ppt
 
lecture-17.ppt
lecture-17.pptlecture-17.ppt
lecture-17.ppt
 
arithmeticmicrooperations-180130061637.pptx
arithmeticmicrooperations-180130061637.pptxarithmeticmicrooperations-180130061637.pptx
arithmeticmicrooperations-180130061637.pptx
 
instruction format.pptx
instruction format.pptxinstruction format.pptx
instruction format.pptx
 
Computer Network Architecture.pptx
Computer Network Architecture.pptxComputer Network Architecture.pptx
Computer Network Architecture.pptx
 
Computer Network Types.pptx
Computer Network Types.pptxComputer Network Types.pptx
Computer Network Types.pptx
 
dataencoding-150701201133-lva1-app6891.pptx
dataencoding-150701201133-lva1-app6891.pptxdataencoding-150701201133-lva1-app6891.pptx
dataencoding-150701201133-lva1-app6891.pptx
 
Flow Control.pptx
Flow Control.pptxFlow Control.pptx
Flow Control.pptx
 
Chapter4.ppt
Chapter4.pptChapter4.ppt
Chapter4.ppt
 
intro22.ppt
intro22.pptintro22.ppt
intro22.ppt
 
osi.ppt
osi.pptosi.ppt
osi.ppt
 
switching.pptx
switching.pptxswitching.pptx
switching.pptx
 

Dernier

Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 

Dernier (20)

Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 

ece552_08_integer_multiply.ppt

  • 1. ECE/CS 552: Integer Multipliers © Prof. Mikko Lipasti Lecture notes based in part on slides created by Mark Hill, David Wood, Guri Sohi, John Shen and Jim Smith
  • 2. Basic Arithmetic and the ALU 2 • Earlier in the semester • Number representations, 2’s complement, unsigned • Addition/Subtraction • Add/Sub ALU • Full adder, ripple carry, subtraction • Carry-lookahead addition • Logical operations • and, or, xor, nor, shifts • Overflow
  • 3. Basic Arithmetic and the ALU • Now – Integer multiplication • Booth’s algorithm • This is not crucial for the project 3
  • 4. Multiplication • Flashback to 3rd grade – Multiplier – Multiplicand – Partial products – Final sum • Base 10: 8 x 9 = 72 – PP: 8 + 0 + 0 + 64 = 72 • How wide is the result? – log(n x m) = log(n) + log(m) – 32b x 32b = 64b result 4 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
  • 5. Array Multiplier • Adding all partial products simultaneously using an array of basic cells 5 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 Full Adder Sin Cin Ai Bj Cout Sout Ai ,Bj
  • 6. 16-bit Array Multiplier 6 Conceptually straightforward Fairly expensive hardware, integer multiplies relatively rare Most used in array address calc: replace with shifts [Source: J. Hayes, Univ. of Michigan]
  • 7. Instead: Multicycle Multipliers • Combinational multipliers – Very hardware-intensive – Integer multiply relatively rare – Not the right place to spend resources • Multicycle multipliers – Iterate through bits of multiplier – Conditionally add shifted multiplicand 7
  • 8. Multiplier 8 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
  • 9. Multiplier 9 Done 1. Test Multiplier0 1a. Add multiplicand to product and place the result in Product register 2. Shift the Multiplicand register left 1 bit 3. Shift the Multiplier register right 1 bit 32nd repetition? Start Multiplier0 = 0 Multiplier0 = 1 No: < 32 repetitions Yes: 32 repetitions 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
  • 10. Multiplier Improvements • Do we really need a 64-bit adder? – No, since low-order bits are not involved – Hence, just use a 32-bit adder • Shift product register right on every step • Do we really need a separate multiplier register? – No, since low-order bits of 64-bit product are initially unused – Hence, just store multiplier there initially 10
  • 11. Multiplier 11 Control test Write 32 bits 64 bits Shift right Product Multiplicand 32-bit ALU 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
  • 12. Multiplier 12 Done 1. Test Product0 1a. Add multiplicand to the left half of the product and place the result in the left half of the Product register 2. Shift the Product register right 1 bit 32nd repetition? Start Product0 = 0 Product0 = 1 No: < 32 repetitions Yes: 32 repetitions 1 0 0 0 x 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
  • 13. Signed Multiplication • Recall – For p = a x b, if a<0 or b<0, then p < 0 – If a<0 and b<0, then p > 0 – Hence sign(p) = sign(a) xor sign(b) • Hence – Convert multiplier, multiplicand to positive number with (n-1) bits – Multiply positive numbers – Compute sign, convert product accordingly • Or, – Perform sign-extension on shifts for prev. design – Right answer falls out 13
  • 14. Booth’s Encoding • Recall grade school trick – When multiplying by 9: • Multiply by 10 (easy, just shift digits left) • Subtract once – E.g. • 123454 x 9 = 123454 x (10 – 1) = 1234540 – 123454 • Converts addition of six partial products to one shift and one subtraction • Booth’s algorithm applies same principle – Except no ‘9’ in binary, just ‘1’ and ‘0’ – So, it’s actually easier! 14
  • 15. Booth’s Encoding • Search for a run of ‘1’ bits in the multiplier – E.g. ‘0110’ has a run of 2 ‘1’ bits in the middle – Multiplying by ‘0110’ (6 in decimal) is equivalent to multiplying by 8 and subtracting twice, since 6 x m = (8 – 2) x m = 8m – 2m • Hence, iterate right to left and: – Subtract multiplicand from product at first ‘1’ – Add multiplicand to product after last ‘1’ – Don’t do either for ‘1’ bits in the middle 15
  • 16. Booth’s Algorithm 16 Current bit Bit to right Explanation Example Operation 1 0 Begins run of ‘1’ 00001111000 Subtract 1 1 Middle of run of ‘1’ 00001111000 Nothing 0 1 End of a run of ‘1’ 00001111000 Add 0 0 Middle of a run of ‘0’ 00001111000 Nothing
  • 17. Booth’s Encoding • Really just a new way to encode numbers – Normally positionally weighted as 2n – With Booth, each position has a sign bit – Can be extended to multiple bits 17 0 1 1 0 Binary +1 0 -1 0 1-bit Booth +2 -2 2-bit Booth
  • 18. 2-bits/cycle Booth Multiplier • For every pair of multiplier bits – If Booth’s encoding is ‘-2’ • Shift multiplicand left by 1, then subtract – If Booth’s encoding is ‘-1’ • Subtract – If Booth’s encoding is ‘0’ • Do nothing – If Booth’s encoding is ‘1’ • Add – If Booth’s encoding is ‘2’ • Shift multiplicand left by 1, then add 18
  • 19. 2 bits/cycle Booth’s 19 Current Previous Operation Explanation 00 0 +0;shift 2 [00] => +0, [00] => +0; 2x(+0)+(+0)=+0 00 1 +M; shift 2 [00] => +0, [01] => +M; 2x(+0)+(+M)=+M 01 0 +M; shift 2 [01] => +M, [10] => -M; 2x(+M)+(-M)=+M 01 1 +2M; shift 2 [01] => +M, [11] => +0; 2x(+M)+(+0)=+2M 10 0 -2M; shift 2 [10] => -M, [00] => +0; 2x(-M)+(+0)=-2M 10 1 -M; shift 2 [10] => -M, [01] => +M; 2x(-M)+(+M)=-M 11 0 -M; shift 2 [11] => +0, [10] => -M; 2x(+0)+(-M)=-M 11 1 +0; shift 2 [11] => +0, [11] => +0; 2x(+0)+(+0)=+0 1 bit Booth 00 +0 01 +M; 10 -M; 11 +0
  • 20. Booth’s Example • Negative multiplicand: -6 x 6 = -36 1010 x 0110, 0110 in Booth’s encoding is +0-0 Hence: 20 1111 1010 x 0 0000 0000 1111 0100 x –1 0000 1100 1110 1000 x 0 0000 0000 1101 0000 x +1 1101 0000 Final Sum: 1101 1100 (-36)
  • 21. Booth’s Example • Negative multiplier: -6 x -2 = 12 1010 x 1110, 1110 in Booth’s encoding is 00-0 Hence: 21 1111 1010 x 0 0000 0000 1111 0100 x –1 0000 1100 1110 1000 x 0 0000 0000 1101 0000 x 0 0000 0000 Final Sum: 0000 1100 (12)
  • 22. Summary • Integer multiply – Combinational – Multicycle – Booth’s algorithm 22