Reconfigurable custom floating-point instructions (abstract only)

Multimedia and communication algorithms from the embedded system domain often make extensive use of floating-point arithmetic. Due to the complexity and expense of the floating-point hardware, these algorithms are usually converted to fixed point operations, or implemented using floating-point emulation in software. This study presents the design and implementation of custom floating-point units, leveraging the partial reconfiguration feature of state-of-the-art FPGAs. The custom floating-point units can be dynamically configured, loaded, and executed when needed by software applications. The system is binary compliant with the conventional MIPS architecture and the IEEE-754 standard, and supports most of the floating-point operations and relevant functionalities. Furthermore, we investigate various customization strategies and construct a set of optimized functional modules to meet different application demands or requirements. Using LINPACK as a floating-point intensive example, we replace a sequence of 25 instructions with a custom unit, and demonstrate an overall 80x application speedup.

[1]  Martin Langhammer,et al.  FPGA Floating Point Datapath Compiler , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[2]  Alessandro Forin,et al.  Hardware Compilation from Machine Code with M2V , 2008, 2008 16th International Symposium on Field-Programmable Custom Computing Machines.

[3]  Sri Parameswaran,et al.  Flexible multi-mode embedded floating-point unit for field programmable gate arrays , 2009, FPGA '09.

[4]  Jack J. Dongarra,et al.  The LINPACK Benchmark: An Explanation , 1988, ICS.

[5]  Adnan Kavak,et al.  Implementation of floating point arithmetics using an FPGA , 2007 .

[6]  Peter-Michael Seidel,et al.  Design of an on-line IEEE floating-point addition unit for FPGAs , 2004, 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[7]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[8]  Michael J. Flynn,et al.  Design Issues in Division and Other Floating-Point Operations , 1997, IEEE Trans. Computers.

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

[10]  Ansi Ieee,et al.  IEEE Standard for Binary Floating Point Arithmetic , 1985 .

[11]  Wayne Luk,et al.  Floating-Point FPGA: Architecture and Modeling , 2009, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

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

[13]  Michael J. Flynn,et al.  Division Algorithms and Implementations , 1997, IEEE Trans. Computers.

[14]  Christopher S. Wallace,et al.  A Suggestion for a Fast Multiplier , 1964, IEEE Trans. Electron. Comput..

[15]  Homayoon Sam,et al.  A Generalized Multibit Recoding of Two's Complement Binary Numbers and Its Proof with Application in Multiplier Implementations , 1990, IEEE Trans. Computers.

[16]  Karl S. Hemmert,et al.  Architectural Modifications to Enhance the Floating-Point Performance of FPGAs , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[17]  Alessandro Forin,et al.  Automatic Generation of Interrupt-Aware Hardware Accelerators with the M2V Compiler , 2008 .

[18]  Michael J. Flynn,et al.  Advanced Computer Arithmetic Design , 2001 .

[19]  Martin C. Herbordt,et al.  Single Pass, BLAST-Like, Approximate String Matching on FPGAs , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[20]  Kingshuk Karuri,et al.  Design and Implementation of a Modular and Portable IEEE 754 Compliant Floating-Point Unit , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[21]  Yossi Lichtenstein,et al.  Industrial experience with test generation languages gar processor verification , 2004, Proceedings. 41st Design Automation Conference, 2004..

[22]  Yong Dou,et al.  A Fine-grained Pipelined Implementation of the LINPACK Benchmark on FPGAs , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[23]  Keith D. Underwood,et al.  FPGAs vs. CPUs: trends in peak floating-point performance , 2004, FPGA '04.

[24]  Andrew D. Booth,et al.  A SIGNED BINARY MULTIPLICATION TECHNIQUE , 1951 .

[25]  D. Liu,et al.  High Performance, Low Latency FPGA based Floating Point Adder and Multiplier Units in a Virtex 4 , 2006, 2006 NORCHIP.

[26]  Peter M. Athanas,et al.  Quantitative analysis of floating point arithmetic on FPGA based custom computing machines , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.