Variable-precision, interval arithmetic coprocessors

This paper presents hardware designs, arithmetic algorithms, and numerical applications for variable-precision, interval arithmetic coprocessors. These coprocessors give the programmer the ability to set the initial precision of the computation, determine the accuracy of the results, and recompute inaccurate results with higher precision. Variable-precision, interval arithmetic algorithms are used to reduce the execution times of numerical applications. Three hardware designs with data paths of 16, 32, and 64 bits are examined. These designs are compared based on their estimated chip area, cycle time, and execution times for various numerical applications. Each coprocessor can be implemented on a single chip with a cycle time that is comparable to IEEE double-precision floating point coprocessors. For certain numerical applications, the coprocessors are two to four orders of magnitude faster than a conventional software package for variable-precision, interval arithmetic.AbstractПредставлены конструкция аппаратуры, испояьзуемые арифметические алгоритмы и приложения к решению численных задач для интервальных арифметических сопроцессоров переменной разрядности. Эти сопроцессоры позволяют программисту устанавливать начальную разрядность вычислений, определять точность результатов и заново вычислять неточные результаты с большей разрядностью. Для уменьшения времени выполнения в численных приложениях используются пнтервально-арифмети ческие алгоритмы переменной разрядности. Рассмотрены три аппаратные схемы с щиной данных щириной 16, 32 и 64 бита. Эти схемы сравниваются по требуемой площади крисгалла, продолжительности рабочего пикяа и быстродействию в различных численных приложениях. Каджый из этих сопроцессоров может быть реализован на одном кристалле с рабочей частотой, сравнимой с сопроцессорами плавающей точки двойной точности стандарта IEEE. В некоторых численных приложениях наши сопроцессоры на два-четыре порядка быстрее, чем распространенные программные пакеты, реализующие интервальную арифметику переменной разрядности.

[1]  Chenyi Hu,et al.  Algorithm 737: INTLIB—a portable Fortran 77 interval standard-function library , 1994, TOMS.

[2]  Earl E. Swartzlander,et al.  A processor for staggered interval arithmetic , 1995, Proceedings The International Conference on Application Specific Array Processors.

[3]  Mary Jane Irwin,et al.  Area Time Trade-Offs in Micro-Grain VLSI Array Architectures , 1994, IEEE Trans. Computers.

[4]  Bruce D. Shriver,et al.  Some experiments using interval arithmetic , 1978, 1978 IEEE 4th Symposium onomputer Arithmetic (ARITH).

[5]  K. Braune Standard functions for real and complex point and interval arguments with dynamic accuracy , 1988 .

[6]  Richard P. Brent,et al.  Recent technical reports , 1977, SIGA.

[7]  Christian P. Ullrich,et al.  Computer Arithmetic and Self-Validating Numerical Methods , 1990, Notes and reports in mathematics in science and engineering.

[8]  Earl E. Swartzlander,et al.  Hardware design and arithmetic algorithms for a variable-precision, interval arithmetic coprocessor , 1995, Proceedings of the 12th Symposium on Computer Arithmetic.

[9]  K. Hafner Chips for High Precision Arithmetic , 1990, Computer Arithmetic and Self-Validating Numerical Methods.

[10]  C. Ullrich Programming Languages for Enclosure Methods , 1990, Computer Arithmetic and Self-Validating Numerical Methods.

[11]  Earl E. Swartzlander,et al.  Software and Hardware Techniques for Accurate, Self-Validating Arithmetic , 1996 .

[12]  Earl E. Swartzlander,et al.  A software interface and hardware design for variable-precision interval arithmetic , 1995, Reliab. Comput..

[13]  Tony M. Carter Cascade: hardware for high/variable precision arithmetic , 1989, Proceedings of 9th Symposium on Computer Arithmetic.

[14]  Jerry Schwarz,et al.  Implementing infinite precision arithmetic , 1989, Proceedings of 9th Symposium on Computer Arithmetic.

[15]  Daniel W. Lozier,et al.  A Portable Extended Precision Arithmetic Package and Library with Fortran Precompiler , 1976, TOMS.

[16]  G. Alefeld,et al.  Introduction to Interval Computation , 1983 .

[17]  David M. Smith,et al.  Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic , 1991, TOMS.

[18]  Algirdas Avizienis,et al.  Signed-Digit Numbe Representations for Fast Parallel Arithmetic , 1961, IRE Trans. Electron. Comput..

[19]  Hans J. Stetter,et al.  Validated Solution of Initial Value Problems for ODE , 1990, Computer Arithmetic and Self-Validating Numerical Methods.

