Booth's Multiplication Algorithm: Efficient Multiplication of Signed Binary Numbers
Learn how Booth's multiplication algorithm efficiently multiplies signed binary integers in two's complement representation. Understand the steps involved, its advantages in terms of speed and efficiency, and its significance in computer arithmetic.
Booth's Multiplication Algorithm
The Booth algorithm is an efficient method for multiplying two signed binary integers in 2's complement representation. It optimizes the multiplication process, speeding up the calculation. The algorithm works by utilizing sequences of 0's and 1's in the multiplier, with no additional bits required for the 0's, while handling strings of 1's as part of the algorithm's bit manipulation process.
Booth's Multiplication Flowchart
In the Booth's multiplication algorithm, initially, the accumulator (AC) and the Qn + 1 bits are set to 0. The sequence counter (SC) keeps track of the total number of bits in the multiplier (n). The algorithm involves working with the multiplicand (M) and the multiplier (Q), and it is driven by the two bits of the multiplier, Qn and Qn + 1. These bits dictate whether we add or subtract the multiplicand (M) from the accumulator (AC) before performing an arithmetic shift right (ASHR) operation.
Working of the Booth's Algorithm
To begin with:
- The multiplicand (M) and the multiplier (Q) are represented in binary.
- The accumulator (AC) and Qn + 1 are initialized to 0.
- The sequence counter (SC) represents the number of bits in the multiplier and decreases after each iteration until it reaches 0.
- Qn represents the last bit of the multiplier (Q), and Qn+1 represents the bit next to Qn.
On each cycle, the algorithm checks the two bits Qn and Qn + 1. Based on their values, the following steps are taken:
- If Qn and Qn + 1 are 00 or 11, an arithmetic shift right (ASHR) is performed on the accumulator and the multiplier.
- If Qn and Qn + 1 are 01, the multiplicand (M) is added to the accumulator (AC) and an arithmetic right shift is performed.
- If Qn and Qn + 1 are 10, the multiplicand (M) is subtracted from the accumulator (AC) and an arithmetic right shift is performed.
The operation continues until the sequence counter reaches 0, and the result is stored in the accumulator (AC) and the multiplier (Q).
Booth's Algorithm Methods
There are two methods used in Booth's Algorithm for shifting:
- RSC (Right Shift Circular): The right-most bit of the binary number is shifted to the beginning of the binary sequence.
- RSA (Right Shift Arithmetic): The binary number is added together and the result is shifted right by 1 bit position.
Example 1: Multiplying 7 and 3
To multiply the numbers 7 and 3 using Booth's algorithm, we first convert them into binary:
- 7 in binary: 0111
- 3 in binary: 0011
Here, the multiplicand (M) is 7, and the multiplier (Q) is 3. The sequence count (SC) is 4 (since we have 4 bits), and the cycles of the algorithm will run SC times.
Qn | Qn+1 | AC | Q | SC |
---|---|---|---|---|
1 | 0 | 0000 | 0011 | 4 |
1 | 0 | 1001 | 1001 | 3 |
1 | 1 | 1100 | 1001 | 2 |
0 | 1 | 0111 | 0101 | 1 |
0 | 0 | 0010 | 1010 | 0 |
The final result is 7 x 3 = 21. The binary representation of 21 is 10101, and in 4-bit format, it is 00010101.
Example 2: Multiplying 23 and -9
Now, let's use Booth's algorithm to multiply 23 and -9. First, we convert the numbers into binary:
- 23 in binary: 010111
- -9 in binary: 110111 (2's complement)
Qn | Qn+1 | AC | Q | SC |
---|---|---|---|---|
0 | 0 | 000000 | 110111 | 6 |
1 | 0 | 101001 | 101001 | 5 |
1 | 1 | 110100 | 111011 | 4 |
1 | 1 | 111010 | 011101 | 3 |
1 | 0 | 111101 | 001110 | 2 |
0 | 1 | 010111 | 010100 | 1 |
1 | 1 | 111001 | 100011 | 0 |
The result is 23 x -9 = -207. The 2's complement of 111100110001 gives the binary result of 00001100111.