An exponentiation unit for an OpenGL lighting engine

The OpenGL geometry pipeline lighting stage requires raising a number in the range [0,1] to a power between [1,128] to compute specular reflections and spotlights. The result need only be accurate to a number of bits related to the color depth of the output device. We describe a hardware implementation of such an exponentiation unit based on a logarithm lookup table, a multiplier, and an inverse log table. The inputs arrive in IEEE single-precision floating-point format and the output is a floating-point color component in the range [0,1] with 8-10 bits of accuracy. The log lookup table is partitioned into subintervals to reduce table size and each subinterval is computed from a bipartite table to further reduce size. A synthesized design uses 32k gates to achieve 10-bit accuracy with a latency of 9.4 ns in a 180 nm process. Although the system is tailored to the OpenGL application, the same principles can be applied to the design of other exponentiation units.

[1]  Young-Su Kwon,et al.  A hardware accelerator for the specular intensity of Phong illumination model in 3-dimensional graphics , 2000, Proceedings 2000. Design Automation Conference. (IEEE Cat. No.00CH37106).

[2]  Michael J. Schulte,et al.  Approximating Elementary Functions with Symmetric Bipartite Tables , 1999, IEEE Trans. Computers.

[3]  Debjit Das Sarma,et al.  Faithful bipartite ROM reciprocal tables , 1995, Proceedings of the 12th Symposium on Computer Arithmetic.

[4]  William M. Waite,et al.  Software manual for the elementary functions , 1980 .

[5]  Lee-Sup Kim,et al.  A hardware cost minimized fast Phong shader , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[6]  Arnaud Tisserand,et al.  Some improvements on multipartite table methods , 2001, Proceedings 15th IEEE Symposium on Computer Arithmetic. ARITH-15 2001.

[7]  Ping Tak Peter Tang Table-driven implementation of the exponential function in IEEE floating-point arithmetic , 1989, TOMS.

[8]  J. Muller Elementary Functions , 1997, Birkhäuser Boston.

[9]  Chen-Yi Lee,et al.  A cost effective lighting processor for 3D graphics application , 1999, Proceedings 1999 International Conference on Image Processing (Cat. 99CH36348).

[10]  Jirí Kadlec,et al.  Arithmetic on the European Logarithmic Microprocessor , 2000, IEEE Trans. Computers.

[11]  Jean-Michel Muller A Few Results on Table-Based Methods , 1998, SCAN.

[12]  I. S. Gradshteyn,et al.  1 – ELEMENTARY FUNCTIONS , 1980 .

[13]  Javier D. Bruguera,et al.  Faithful powering computation using table look-up and a fused accumulation tree , 2001, Proceedings 15th IEEE Symposium on Computer Arithmetic. ARITH-15 2001.

[14]  Thomas Ertl,et al.  Computer Graphics - Principles and Practice, 3rd Edition , 2014 .

[15]  Michael L. Overton,et al.  Numerical Computing with IEEE Floating Point Arithmetic , 2001 .

[16]  M. Carter Computer graphics: Principles and practice , 1997 .

[17]  Naofumi Takagi,et al.  Function evaluation by table look-up and addition , 1995, Proceedings of the 12th Symposium on Computer Arithmetic.

[18]  Michael J. Schulte,et al.  The Symmetric Table Addition Method for Accurate Function Approximation , 1999, J. VLSI Signal Process..

[19]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[20]  Ping Tak Peter Tang,et al.  Table-lookup algorithms for elementary functions and their error analysis , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[21]  Guido D. Salvucci,et al.  Ieee standard for binary floating-point arithmetic , 1985 .

[22]  Naofumi Takagi Powering by a Table Look-Up and a Multiplication with Operand Modification , 1998, IEEE Trans. Computers.