This Article 
 Bibliographic References 
 Add to: 
FPU Implementations with Denormalized Numbers
July 2005 (vol. 54 no. 7)
pp. 825-836
Denormalized numbers are the most difficult type of numbers to implement in floating-point units. They are so complex that certain designs have elected to handle them in software rather than in hardware. Traps to software can result in long execution times, which renders denormalized numbers useless to programmers. This does not have to happen. With a small amount of additional hardware, denormalized numbers and underflows can be handled close to the speed of normalized numbers. This paper will summarize the little known techniques for handling denormalized numbers. Most of the techniques described here only appear in filed or pending patent applications.

[1] “IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Std 754-1985,” The Inst. of Electrical and Electronic Engineers, Inc., New York, Aug. 1985.
[2] R. Yu and G. Zyner, “167 MHz Radix-4 Floating Point Multiplier,” Proc. 12th Symp. Computer Arithmetic, pp. 149-154, July 1995.
[3] A. Naini, A. Dhablania, W. James, and D.D. Sarma, “1-GHz HAL SPARC65 Dual Floating Point Unit with RAS Features,” Proc. 15th Symp. Computer Arithmetic, pp. 173-183, June 2001.
[4] M. Schmookler, M. Putrino, A. Mather, J. Tyler, H. Nguyen, C. Roth, M. Pham, J. Lent, and M. Sharma, “A Low-Power, High-Speed Implementation of a PowerPC Microprocessor Vector Extension,” Proc. 14th Symp. Computer Arithmetic, pp. 12-19, Apr. 1999.
[5] E.M. Schwarz, M.S. Schmookler, and S.D. Trong, “Hardware Implementations of Denormalized Numbers,” Proc. 16th Symp. Computer Arithmetic, pp. 70-78, June 2003.
[6] I. Corp., “Intel Itanium Architecture Sofware Developer's Manual Volume 1 Application Architecture,” design/Itanium/ Downloads24531703s.pdf, Dec. 2001.
[7] M.D.V. Dyke-Lewis and W. Meeker, “Method and Apparatus for Performing Fast Floating Point Operations,” US Patent No. 5,966,085, p. 7, 12 Oct. 1999
[8] The PowerPC Architecture: A Specification for a New Family of RISC Processors, C. May, E. Silha, R. Simpson, and H. Warren, eds. San Francisco: Morgan Kaufman, 2002.
[9] I. Corp., “IA-32 Intel Architecture Sofware Developer's Manual Volume 1 Basic Architecture,” Pentium4/ manuals24547008.pdf, 1997
[10] “z/Architecture Principles of Operation,” Order No. SA22-7832-1, available through IBM branch offices, Oct. 2001.
[11] “Enterprise Systems Architecture/390 Principles of Operation,” Order No. SA22-7201-5, available through IBM branch offices, Sept. 1998.
[12] S. Vassiliadis, E.M. Schwarz, and D.J. Hanrahan, “A General Proof for Overlapped Multiple-Bit Scanning Multiplications,” IEEE Trans. Computers, vol. 38, no. 2, pp. 172-183, Feb. 1989.
[13] T. Williams, “Method and Apparatus for Multiplying Denomalised Binary Floating Point Numbers without Additional Delay,” US Patent No. 5,347,481, p. 16, 13 Sept. 1994.
[14] C.A. Krygowski and E.M. Schwarz, “Floating Point Multiplier for De-Normalized Inputs,” US Patent Application No. 2002/0124037A1, p. 8, 5 Sept. 2002.
[15] R.K. Montoye, E. Hokenek, and S.L. Runyon, “Design of the IBM RISC System/6000 Floating-Point Execution Unit,” IBM J. Research and Development, vol. 34, no. 1, pp. 59-70, Jan. 1990.
[16] H. Sawamoto, private presentation, no longer confidential, Jan. 2000.
[17] G. Gerwig, H. Wetter, E.M. Schwarz, and J. Haess, “High Performance Floating-Point Unit with 116 Bit Wide Divider,” Proc. 16th Symp. Computer Arithmetic, pp. 87-94, June 2003.
[18] E. Hokenek, R. Montoye, and P.W. Cook, “Second-Generation RISC Floating Point with Multiply-Add Fused,” IEEE J. Solid-State Circuits, vol. 25, no. 5, pp. 1207-1213, Oct. 1990.
[19] T. Lang and J.D. Bruguera, “Floating-Point Fused Multiply-Add with Reduced Latency,” Proc. Int'l Conf. Computer Design (ICCD '02), Oct. 2002.
[20] P. Markstein, IA-64 and Elementary Functions: Speed and Precision. Upper Saddle River, N.J.: Prentice Hall, 2000.
[21] S. Gupta, R. Periman, T. Lynch, and B. McMinn, “Normalizing Pipelined Floating Point Processing Unit,” US Patent No. 5,267,186, p. 10, 30 Nov. 1993.
[22] S. Gupta, R. Periman, T. Lynch, and B. McMinn, “Normalizing Pipelined Floating Point Processing Unit,” US Patent No. 5,058,048, p. 11, 15 Oct. 1991.
[23] M.P. Taborn, S.M. Burchfiel, and D.T. Matheny, “Denormalization System and Method of Operation,” US Patent No. 5,646,875, p. 8, 8 July 1997.
[24] E. Schwarz, B. Giamei, C. Krygowski, M. Check, and J. Liptay, “Method and System for Executing Denormalized Numbers,” US Patent No. 5,903,479, p. 6, 11 May 1999.
[25] E.M. Schwarz and C.A. Krygowski, “The S/390 G5 Floating-Point Unit,” IBM J. Research and Development, vol. 43, nos. 5/6, pp. 707-722, Sept./Nov. 1999.
[26] M. Urano and T. Taniguchi, “Method and Apparatus for Normalization of a Floating Point Binary Number,” US Patent No. 5,513,362, p. 15, 30 Apr. 1996.
[27] V.Y. Gorshtein and V.T. Khlobystov, “Multiplication Apparatus and Methods which Generate a Shift Amount by which the Product of the Significands Is Shifted for Normalization or Denormalization,” US Patent No. 5,963,461, p. 22, 5 Oct. 1999.
[28] A.I. Grushin and E.S. Vlasenko, “Computer Methods and Apparatus for Eliminating Leading Non-Significant Digits in Floating Point Computations,” US Patent No. 5,732,007, p. 34, 24 May 1998.
[29] S.D. Naffziger and R.G. Beraha, “Method and Apparatus for Bounding Alignment Shifts to Enable At Speed Denormalized Result Generation in an FMAC,” US Patent No. 5,757,687, p. 13, 26 May 1998.
[30] A.A. Bjorksten, J.D.G. Mikan, and M.S. Schmookler, “Fast Floating Point Results Alignment Apparatus,” US Patent No. 5,764,549, p. 9, 9 June 1998.
[31] G.H. Handlogten, “Method and Apparatus to Perform Pipelined Denormalization of Floating-Point Results,” US Patent No. 5,943,249, p. 10, 24 Aug. 1999.

Index Terms:
Index Terms- Denormalized numbers, subnormals, IEEE 754 Standard, floating-point hardware, underflow trap.
Eric M. Schwarz, Martin Schmookler, Son Dao Trong, "FPU Implementations with Denormalized Numbers," IEEE Transactions on Computers, vol. 54, no. 7, pp. 825-836, July 2005, doi:10.1109/TC.2005.118
Usage of this product signifies your acceptance of the Terms of Use.