Logarithmic-Time FPGA Bitstream Analysis: A Step Towards JIT Hardware Compilation

Just-In-Time (JIT) compilation is frequently used in software engineering to accelerate program execution. Parts of the code are translated to machine code at runtime to speedup their execution by exploiting local and dynamic information of the computation. Modern FPGAs manufactured by Xilinx allow partial and dynamic configuration. Such features make them eligible platforms for JIT hardware compilation. Nevertheless, this has not been achieved until now because the mapping between a bitstream and the programmable points inside these FPGAs is not documented. In this article, we propose a methodology to retrieve the relevant information in logarithmic time per bit by methodically using the tools distributed by Xilinx. We give a practical case study which details the analysis of a Virtex-II Pro FPGA bitstream. The mapping of CLBs, BRAMs, and multipliers has been fully determined. Thanks to this information, we have been able to prototype tools in the fields of reverse mapping FPGA bitstreams, low-level simulation, and custom place-and-route. Finally preliminary results demonstrate that a processor embedded in an FPGA can compile, place, and route arithmetic and logic expressions inside the FPGA within a few milliseconds.

[1]  Frank Vahid,et al.  Warp Processors , 2006, ACM Trans. Design Autom. Electr. Syst..

[2]  John W. Lockwood,et al.  PARBIT: A Tool to Transform Bitfiles to Implement Partial Reconfiguration of Field Programmable Gate Arrays (FPGAs) , 2001 .

[3]  Marc Feeley,et al.  Hardware JIT Compilation for Off-the-Shelf Dynamically Reconfigurable FPGAs , 2008, CC.

[4]  Dawson R. Engler,et al.  Derive: a tool that automatically reverse-engineers instruction encodings , 2000 .

[5]  Harold Abelson,et al.  Revised5 report on the algorithmic language scheme , 1998, SIGP.

[6]  I. Xilinx,et al.  Virtex-II Pro and Virtex-II Pro X Platform FPGAs: Complete data sheet , 2004 .

[7]  Brad L. Hutchings,et al.  JHDL-an HDL for reconfigurable systems , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[8]  Peter Sutton,et al.  JPG - a partial bitstream generation tool to support partial reconfiguration in virtex FPGAs , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[9]  Brad L. Hutchings,et al.  Improving functional density through run-time constant propagation , 1997, FPGA '97.

[10]  Dawson R. Engler,et al.  Derive: a tool that automatically reverse-engineers instruction encodings , 2000, Dynamo.

[11]  Vasanth Bala,et al.  Dynamo: a transparent dynamic optimization system , 2000, SIGP.

[12]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[13]  Neil Joseph Steiner A Standalone Wire Database for Routing and Tracing in Xilinx Virtex, Virtex-E, and Virtex-II FPGAs , 2002 .

[14]  Dawson R. Engler,et al.  Reverse-Engineering Instruction Encodings , 2001, USENIX Annual Technical Conference, General Track.

[15]  Stephan Wong,et al.  Run-Time Partial Reconfiguration for Removal, Placement and Routing on the Virtex-II Pro , 2007, 2007 International Conference on Field Programmable Logic and Applications.

[16]  Frank Vahid,et al.  Warp Processors , 2004, ACM Trans. Design Autom. Electr. Syst..

[17]  Brent E. Nelson,et al.  JHDLBits: The Merging of Two Worlds , 2004, FPL.

[18]  Vaughn Betz,et al.  VPR: A new packing, placement and routing tool for FPGA research , 1997, FPL.

[19]  D. J. A. Welsh,et al.  An upper bound for the chromatic number of a graph and its application to timetabling problems , 1967, Comput. J..

[20]  Delon Levi,et al.  JBits: Java based interface for reconfigurable computing , 1999 .

[21]  Frank Vahid,et al.  Dynamic FPGA routing for just-in-time FPGA compilation , 2004, Proceedings. 41st Design Automation Conference, 2004..

[22]  Jean-Baptiste Note,et al.  From the bitstream to the netlist , 2008, FPGA '08.

[23]  Viktor K. Prasanna,et al.  Efficient Metacomputation Using Self-Reconfiguration , 2002, FPL.

[24]  E. Bergeron,et al.  Toward on-chip JIT synthesis on Xilinx VirtexII-Pro FPGAs , 2007, 2007 IEEE Northeast Workshop on Circuits and Systems.