Just-in-time compilation for FPGA processor cores

Portability benefits have encouraged the trend of distributing applications using processor-independent instructions, a.k.a. bytecode, and executing that bytecode on an emulator running on a target processor. Transparent just-in-time (JIT) compilation of bytecode to native instructions is often used to increase application execution speed without sacrificing portability. Recent work has proposed distributing FPGA circuit applications in a SystemC bytecode to be emulated on a processor with portions possibly dynamically migrated to custom bytecode accelerator circuits or to native circuits on the FPGA. We introduce a novel JIT compiler for bytecode executing on a soft-core FPGA processor. During an iterative process of JIT compiler and emulator architecture codesign, we added JIT-aware resources on a soft-core processor's surrounding FPGA fabric, including a JIT memory, a signal queue, and an emulation memory controller — all unique to JIT compilation for FPGA processors versus traditional processors. Experiments show that regular JIT compilation achieved 3.0× average speedup over emulation, while our JIT-aware FPGA resources yielded an additional 5.2× average speedup, for a total of 15.7× average speedup, at a cost of 21% of a MicroBlaze processor core's slice usage.

[1]  Frédéric Pétrot,et al.  Using binary translation in event driven simulation for fast and flexible MPSoC simulation , 2009, CODES+ISSS '09.

[2]  Martin Schoeberl,et al.  Embedded JIT Compilation with CACAO on YARI , 2009, 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[3]  Flavius Gruian,et al.  BlueJEP: a flexible and high-performance Java embedded processor , 2007, JTRES.

[4]  Marco Platzner,et al.  Virtualizing Hardware with Multi-context Reconfigurable Arrays , 2003, FPL.

[5]  David Castells-Rufas,et al.  Jumble: A Hardware-in-the-Loop Simulation System for JHDL , 2007 .

[6]  Mendel Rosenblum,et al.  The Reincarnation of Virtual Machines , 2004, ACM Queue.

[7]  Herman Schmit,et al.  Efficient application representation for HASTE: Hybrid Architectures with a Single, Transformable Executable , 2003, 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2003. FCCM 2003..

[8]  Gil Neiger,et al.  IntelŴVirtualization Technology: Hardware Support for Efficient Processor Virtualization , 2006 .

[9]  David J. Lilja,et al.  Techniques for obtaining high performance in Java programs , 2000, CSUR.

[10]  Richard Johnson,et al.  The Transmeta Code Morphing/spl trade/ Software: using speculation, recovery, and adaptive retranslation to address real-life challenges , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[11]  Gareth Lee,et al.  Exploiting FPGA Concurrency to Enhance JVM Performance , 2004, ACSC.

[12]  Frank Vahid,et al.  Portable SystemC-on-a-chip , 2009, CODES+ISSS '09.

[13]  James E. Smith,et al.  Dynamic binary translation for accumulator-oriented architectures , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[14]  Ian Kaplan,et al.  A reconfigurable logic machine for fast event-driven simulation , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[15]  Jim Stevens,et al.  Enabling a Uniform Programming Model Across the Software/Hardware Boundary , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[16]  Frank Vahid,et al.  Warp Processing: Dynamic Translation of Binaries to FPGA Circuits , 2008, Computer.

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

[18]  Paolo Ienne,et al.  Seamless hardware-software integration in reconfigurable computing systems , 2005, IEEE Design & Test of Computers.

[19]  Jim Stevens,et al.  Achieving Programming Model Abstractions for Reconfigurable Computing , 2008, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[20]  Ole Agesen,et al.  A comparison of software and hardware techniques for x86 virtualization , 2006, ASPLOS XII.

[21]  Laurie A. Smith King,et al.  Writing Portable Applications that Dynamically Bind at Run Time to Reconfigurable Hardware , 2007, 15th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 2007).

[22]  Richard Johnson,et al.  The Transmeta Code Morphing#8482; Software: using speculation, recovery, and adaptive retranslation to address real-life challenges , 2003, CGO.

[23]  Frank Vahid,et al.  Online systemc emulation acceleration , 2010, Design Automation Conference.

[24]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.