Booth Encoding
Booth Encoding
Booth’s algorithm:
Booth‘s algorithm conserves the sign of the end result. While doing multiplication,
strings of 0s in the multiplier call for only shifting. While doing multiplication,
strings of 1s in the multiplier need an operation only at each end. We require to
add or subtract merely at positions in the multiplier where there is a switch from 0
to 1 or from 1 to 0. In the following flow chart we have, b=Multiplier,
a=Multiplicand, m= Product [3]. Now here we will require twice as many bits in
our product as we already have in our two operands. The leftmost bit of our
operands of both the multiplicand and the multiplier is always a sign bit, and can‘t
be used as part of the value. Then choose which operand will be multiplier and
which will be multiplicand. If one operand and both are negative, then they are
represented in two's complement form. Start in on with a product that consists of
the multiplier in the company of an additional X leading zero bits. Now check the
LSB and the previous LSB of product to find out the arithmetic action. Add ‗0‘as
the previous LSB if it is the FIRST pass. [3] Probable arithmetic actions are:
if: 00: no arithmetic operation is performed only shifting is done.
01: add multiplicand to left half part of product and then shifting is done
10: subtract multiplicand from left half part of product and then shifting is
performed
11:no arithmetic operation is performed only shifting is done.
Example:
Consider we want to Multiply 10 by -7 using 5-bit numbers (10-bit result).
Solution:
10 in binary is 01010.
-7 in binary is 11001.
Steps of algorithm are:
Step1: (00000 11001 0) now as last two bits are 10 so here 00000+10110=10110.
Now we get (10110 11001 0), And by ARS (arithmetic right shift) we get
(11011 011001).
Step2: as last two bits are 01 so,11011+01010=00101(carry is ignored as because
addition +ve and –ve numbers cannot overflow). Now we get (00101 01100 1) and
by ARS we get (00010 10110 0).
Step 3: as the last two bits are 00 there is no change only ARS will be done, now
we will get (00001 01011 0).
Step 4: as last two bits are 10 so, 00001+10110=10111, now we will get
(10111 01011 0) and by ARS we will get (11011 10101 1)
Step 5: as last two bits are 11, there is no change only ARS will take place, now we
will get (11101 11010 1).
Step 6: now ignoring the last bit we will get our product that is (11101 11010)=-70
If there were more blocks of 1's and 0's booth will work great. It will require more
calculation if there are more multiples.
Applications:
Booth encoding has a wide range of applications beyond digital signal processing,
microprocessors, and digital signal processors. Here are some additional applications
of Booth encoding:
1. Cryptography: Booth encoding can be used in cryptographic algorithms to
perform fast and secure multiplication of large numbers. Multiplication is a
fundamental operation in many cryptographic algorithms, and Booth encoding
can help to optimize this operation and improve the speed and efficiency of the
algorithm.
2. Communications: Booth encoding can be used in high-speed data
communications systems to perform fast and efficient multiplication of binary
numbers. This can help to improve the performance and reliability of the
communication system, especially in high-bandwidth applications such as video
streaming and online gaming.
3. Image processing: Booth encoding can be used in image processing
applications to perform fast and efficient multiplication of binary numbers. This
can help to improve the speed and accuracy of image processing algorithms,
which are often used in applications such as computer vision, facial recognition,
and object detection.
4. Financial modeling: Booth encoding can be used in financial modeling
applications to perform fast and efficient multiplication of large numbers. This can
help to improve the speed and accuracy of financial models, which are often used
in applications such as risk analysis, portfolio management, and asset pricing.
5. Scientific computing: Booth encoding can be used in scientific computing
applications to perform fast and efficient multiplication of large numbers. This can
help to improve the speed and accuracy of scientific simulations, which are often
used in applications such as computational physics, chemistry, and biology.
Booth encoding can also be combined with other optimization techniques,
such as pipelining, parallelism, and memory hierarchy optimization, to
further improve the performance and efficiency of digital systems. This
combination of techniques is often used in high-performance computing,
embedded systems, and mobile devices, where speed and efficiency are
critical. Therefore, Booth encoding remains an important tool for optimizing
multiplication operations in a wide range of applications and is likely to
continue to be used in future digital systems.
Modified Booth’s algorithm:
The modified Booth's algorithm is an optimization of the Booth's algorithm that
reduces the number of additions/subtractions required. This can improve
performance further and make the multiplication process even faster. It is also
known as the Recursive Booth Algorithm (RBA) or Redundant Booth Algorithm
(RBA).