[20]  P. T. Patel,et al.  Implementation of the PowerPC 601 microprocessor , 1994, IBM J. Res. Dev..

[21]  Lawrence S. Kroll Mathematica--A System for Doing Mathematics by Computer. , 1989 .

[22]  A. Knofel,et al.  Fast hardware units for the computation of accurate dot products , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[23]  S. Ely,et al.  The VPI Software Package for Variable Precision Interval Arithmetic , 1994 .

[24]  W. Krämer,et al.  Multiple-Precision Computations with Result Verification , 1993 .

[25]  Bruno Buchberger,et al.  Gröbner Bases in Mathematica: Enthusiasm and Frustration , 1991, Programming Environments for High-Level Scientific Problem Solving.

[26]  O. L. Macsorley High-Speed Arithmetic in Binary Computers , 1961, Proceedings of the IRE.

[27]  Christoph Baumhof A new VLSI vector arithmetic coprocessor for the PC , 1995, Proceedings of the 12th Symposium on Computer Arithmetic.

[28]  R. J. Joenk,et al.  IBM journal of research and development: information for authors , 1978 .

[29]  Jürgen Wolff von Gudenberg PASCAL-SC: A PASCAL Extension for Scientific Computation , 1982, IMACS World Congress.

[30]  Bruce I. Blum An extended arithmetic package , 1965, CACM.

[31]  George F. Corliss Industrial Applications of Interval Techniques , 1990, Computer Arithmetic and Self-Validating Numerical Methods.

[32]  Thomas E. Hull,et al.  Specifications for a variable-precision arithmetic coprocessor , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[33]  U. Kulisch,et al.  Scientific Computing with Automatic Result Verification. , 1994 .

[34]  Thomas E. Hull,et al.  CADAC: A Controlled-Precision Decimal Arithmetic Unit , 1983, IEEE Transactions on Computers.

[35]  Kaj Madsen,et al.  Enclosing Solutions of Integral Equations , 1995 .

[36]  G. Corliss,et al.  C-Xsc: A C++ Class Library for Extended Scientific Computing , 1993 .

[37]  Rudolf J. Lohner,et al.  Interval Arithmetic in Staggered Correction Format , 1993 .

[38]  A. Neumaier Interval methods for systems of equations , 1990 .

[39]  Ulrich W. Kulisch,et al.  Chapter 4 – INTERVAL ARITHMETIC , 1981 .

[40]  Earl E. Swartzlander,et al.  Parallel reduced area multipliers , 1995, J. VLSI Signal Process..

[41]  Wolfgang V. Walter ACRITH-XSC A Fortran—like Language for Verified Scientific Computing , 1993 .

[43]  A. Avizeinis,et al.  Signed Digit Number Representations for Fast Parallel Arithmetic , 1961 .

[44]  A. Knöfel A Hardware Kernel for Scientific/Engineering Computations , 1993 .

[45]  G. Bohlender What Do We Need Beyond IEEE Arithmetic? , 1990, Computer Arithmetic and Self-Validating Numerical Methods.

[46]  John H. Edmondson,et al.  Superscalar instruction execution in the 21164 Alpha microprocessor , 1995, IEEE Micro.

[47]  Jeremy R. Johnson,et al.  Efficient multiprecision floating point multiplication with optimal directional rounding , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[48]  Earl E. Swartzlander,et al.  Reduced area multipliers , 1993, Proceedings of International Conference on Application Specific Array Processors (ASAP '93).

[49]  Siegfried M. Rump,et al.  ACRITH: High-Accuracy Arithmetic an advanced tool for numerical computation , 1985, 1985 IEEE 7th Symposium on Computer Arithmetic (ARITH).

[50]  Christian Ullrich Contributions to computer arithmetic and self-validating numerical methods , 1990 .

[51]  Eldon Hansen,et al.  Global optimization using interval analysis , 1992, Pure and applied mathematics.

[52]  Willard L. Miranker,et al.  Computer arithmetic in theory and practice , 1981, Computer science and applied mathematics.

[53]  David H. Bailey,et al.  Algorithm 719: Multiprecision translation and execution of FORTRAN programs , 1993, TOMS.

[54]  Dietmar Ratz The Effects Of The Arithmetic Of Vector Computers On Basic Numerical Methods , 1990 .

[55]  Donald M. Chiarulli,et al.  DRAFT: A dynamically reconfigurable processor for integer arithmetic , 1985, 1985 IEEE 7th Symposium on Computer Arithmetic (ARITH).

[56]  David Goldberg,et al.  What every computer scientist should know about floating-point arithmetic , 1991, CSUR.