A method and apparatuses for performing binary multiplication on signed
and unsigned operands of various lengths is discussed herein. It is a
concept that may be split into two parts, the first of which is the
multiplication hardware itself, a compact, less than-full sized
multiplier employing Booth or other type of recoding methods upon the
multiplier to reduce the number of partial products per scan, and
implemented in such a manner so that a multiplication operation with
large operands may be broken into subgroups of operations that will fit
into this mid-sized multiplier whose results, here called modular
products, may be knitted back together to form a correct, final product.
The second part of the concept is the supporting hardware used to
separate the operands into subgroups and input the data and control
signals to the multiplier, and the algorithms and apparatuses used to
align and combine the modular products properly to obtain the final
product. These algorithms used to obtain a result as specified by the
operation may be as varied as the supporting hardware with which the
multiplier may be used, making this multiplier a very flexible and
powerful design.