Booths
Booths
arithmetic calculations with paper and pencil for signed binary numbers are multiplication is done by a process of successive shift and adds operations
straight forward and are helpful on deriving hardware algorithm. When two Successively accumulate partial products and shift it right. Q multiplier
signed numbers A and B are added are added are subtracted, we find 8 and Qs sign. SC no. of bits in multiplier (magnitude only). SC is
different conditions to consider as described in following table: Addition decremented after forming each partial product. When SC is 0, process
(subtraction) algorithm: when the signs of A and B are identical halts and final product is formed. B multiplicand, Bs sign Sum of A
(different), add magnitudes and attach the sign of A to result. When the and B forms a partial product
signs of A and b are different (identical), compare the magnitudes and
subtract the smaller form larger
Array Multiplier Checking the bits of the multiplier one at a time and
forming partial products is a sequential operation requiring sequence of add
and shift microoperations . The multiplication of two binary numbers can
be done with one microoperation by using combinational circuit that forms
product bits all at once. This is a fast way of multiplying two numbers since
all it takes is the time to propagate through the gates that form the
multiplication array. Consider multiplication of two 2-bit numbers:
Multiplicand = b1b0, Multiplier = a1a0, Product = c3c2c1c0
Booth multiplication Algorithm Booth algorithm gives a procedure for Division Algorithms Division of fixed-point binary numbers in signed-
multiplying binary integers in signed 2’s complement notation. magnitude representation is done with successive compare, shift and
Inspiration: String of 1’s in the multiplier from bit weight 2k to weight 2m subtract operations.
can be treated as 2k+1-2m . As an example, binary number 001110 (+14) Hardware Implementation for Signed-Magnitude Data While implementing
has string of 1’s from 23 to 21 (k=3, m=1). So, this number can be division in digital system, we adopt slightly different approach. Instead of
represented as 2k+1 - 2m= 24 - 21 = 16 – 2 = 14 (case is similar for -14 shifting divisor right, the partial remainder (or dividend) is shifted left.
(110010) = -24 +22 -21 ). Thus, M * 14 = M * 24 – M * 2 1 ; product can Hardware is similar to multiplication algorithm (not booth). Register EAQ
be obtained by shifting multiplicand M four times left and subtracted M is now shifted left with 0 inserted into Qn (Obviously, previous value of E
shifted left once. As in other multiplication schemes, Booth algorithm also is lost). (I am not redrawing the diagram guys, it’s all same as
requires examination of multiplier bits and shifting of the partial product. multiplication but EAQ is shifted left so change the direction of arrows at
Prior to shifting multiplicand may be: Subtracted <-- upon the encountering bottom).
first least significant 1 in the string of 1’s in the multiplier.
Added <-- upon encountering first 0 (left of it must be 1) in string of 0’s in Divide Overflow Division operation may result in a quotient with an
the multiplier. overflow when working with finite size registers. Storing divisor in n-bit
Unchanged <-- when multiplier bit (Qn) is identical to previous multiplier resister and dividend in 2 n-bit registers, then if quotient occupies n+1 bits,
bit (Qn+1) we say divide-overflow has occurred (since n+1 bit quotient can not be
stored in standard n-bit Qregister and/or memory word). Talking about
special case: size (dividend) = 2 * size (divisor). Divide-overflow condition
will occur if high-order half bits of the dividend >= divisor. This condition
is detected by DVF (Divide-overflow Flip-flop
Handling of overflow: its programmer’s responsibility to detect DVF and
take corrective measure. The best way is to use floating point data