US 7,490,121 B2
Modular binary multiplier for signed and unsigned operands of variable widths
Fadi Y. Busaba, Poughkeepsie, N.Y. (US); Steven R. Carlough, Poughkeepsie, N.Y. (US); David S. Hutton, Poughkeepsie, N.Y. (US); Christopher A. Krygowski, LaGrangeville, N.Y. (US); John G. Rell, Jr., Saugerties, N.Y. (US); and Sheryll H. Veneracion, Poughkeepsie, N.Y. (US)
Assigned to International Business Machines Corporation, Armonk, N.Y. (US)
Filed on May 16, 2007, as Appl. No. 11/749,239.
Application 11/749239 is a division of application No. 10/435976, filed on May 12, 2003, granted, now 7,266,580.
Prior Publication US 2007/0214205 A1, Sep. 13, 2007
Int. Cl. G06F 7/52 (2006.01)
U.S. Cl. 708—625 14 Claims
OG exemplary drawing
 
1. A method of implementing binary multiplication in a processing device, the method comprising:
inputting a multiplicand and a multiplier from a storage device into a modular binary multiplier device, the modular binary multiplier device further having an input merge register to receive the multiplicand and recording logic configured to receive the multiplier;
in the event the multiplier is larger than a selected length, partitioning the multiplier into a plurality of multiplier subgroups;
in the event the multiplicand is larger than a selected length, partitioning data bits of the multiplicand into first and second multiplicand subgroups and at least one of zeroing out of bits of the second multiplicand subgroup and sign-extending the second multiplicand subgroup;
establishing a plurality of multiplicand multiples based on at least one of a selected multiplicand subgroup of the first and second multiplicand subgroups and the multiplicand;
selecting one or more of the multiplicand multiples of the first and second multiplicand multiples based on the each multiplier subgroup of the plurality of multiplier subgroups; and
generating a first modular product based on the selected multiplicand multiples, and outputting at least the first modular product to combinational logic, the first modular product for use in a processor architecture.