Decimal floating-point in z9: An implementation and testing perspective

Although decimal arithmetic is widely used in commercial and financial applications, the related computations are handled in software. As a result, applications that use decimal data may experience performance degradations. Use of the newly defined decimal floating-point (DFP) format instead of binary floating-point is expected to significantly improve the performance of such applications. System z9TM is the first IBM machine to support the DFP instructions. We present an overview of this implementation and provide some measurement of the performance gained using hardware assists. Various tools and techniques employed for the DFP verification on unit, element, and system levels are presented in detail. Several groups within IBM collaborated on the verification of the new DFP facility, using a common reference model to predict DFP results.

[1]  Daniel Geist,et al.  AVPGEN-A test generator for architecture verification , 1995, IEEE Trans. Very Large Scale Integr. Syst..

[2]  P.K. Varshney,et al.  Comparison of random test vector generation strategies , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[3]  Tsong Yueh Chen,et al.  On the Relationship Between Partition and Random Testing , 1994, IEEE Trans. Software Eng..

[4]  Michael Parks,et al.  Number-theoretic test generation for directed rounding , 1999, Proceedings 14th IEEE Symposium on Computer Arithmetic (Cat. No.99CB36336).

[5]  M. A. Bailey,et al.  An application of random software testing , 1995, Proceedings of MILCOM '95.

[6]  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..

[7]  Laurent Fournier,et al.  Functional verification methodology for microprocessors using the Genesys test-program generator , 1999, DATE '99.

[8]  Ali Y. Duale,et al.  Pseudo-Random System Testing: Coverage Estimation and Enhancement , 2005, Software Engineering Research and Practice.

[9]  Lisa Cranton Heller,et al.  Millicode in an IBM zSeries processor , 2004, IBM J. Res. Dev..

[10]  M. Karam,et al.  Functional versus random test generation for controllers and finite state machines , 1992, Proceedings Euro ASIC '92.

[11]  Steven M. Licker,et al.  Functional verification of the CMOS S/390 Parallel Enterprise Server G4 system , 1997, IBM J. Res. Dev..

[12]  Michael F. Cowlishaw,et al.  Decimal floating-point: algorism for computers , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[13]  Mark H. Decker,et al.  Simulation of IBM Enterprise System/9000 Models 820 and 900 , 1992, IBM J. Res. Dev..

[14]  Sigrid Eldh Software Testing Techniques , 2007 .

[15]  Simeon C. Ntafos,et al.  On Comparisons of Random, Partition, and Proportional Partition Testing , 2001, IEEE Trans. Software Eng..

[16]  Sigal Asaf,et al.  FPgen - a test generation framework for datapath floating-point verification , 2003, Eighth IEEE International High-Level Design Validation and Test Workshop.

[17]  M. Cowlishaw Densely packed decimal encoding , 2002 .

[18]  Christopher A. Krygowski,et al.  The IBM eServer z990 floating-point unit , 2004, IBM J. Res. Dev..

[19]  Norm L. Schryer,et al.  A Test of a Computer's Floating-Point Arithmetic Unit , 1981 .