Advertisement

Decimal Floating Point Number System

  • Hossam A. H. FahmyEmail author
Chapter

Abstract

The correct handling of decimal numbers is essential in financial applications and in many human endeavors. The present chapter illustrates the need for decimal floating point numbers on computers and the possible hardware implementations of basic arithmetic operations.

Keywords

Floating Point Decimal Digit Binary Adder Exponent Difference Binary Code Decimal 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    IEEE Task P754, IEEE 754-2008, Standard for Floating-Point Arithmetic (IEEE, New York, 2008)Google Scholar
  2. 2.
    IEEE Task P754, ANSI/IEEE 754-1985, Standard for Binary Floating-Point Arithmetic (IEEE, New York, 1985)Google Scholar
  3. 3.
    M.F. Cowlishaw, The ‘telco’ benchmark. World-Wide Web document, IBM Hursley Laboratory, Hursley (2002). http://www.speleotrove.com/decimal/telco.html
  4. 4.
    M.F. Cowlishaw, Decimal floating-point: algorism for computers, in 16th IEEE Symposium on Computer Arithmetic: ARITH-16 2003: Proceedings: Santiago de Compostela, June 15–18, 2003, ed. by J.C. Bajard, M. Schulte (IEEE Computer Society Press, Silver Spring, MD, 2003), pp. 104–111Google Scholar
  5. 5.
    W. Buchholz, Fingers or fists? (the choice of decimal or binary representation). Commun. Assoc. Comput. Mach. 2 (12), 3–11 (1959)zbMATHGoogle Scholar
  6. 6.
    H.A.H. Fahmy, R. Raafat, A.M. Abdel-Majeed, R. Samy, T. ElDeeb, Y. Farouk, Energy and delay improvement via decimal floating point units, in Proceedings of the 19th IEEE Symposium on Computer Arithmetic, Portland, OR (2009), pp. 221–224Google Scholar
  7. 7.
    L.-K. Wang, M.A. Erle, C. Tsen, E.M. Schwarz, M.J. Schulte, A survey of hardware designs for decimal arithmetic. IBM J. Res. Dev. 54, 8:1–8:15 (2010)Google Scholar
  8. 8.
    H.A.H. Fahmy, K. Ismail, Analysis of a single-electron decimal adder. Appl. Phys. Lett. 70, 2613–2615 (1997)CrossRefGoogle Scholar
  9. 9.
    M. Gladshtein, Delay-based processing-in-wire for design of QCA serial decimal arithmetic units. ACM J. Emerg. Technol. Comput. Syst. 10, 13:1–13:18 (2014)Google Scholar
  10. 10.
    L. Eisen, J.W. Ward III, H.-W. Tast, N. Mäding, J. Leenstra, S.M. Mueller, C. Jacobi, J. Preiss, E.M. Schwarz, S.R. Carlough, IBM POWER6 accelerators: VMX and DFU. IBM J. Res. Dev. 51, 663–683 (2007)CrossRefGoogle Scholar
  11. 11.
    E.M. Schwarz, J.S. Kapernick, M.F. Cowlishaw, Decimal floating-point support on the IBM System z10 processor. IBM J. Res. Dev. 53, 4:1–4:10 (2009)Google Scholar
  12. 12.
    S. Carlough, A. Collura, S. Mueller, M. Kroener, The IBM zEnterprise-196 decimal floating-point accelerator, in Schwarz and Oklobdzija [84], pp. 139–146Google Scholar
  13. 13.
    R. Raafat, A. Mohamed, R. Samy, T. ElDeeb, Y. Farouk, M. Elkhouly, H.A.H. Fahmy, A decimal fully parallel and pipelined floating point multiplier, in Forty-Second Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2008)Google Scholar
  14. 14.
    R. Samy, H.A.H. Fahmy, R. Raafat, A. Mohamed, T. ElDeeb, Y. Farouk, A decimal floating-point fused-multiply-add unit, in Fifty-Third MidWest Symposium on Circuits and Systems, (MWSCAS), Seattle, Washington (2010)Google Scholar
  15. 15.
    H.A.H. Fahmy, T. ElDeeb, M. Hassan, Y. Farouk, R. Eissa, Decimal floating point for future processors, in The 22nd International Conference on Microelectronics, ICM 2010 (2010)Google Scholar
  16. 16.
    T. Yoshida, T. Maruyama, Y. Akizuki, R. Kan, N. Kiyota, K. Ikenishi, S. Itou, T. Watahiki, H. Okano, Sparc64 x: Fujitsu’s new-generation 16-core processor for unix servers. IEEE Micro 33, 16–24 (2013)CrossRefGoogle Scholar
  17. 17.
    M. Cornea, J. Harrison, C. Anderson, P. Tang, E. Schneider, E. Gvozdev, A software implementation of the IEEE 754R decimal floating-point arithmetic using the binary encoding format. IEEE Trans. Comput. 58, 148–162 (2009)CrossRefMathSciNetGoogle Scholar
  18. 18.
    M. Cowlishaw, The decNumber C Library (IBM Corporation, San Jose, CA, 2006). Version 3.37Google Scholar
  19. 19.
    International Organization for Standardization, ISO/IEC TR 24732:2009 Information technology — Programming languages, their environments and system software interfaces — Extension for the programming language C to support decimal floating-point arithmetic. Technical Report, International Organization for Standardization, Geneva, 2009Google Scholar
  20. 20.
    J. Thompson, N. Karra, M.J. Schulte, A 64-bit decimal floating-point adder, in Proceedings of the IEEE Computer Society Annual Symposium on VLSI, 19–20 February 2004 (IEEE Computer Society Press, Silver Spring, MD, 2004), pp. 297–298Google Scholar
  21. 21.
    Á. Vázquez, E. Antelo, A high-performance significand BCD adder with IEEE 754-2008 decimal rounding, in Bruguera et al. [85], pp. 135–144Google Scholar
  22. 22.
    M.H. Amin, A.M. ElTantawy, H.A.H. Fahmy, A. Khedr, Efficient decimal leading zero anticipator designs, in Forty-Fifth Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2011)Google Scholar
  23. 23.
    L.-K. Wang, M.J. Schulte, A decimal floating-point adder with decoded operands and a decimal leading-zero anticipator, in Bruguera et al. [85], pp. 125–134Google Scholar
  24. 24.
    L.-K. Wang, M.J. Schulte, J.D. Thompson, N. Jairam, Hardware designs for decimal floating-point addition and related operations. IEEE Trans. Comput. 58, 322–335 (2009)CrossRefMathSciNetGoogle Scholar
  25. 25.
    K. Yehia, H.A.H. Fahmy, M. Hassan, A redundant decimal floating-point adder, in Forty-Fourth Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2010)Google Scholar
  26. 26.
    S.Y. Elsayed, H.A.H. Fahmy, M.S. Khairy, Residue codes for error correction in a combined decimal/binary redundant floating point adder, in Forty-Sixth Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2012)Google Scholar
  27. 27.
    C. Tsen, S. Gonzalez-Navarro, M. Schulte, Hardware design of a binary integer decimal-based floating-point adder, in 25th International Conference on Computer Design, 2007 (ICCD 2007), 7–10 October 2007, Resort at Squaw Creek, Lake Tahoe, CA, ed. by IEEE (IEEE Computer Society Press, Silver Spring, MD, 2007), pp. 288–295Google Scholar
  28. 28.
    C. Tsen, M. Schulte, S. Gonzalez-Navarro, Hardware design of a binary integer decimal-based IEEE P754 rounding unit, in ASAP 07: Conference Proceedings: IEEE 18th International Conference on Application-Specific Systems, Architectures, and Processors: Montréal: July 8–11, 2007, ed. by IEEE (IEEE Computer Society Press, Silver Spring, MD, 2007), pp. 115–121Google Scholar
  29. 29.
    C. Tsen, S. Gonzalez-Navarro, M.J. Schulte, K. Compton, Hardware designs for binary integer decimal-based rounding. IEEE Trans. Comput. 60, 614–627 (2011)CrossRefMathSciNetGoogle Scholar
  30. 30.
    A.A.M. Ayoub, Binary integer decimal-based floating point adder. Master’s thesis, Electronics and Electrical Communications Department, Cairo University, Giza (2014). Available at http://eece.cu.edu.eg/~hfahmy/thesis/2014_03_dpdbid.pdf Google Scholar
  31. 31.
    A.A. Ayoub, H.A.H. Fahmy, BID to BCD/DPD converters. US Patent number 9134958 (2015)Google Scholar
  32. 32.
    A.A. Ayoub, H.A.H. Fahmy, T. Eldeeb, DPD/BCD to BID converters. US Patent number 9143159 (2015)Google Scholar
  33. 33.
    A. Vazquez, E. Antelo, P. Montuschi, A new family of high-performance parallel decimal multipliers, in Kornerup and Muller [86], pp. 195–204Google Scholar
  34. 34.
    A. Vazquez, E. Antelo, P. Montuschi, Improved design of high-performance parallel decimal multipliers. IEEE Trans. Comput. 59, 679–693 (2010)CrossRefMathSciNetGoogle Scholar
  35. 35.
    S. Gonzalez-Navarro, C. Tsen, M. Schulte, Binary integer decimal-based multiplier for decimal floating-point arithmetic, in Conference Record of the Forty-first Asilomar Conference on Signals, Systems and Computers: November 4–7, 2007, Pacific Grove, CA. ACSSC 2007, ed. by M.B. Matthews (IEEE Computer Society Press, Silver Spring, MD, 2008), pp. 353–357Google Scholar
  36. 36.
    S. Gonzalez-Navarro, C. Tsen, M.J. Schulte, Binary integer decimal-based floating-point multiplication. IEEE Trans. Comput. 62, 1460–1466 (2013)CrossRefMathSciNetGoogle Scholar
  37. 37.
    M.A. Erle, M.J. Schulte, Decimal multiplication via carry-save addition, in IEEE International Conference on Application-Specific Systems, Architectures and Processors: Proceedings: ASAP 2003, 24–26 June, 2003, The Hague, ed. by E.F. Deprettere (IEEE Computer Society Press, Silver Spring, MD, 2003), pp. 348–358. IEEE Computer Society Order Number PR01992Google Scholar
  38. 38.
    R.D. Kenney, M.J. Schulte, M.A. Erle, A high-frequency decimal multiplier, in IEEE International Conference on Computer Design: VLSI in Computers and Processors, 2004. ICCD 2004. Proceedings, 11–13 October 2004, ed. by IEEE (IEEE Computer Society Press, Silver Spring, MD, 2004), pp. 26–29Google Scholar
  39. 39.
    R.D. Kenney, M.J. Schulte, M.A. Erle, Multioperand decimal addition, in Emerging Trends in VLSI Systems Design: Proceedings: IEEE Computer Society Annual Symposium on VLSI, 19–20 February 2004, Lafayette, LA [ISVLSI 2004], ed. by A. Smailagic, M.A. Bayoumi (IEEE Computer Society Press, Silver Spring, MD, 2004), pp. 251–253. IEEE Computer Society order number P2097Google Scholar
  40. 40.
    M. Erle, E. Schwarz, M. Schulte, Decimal multiplication with efficient partial product generation, in Proceedings of the 17th IEEE Symposium on Computer Arithmetic, ARITH-17 2005, June 27–29, 2005, Cape Cod, MA, ed. by P. Montuschi, E.E.M. Schwarz (IEEE Computer Society Press, Silver Spring, MD, 2005), pp. 21–28Google Scholar
  41. 41.
    M.A. Erle, M.J. Schulte, B.J. Hickmann, Decimal floating-point multiplication via carry-save addition, in Kornerup and Muller [86], pp. 46–55Google Scholar
  42. 42.
    M.A. Erle, B.J. Hickmann, M.J. Schulte, Decimal floating-point multiplication. IEEE Trans. Comput. 58, 902–916 (2009)CrossRefMathSciNetGoogle Scholar
  43. 43.
    L. Dadda, Multioperand parallel decimal adder: a mixed binary and BCD approach. IEEE Trans. Comput. 56, 1320–1328 (2007)CrossRefMathSciNetGoogle Scholar
  44. 44.
    M. Mahmoud, H.A.H. Fahmy, A parallel combined binary/decimal fixed-point multiplier with binary partial products reduction tree, in The 21st International Conference on Computer Theory and Applications (ICCTA), Alexandria (2011)Google Scholar
  45. 45.
    C. Tsen, S. Gonzalez-Navarro, M.J. Schulte, B. Hickmann, K. Compton, A combined decimal and binary floating-point multiplier, in 20th IEEE International Conference on Application-Specific Systems, Architectures and Processors (ASAP 2009), Boston, MA, 7–9 July 2009, ed. by IEEE (IEEE Computer Society Press, Silver Spring, MD, 2009), pp. 8–15Google Scholar
  46. 46.
    G. Jaberipur, A. Kaivani, Improving the speed of parallel decimal multiplication. IEEE Trans. Comput. 58, 1539–1552 (2009)CrossRefMathSciNetGoogle Scholar
  47. 47.
    L. Han, S.-B. Ko, High-speed parallel decimal multiplication with redundant internal encodings. IEEE Trans. Comput. 62, 956–968 (2013). See comment [48]Google Scholar
  48. 48.
    S. Gorgin, G. Jaberipur, Comment on High-speed parallel decimal multiplication with redundant internal encodings. IEEE Trans. Comput. 64, 293–294 (2015). See [47]Google Scholar
  49. 49.
    D.R. Lutz, Fused multiply-add microarchitecture comprising separate early-normalizing multiply and add pipelines, in Schwarz and Oklobdzija [84], pp. 123–128Google Scholar
  50. 50.
    P.K. Monsson, Combined binary and decimal floating-point unit. Master’s thesis, Technical University of Denmark (2008)Google Scholar
  51. 51.
    A. Sayed-Ahmed, H.A.H. Fahmy, R. Samy, Verification of decimal floating-point fused-multiply-add operation, in The Ninth ACS/IEEE International Conference on Computer Systems and Applications (AICCSA), Sharm El-Sheikh (2011)Google Scholar
  52. 52.
    R. Samy, H.A.H. Fahmy, T. Eldeeb, R. Raafat, Y. Farouk, M. Elkhouly, A. Mohamed, Decimal floating-point fused multiply-add unit (2014). US Patent number 8694572Google Scholar
  53. 53.
    A.M. ElTantawy, Decimal floating point arithmetic unit based on a fused multiply add module. Master’s thesis, Electronics and Electrical Communications Department, Cairo University, Giza (2011). Available at http://eece.cu.edu.eg/~hfahmy/thesis/2011_08_dfma.pdf Google Scholar
  54. 54.
    A. Akkas, M.J. Schulte, A decimal floating-point fused multiply-add unit with a novel decimal leading-zero anticipator, in IEEE International Conference on Application-Specific Systems, Architectures and Processors (ASAP) (2011), pp. 43–50Google Scholar
  55. 55.
    A.A.A. Wahba, Fully IEEE-compliant binary/decimal unit based on a binary/decimal fma. Master’s thesis, Electronics and Electrical Communications Department, Cairo University, Giza (2014). Available at http://eece.cu.edu.eg/~hfahmy/thesis/2014_06_bd_fma.pdf Google Scholar
  56. 56.
    M.D. Ercegovac, T. Lang, Digital Arithmetic (Morgan Kaufmann, Los Altos, CA, 2004)Google Scholar
  57. 57.
    M.J. Flynn, On division by functional iteration. IEEE Trans. Comput. C-19, 702–706 (1970). Reprinted in [87]Google Scholar
  58. 58.
    P. Rabinowitz, Multiple-precision division. Commun. Assoc. Comput. Mach. 4, 98–98 (1961)zbMATHGoogle Scholar
  59. 59.
    L.-K. Wang, M.J. Schulte, Decimal floating-point division using Newton–Raphson iteration, in Proceedings of 15th IEEE International Conference on Application-Specific Systems, Architectures and Processors, 27–29 September 2004 (IEEE Computer Society Press, Silver Spring, MD, 2004), pp. 84–95Google Scholar
  60. 60.
    L.-K. Wang, M.J. Schulte, A decimal floating-point divider using Newton–Raphson iteration. J. VLSI Sig. Proc. 49, 3–18 (2007)CrossRefGoogle Scholar
  61. 61.
    T. Lang, A. Nannarelli, A radix-10 digit-recurrence division unit: algorithm and architecture. IEEE Trans. Comput. 56, 727–739 (2007)CrossRefMathSciNetGoogle Scholar
  62. 62.
    H. Nikmehr, B. Phillips, C.-C. Lim, Fast decimal floating-point division. IEEE Trans. Very Large Scale Integr. VLSI Syst. 14, 951–961 (2006)CrossRefGoogle Scholar
  63. 63.
    A. Mohamed, R. Raafat, H.A.H. Fahmy, T. Eldeeb, Y. Farouk, R. Samy, M. Elkhouly, Parallel redundant decimal fused-multiply-add circuit (2014). US Patent number 8805917Google Scholar
  64. 64.
    A. Mohamed, H.A.H. Fahmy, R. Raafat, Y. Farouk, M. Elkhouly, R. Samy, T. Eldeeb, Rounding unit for decimal floating-point division (2014). US Patent number 8751555Google Scholar
  65. 65.
    C.V. Ramamoorthy, J.R. Goodman, K.H. Kim, Some properties of iterative square-rooting methods using high-speed multiplication. IEEE Trans. Comput. C-21, 837–847 (1972)CrossRefzbMATHGoogle Scholar
  66. 66.
    L.-K. Wang, M.J. Schulte, Decimal floating-point square root using Newton–Raphson iteration, in 16th IEEE International Conference on Application-Specific Systems, Architectures, and Processors: ASAP 2005, 23–25 July 2005, Samos, ed. by S. Vassiliadis, N.J. Dimopoulos, S.V. Rajopadhye (IEEE Computer Society Press, Silver Spring, MD, 2005), pp. 309–315Google Scholar
  67. 67.
    A.S. Ahmed, H.A.H. Fahmy, U. Kuehne, Verification of the decimal floating-point square root operation, in 19th IEEE European Test Symposium (ETS), Paderborn (2014)Google Scholar
  68. 68.
    R. Raafat, A. Mohamed, H.A.H. Fahmy, Y. Farouk, M. Elkhouly, T. Eldeeb, R. Samy, Decimal floating-point square-root unit using Newton-Raphson iterations (2014). US Patent number 8812575Google Scholar
  69. 69.
    D. Chen, Y. Zhang, Y. Choi, M.H. Lee, S.-B. Ko, A 32-bit decimal floating-point logarithmic converter, in Bruguera et al. [85], pp. 195–203Google Scholar
  70. 70.
    D. Chen, L. Han, Y. Choi, S. Ko, Improved decimal floating-point logarithmic converter based on selection by rounding. IEEE Trans. Comput. 61, 607–621 (2012)CrossRefMathSciNetGoogle Scholar
  71. 71.
    D. Chen, Y. Zhang, D. Teng, K. Wahid, M.H. Lee, S.-B. Ko, A new decimal antilogarithmic converter, in 2009 IEEE International Symposium on Circuits and Systems: Circuits and Systems for Human Centric Smart Living Technologies, Conference Program, Taipei International Convention Center, Taipei, May 24–May 27, 2009, ed. by IEEE (IEEE Computer Society Press, Silver Spring, MD, 2009), pp. 445–448Google Scholar
  72. 72.
    M. Hassan, T. ElDeeb, H.A.H. Fahmy, Algorithm and architecture for on-line decimal powering computation, in Forty-Fourth Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2010)Google Scholar
  73. 73.
    W.S. Sayed, H.A.H. Fahmy, What are the correct results for the special values of the operands of the power operation? Trans. Math. Softw. 42 (2), 14:1–14:17 (2016) doi:10.1145/2809783
  74. 74.
    T. ElDeeb, H.A.H. Fahmy, M.Y. Hassan, Decimal elementary functions computation. (2014). US Patent number 8788560Google Scholar
  75. 75.
    J. Harrison, Decimal transcendentals via binary, in Bruguera et al. [85], pp. 187–194Google Scholar
  76. 76.
    Á. Vázquez, J. Villalba, E. Antelo, Computation of decimal transcendental functions using the CORDIC algorithm, in Bruguera et al. [85], pp. 179–186Google Scholar
  77. 77.
    A. Kaivani, G. Jaberipur, Decimal CORDIC rotation based on selection by rounding: algorithm and architecture. Comput. J. 54, 1798–1809 (2011)CrossRefGoogle Scholar
  78. 78.
    C. Kern, M.R. Greenstreet, Formal verification in hardware design: a survey. ACM Trans. Des. Autom. Electron. Syst. 4, 123–193 (1999)CrossRefGoogle Scholar
  79. 79.
    D.M. Russinoff, A mechanically checked proof of IEEE compliance of the floating point multiplication, division and square root algorithms of the AMD-K7TM processor. LMS J. Comput. Math. 1, 148–200 (1998)CrossRefzbMATHMathSciNetGoogle Scholar
  80. 80.
    E. Guralnik, M. Aharoni, A.J. Birnbaum, A. Koyfman, Simulation-based verification of floating-point division. IEEE Trans. Comput. 60, 176–188 (2011)CrossRefMathSciNetGoogle Scholar
  81. 81.
    M. Aharoni, R. Maharik, A. Ziv, Solving constraints on the intermediate result of decimal floating-point operations, in Kornerup and Muller [86], pp. 38–45Google Scholar
  82. 82.
    C. University, Arithmetic operations debugging and verification (2012). Available at http://eece.cu.edu.eg/~hossam/arith_debug/ Google Scholar
  83. 83.
    A. Sayed-Ahmed, H.A.H. Fahmy, M. Hassan, Three engines to solve verification constraints of decimal floating-point operations, in Forty-Fourth Asilomar Conference on Signals, Systems, and Computers, Asilomar, CA (2010)Google Scholar
  84. 84.
    E. Schwarz, V.G. Oklobdzija (eds.), Proceedings of the 20th IEEE Symposium on Computer Arithmetic, July 25–27, 2011, Tübingen (IEEE Computer Society Press, Silver Spring, MD, 2011)Google Scholar
  85. 85.
    J.D. Bruguera, M. Cornea, D. DasSarma, J. Harrison (eds.), Proceedings of the 19th IEEE Symposium on Computer Arithmetic, June 8–10, 2009, Portland, OR (IEEE Computer Society Press, Silver Spring, MD, 2009)Google Scholar
  86. 86.
    P. Kornerup, J.-M. Muller (eds.), Proceedings of the 18th IEEE Symposium on Computer Arithmetic, June 25–27, 2007, Montpellier (IEEE Computer Society Press, Silver Spring, MD, 2007)Google Scholar
  87. 87.
    E.E. Swartzlander Jr., Computer Arithmetic. IEEE Computer Society Press Tutorial, vol. 1 (IEEE Computer Society Press, Silver Spring, MD, 1990)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Electronics and Communications Engineering DepartmentCairo UniversityGizaEgypt
  2. 2.Electrical and Computer Engineering DepartmentSultan Qaboos UniversityMuscatOman

Personalised recommendations