Decimal multiplication via carry-save addition

Decimal multiplication is important in many commercial applications including financial analysis, banking, tax calculation, currency conversion, insurance, and accounting. We present two novel designs for fixed-point decimal multiplication that utilize decimal carry-save addition to reduce the critical path delay. First, a multiplier that stores a reduced number of multiplicand multiples and uses decimal carry-save addition in the iterative portion of the design is presented. Then, a second multiplier design is proposed with several notable improvements including fast generation of multiplicand multiples that do not need to be stored, the use of decimal (4:2) compressors, and a simplified decimal carry-propagate addition to produce the final product. When multiplying two n-digit operands to produce a 2n-digit product, the improved multiplier design has a worst-case latency of n+4 cycles and an initiation interval of n+1 cycles. Three data-dependent optimizations, which help reduce the multipliers' average latency, are also described. The multipliers presented can be extended to support decimal floating-point multiplication.

[1]  R. K. Richards,et al.  Arithmetic operations in digital computers , 2013 .

[2]  R. P. Brent,et al.  On the Precision Attainable with Various Floating-Point Number Systems , 1972, IEEE Transactions on Computers.

[3]  M.A. Erle,et al.  Potential speedup using decimal floating-point hardware , 2002, Conference Record of the Thirty-Sixth Asilomar Conference on Signals, Systems and Computers, 2002..

[4]  Wilfried Buchholz Fingers or fists? (the choice of decimal or binary representation) , 1959, CACM.

[5]  A. Weinberger,et al.  High Speed Decimal Addition , 1971, IEEE Transactions on Computers.

[6]  Paul L. Richman,et al.  The choice of base , 1969, CACM.

[7]  F.Y. Busaba,et al.  The IBM z900 decimal arithmetic unit , 2001, Conference Record of Thirty-Fifth Asilomar Conference on Signals, Systems and Computers (Cat.No.01CH37256).

[8]  E. F. Harding,et al.  The Universal History of Computing: From the Abacus to the Quantum Computer , 2000 .

[9]  Edward L. Braun,et al.  6 – Arithmetic Operations , 1963 .

[10]  IEEE standard for radix-independent floating-point arithmetic - IEEE standard 854-1987 , 1987 .

[11]  R. W. Hamming,et al.  On the distribution of numbers , 1970, Bell Syst. Tech. J..