Hardware JIT Compilation for Off-the-Shelf Dynamically Reconfigurable FPGAs

  • Etienne Bergeron
  • Marc Feeley
  • Jean Pierre David
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4959)


JIT compilation is a model of execution which translates at run time critical parts of the program to a low level representation. Typically a JIT compiler produces machine code from an intermediate bytecode representation. This paper considers a hardware JIT compiler targeting FPGAs, which are digital circuits configurable as needed to implement application specific circuits. Recent FPGAs in the Xilinx Virtex family are particularly attractive for hardware JIT because they are reconfigurable at run time, they contain both CPUs and reconfigurable logic, and their architecture strikes a balance of features.

In this paper we discuss the design of a hardware architecture and compiler able to dynamically enhance the instruction set with hardware specialized instructions. A prototype system based on the Xilinx Virtex family supporting hardware JIT compilation is described and evaluated.


  1. 1.
    Bergeron, E., Feeley, M., David, J.P.: Toward On-Chip JIT Synthesis on Xilinx Virtex-II Pro FPGAs. In: 50th International Midwest Symposium on Circuits and Systems/5th International Northeast Workshop on Circuits (MWCAS/NEWCAS), Montreal, Canada (August 2007)Google Scholar
  2. 2.
    Bergeron, E., Saint-Mleux, X., Feeley, M., David, J.P.: High-level synthesis for data-driven applications. In: IEEE International Workshop on Rapid System Prototyping, pp. 54–60 (2005)Google Scholar
  3. 3.
    Betz, V., Rose, J.: VPR: A new packing, placement and routing tool for FPGA research. In: Glesner, M., Luk, W. (eds.) FPL 1997. LNCS, vol. 1304, pp. 213–222. Springer, Heidelberg (1997)Google Scholar
  4. 4.
    Brebner, G.: The swappable logic unit: a paradigm for virtual hardware. In: FCCM 1997: Proceedings of the 5th IEEE Symposium on FPGA-Based Custom Computing Machines, Washington, DC, USA (1997)Google Scholar
  5. 5.
    Ebeling, C., McMurchie, L., Hauck, S.A., Burns, S.: Placement and routing tools for the Triptych FPGA. IEEE Trans. Very Large Scale Integr. Syst. 3(4), 473–482 (1995)CrossRefGoogle Scholar
  6. 6.
  7. 7.
    Feeley, M., Lapalme, G.: Using closures for code generation. Computer Languages 12(1), 47–66 (1987)CrossRefGoogle Scholar
  8. 8.
    Goldstein, S.C., Schmit, H., Budiu, M., Cadambi, S., Moe, M., Taylor, R.R.: PipeRench: A reconfigurable architecture and compiler. Computer 33(4), 70–77 (2000)CrossRefGoogle Scholar
  9. 9.
    Greskamp, B., Sass, R.: A Virtual Machine for Merit-Based Runtime Reconfiguration. In: IEEE Symposium on Field-Programmable Custom Computing Machines (April 2005)Google Scholar
  10. 10.
    Kelsey, R., Clinger, W., Rees, J. (eds.): Revised5 Report on the Algorithmic Language Scheme. ACM SIGPLAN Notices 33(9), 26–76 (1998)CrossRefGoogle Scholar
  11. 11.
    Lysecky, R., Stitt, G., Vahid, F.: Warp processors. ACM Transactions on Design Automation of Electronic Systems, 659–681 (July 2006)Google Scholar
  12. 12.
    Lysecky, R., Vahid, F.: A configurable logic architecture for dynamic hardware/software partitioning. In: Design Automation and Test in Europe Conference (2004)Google Scholar
  13. 13.
    Lysecky, R., Vahid, F., Tan, S.X.-D.: Dynamic FPGA routing for just-in-time FPGA compilation. In: Design Automation Conference, pp. 954–959 (2004)Google Scholar
  14. 14.
    Lysecky, R., Vahid, F., Tan, S.X.-D.: A study of the scalability of on-chip routing for just-in-time FPGA compilation. In: IEEE Symposium on Field-Programmable Custom Computing Machines, pp. 57–62 (2005)Google Scholar
  15. 15.
    Ling, X.-p., Amano, H.: Performance evaluation of WASMII: a data driven computer on a virtual hardware. In: Reeve, M., Bode, A., Wolf, G. (eds.) PARLE 1993. LNCS, vol. 694, pp. 610–621. Springer, Heidelberg (1993)Google Scholar
  16. 16.
    Schmit, H., Whelihan, D., Tsai, A., Moe, M., Levine, B., Taylor, R.R.: PipeRench: A virtualized programmable datapath. In: Proceedings of the IEEE 2002 Custom Integrated Circuits Conference, pp. 63–66 (2002)Google Scholar
  17. 17.
    Stitt, G., Vahid, F.: Binary Synthesis. ACM Transactions on Design Automation of Electronic Systems 12(3), 34 (2007)CrossRefGoogle Scholar
  18. 18.
    Xilinx. XAPP290: Two Flows for Partial Reconfigurable Core Based on Small Bit Manipulations. Technical report, Xilinx (September 2002)Google Scholar
  19. 19.
    Xilinx. Virtex-II Pro and Virtex-II Pro X Platform FPGAs: Complete Data Sheet. Technical report, Xilinx (June 2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Etienne Bergeron
    • 1
  • Marc Feeley
    • 1
  • Jean Pierre David
    • 1
  1. 1.DIROUniversité de Montréal, GRM, École Polytechnique de Montréal 

Personalised recommendations