Generalization of Booth's Algorithm For Efficient Multiplication
Generalization of Booth's Algorithm For Efficient Multiplication
net/publication/259525859
CITATIONS READS
2 2,242
2 authors:
Some of the authors of this publication are also working on these related projects:
HVS based Image Processing and Image analysis using conventional & soft computing techniques View project
All content following this page was uploaded by Barun Biswas on 04 July 2014.
ScienceDirect
Procedia Technology 10 (2013) 304 – 310
Abstract
In this paper we summarize the existing work on classical Booth’s algorithm of multiplication and propose an improved version
of its general form. In Booth’s or modified Booth’s algorithm two bits or three bits are considered at a time in the multiplier.
Here we have shown an approach of using any number of bits of the multiplier. Then we find an optimal value of such bits for
which the complexity of the operation will be minimal.
© 2013
© 2013 The
The Authors.
Authors.Published
PublishedbybyElsevier
ElsevierLtd.
Ltd.
Selection and
Selection and peer-review
peer-review under
under responsibility
responsibilityof
ofthe
theUniversity
UniversityofofKalyani,
Kalyani,Department
DepartmentofofComputer
ComputerScience
Science&&Engineering.
Engineering
Keywords: Multiplication; Multiplier; Multiplicand; Partial Product; LSB; MSB.
1. Introduction
Multiplication, the process of repeated addition is one of the earliest developments of mathematics. It is
commutative and distributive over addition and subtraction. There are several computational approaches for
multiplication.
The two numbers subject to multiplication are called multiplicand and multiplier. Thus the result of
multiplication is the number (product) that would be obtained by adding the multiplicand multiplier number of
times.
Booth's algorithm multiplies two signed binary numbers in two's complement notation. The algorithm was
proposed by A.D Booth in 1951[1]. Booth worked with desk calculators that were faster at shifting than adding and
he employed shift operation to create his fast algorithm for multiplication. This algorithm is of interest in the study
of computer architecture.
Booth’s algorithm is based on four steps on binary numbers. Let the multiplier, multiplicand and partial product
be denoted by M, R and P. In the process an extra 0 is added to the right of the Lowest Significant Bit (LSB) of M
*
Corresponding author
Email: [email protected]
and two multiplier bits from LSB are checked and depending on their values, R is added or subtracted
from P. At end of each step, one bit of the multiplier is shifted to the right until it is zero. The basic conditions and
actions are as follows:
1. if =0 =0, do nothing.
2. if =0 =1, add R to P.
3. if =1 =0, subtract R from P.
4. if =1 =1, do nothing.
The modified Booth’s algorithm was developed for three bits and is based on eight conditions. The operations
are performed on binary numbers. The three multiplier bits are checked and based on their values,
the operations are performed. At the beginning of the process one extra 0 is added to the right of LSB of M and the
multiplier is shifted twice to the right at the end of each step until it becomes 0. The eight conditions and actions are
There exist some articles on modified Booth’s algorithm [1] where multiplier in radix of higher ( >3) power of
two has been employed. But with increasing radix, the rate of producing incorrect results increases. Correction on
the product is needed for accurate results. These changes are needed basically for the real numbers to be multiplied.
2. Basic idea:
We have made a generalization of Booth’s algorithm [4] for any power of two, which is accurate and efficient.
To develop this we have noted that the number of required shifts of the partial product is one less than the number of
bits compared in each step; i.e. if the number of bit of the multiplier is m then the number of shift required to
perform on the partial product is m-1. The total numbers of possible bits combinations are . In the Booth’s
algorithm the total bits combination of the multiplier can be divided into two parts, each part with the number
/2=2݉−1. The all possible operations for one part are the same for the other but opposite; i.e. one part is 1’s
complement of other. If the total number of bits to be consider is m then the numbers start from m 0s and end with
m 1s. So if we divide the total possible combinations into two parts then the highest number in the first part is all 1s
in the bit combination except the Most Significant Bit (MSB). As an example, we consider the following numbers
for m bits
0000…00 // m number of 0s, start of the first part
0000…01
0000…10
.
.
.
.
0111…11 // end of the first part
1000…00 // start of the second part
1000…01
1000…10
1000…11
306 Barun Biswas and Bidyut B Chaudhuri / Procedia Technology 10 (2013) 304 – 310
.
.
.
.
1111…11 // m number of 1s, end of the second part
If we have to compute a generalized Booth algorithm for the m bit multiplier then the operations to be
performed; i.e. the number of multiplicand to be added to the partial product is as follows:
In the above example the operation of one part is same as the other part but opposite. The maximum valued
multiplicand to be added is m; i.e. the number of multiplier bits to be considered. So, in general we can say the
following:
For m bits the possible combination will be 0 to -1, the first part will be from 0 to -1 and the second
part will be from ݐ-1 and for these numbers the operations to be performed are accordingly for i = 1 to 2m
+ j*i for first part and i=2m to 1 - j*i for the second part, where j=1/2.
3. Algorithmic form:
The above process is a generalized form of the classical Booth’s multiplication algorithm. In Booth’s and the
Modified Booth’s algorithm the number of bit of the multiplier is two and three respectively. In this process the
number of bits can be any number n.
Let the multiplicand be R and the multiplier M and the number of bits to be considered be n and the total
number of bits of the multiplier be N and the partial product of the multiplication be A. The proposed algorithmic
form is as follow:
i. Check the multiplier bits. If the MSB is 1 then take the 1’s complement of the multiplier bits say, . If
is odd then add 1 to make +1. Now subtract ( +1)/2*R from the partial product if is odd.
If is even then subtract /2*R from the partial product; i.e. compute
Barun Biswas and Bidyut B Chaudhuri / Procedia Technology 10 (2013) 304 – 310 307
ii. Check the multiplier bits. If the MSB is 0 and the multiplier bit is even ( ) then add /2*R to the
partial product. If the multiplier bit is odd ( ) then add ( +1)/2*R to the partial product; i.e.
compute
Here we need to mention that if the total number of bits in the multiplier is n and the number of bits to be
considered is m, then the total number of pass P will be:
Let us give an example of a multiplier of length 25 bits. The following table (table1) represents the number of
partial product with respect to the different number of bits of the multiplier to be considered during multiplication.
From the table we see that when the number of the bits is low then the partial products are high, but with the
increase of the bits value the number of partial products decrease.
To observe the rate of change of partial product the following graph (Fig. 1.) is drawn from table1. Here X-axis
represents the number of bits of the multiplier to be considered and Y-axis represents the number of partial product.
The blue line represents the number of bits of the multiplier and the red one represents number of partial product for
a certain multiplier. Here we note that after a certain value of multiplier bit partial product gets saturated. Hence we
have to notice that as the number of bits of the multiplier increase the overhead of the operation at each step
increase. Here the crossing of the blue and red line represents the optimal value of the multiplier bit to be considered
for which the operation needed is also optimal. We note that the number of bits equal to 4 and the number of partial
products equal to 7 gives the optimal value. Here we have to mention that this is a special case. The optimal value of
the multiplier bits changes every time with the change of length of the multiplier bits.
308 Barun Biswas and Bidyut B Chaudhuri / Procedia Technology 10 (2013) 304 – 310
Let us illustrate our approach through an example. Here we take a large multiplier and a small multiplicand to
show the gain in the complexity of the algorithm. Thus, we have
=1110000001010001 //11485*5=57425
So, we have obtained the correct result. According to the rules P=4.
In the proposed approach we have seen that with different radix of multiplier the multiplication can be
performed, whereas in the Booth’s process the radix used was either two or three.Hence our process is more flexible
compared to Booth’s and Modified Booth’s algorithm.
Barun Biswas and Bidyut B Chaudhuri / Procedia Technology 10 (2013) 304 – 310 309
Fig 2. : Graph for different partial product for fixed length of multiplier
8. Conclusion:
An approach for multiplication of two numbers has been described in a general from of the classical Booth’s
algorithm framework. Here we need not be concerned with the number of bits of the multiplier. This approach is
more efficient than several approaches of multiplication [2][3][4]. We have noted that for a given number of bits of
the multiplier the operations required by our approach are lowest among these approaches.
References
[1] A. Booth, “A signed binary multiplication technique,” Q. J. Me& Appl. March., vol. 4, pp. 236-240, 19.51
310 Barun Biswas and Bidyut B Chaudhuri / Procedia Technology 10 (2013) 304 – 310
[2] John P. Hayes “Computer architecture and organization”, Second Edition, McGraw-Hill, 1988
[1] M. Morris Mano “Computer System Architecture”, Third Addition, Prentice Hall, 1993.
[2] Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullmant “The design and analysis of computer algorithm” Pearson, 1974.
[3] O.L. MacSorley, “High speed arithmetic in binary computers”, Proc. IRE, Vol. 49, pp. 67-91
[4] Phil E. Madrid, Brian Millar and Earl E. Swartzlander, Jr, “Modified Booth’s algorithm for high radix fixed point multiplication”, IEEE
Transactions on Very Large Scale Integration (VLSI) Systems , Vol. 1, No. 2 June 1993