Enabling unrestricted automated synthesis of portable hardware accelerators for virtual machines

The performance of virtual machines (e.g., Java Virtual Machines---JVMs) can be significantly improved when critical code sections (e.g., Java bytecode methods) are migrated from software to reconfigurable hardware. In contrast to the compile-once-run-anywhere concept of virtual machines, reconfigurable applications lack portability and transparent SW/HW interfacing: applicability of accelerated hardware solutions is often limited to a single platform. In this work, we apply a virtualisation layer that provides portable and seamless integration of hardware and software components to a Java Virtual Machine platform, making it capable of accelerating any Java bytecode method by using platform-independent hardware accelerators. The virtualisation layer not only improves portability of accelerated Java bytecode applications, but also supports runtime optimisations and enables unrestricted automated synthesis of arbitrary Java bytecode to hardware. To show the advantages and measure the limited overheads of our approach, we run several accelerated applications (handwritten and synthesised) on a real embedded platform. We also show our synthesis flow and discuss its advanced features fostered by the virtualisation layer.

[1]  Giovanni De Micheli,et al.  Synthesis of hardware models in C with pointers and complex data structures , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[2]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[3]  K. Buchenrieder,et al.  Java driven codesign and prototyping of networked embedded systems , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

[4]  Paolo Ienne,et al.  Virtual memory window for application-specific reconfigurable coprocessors , 2004, Proceedings. 41st Design Automation Conference, 2004..

[5]  Alexandru Nicolau,et al.  Memory Issues in Embedded Systems-on-Chip , 1999 .

[6]  Francky Catthoor,et al.  Custom Memory Management Methodology: Exploration of Memory Organisation for Embedded Multimedia System Design , 1998 .

[7]  Paolo Ienne,et al.  Virtual memory window for a portable reconfigurable cryptography coprocessor , 2004, 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[8]  Paolo Ienne,et al.  Dynamic Prefetching in the Virtual Memory Window of Portable Reconfigurable Coprocessors , 2004, FPL.

[9]  Chantal Ykman-Couvreur,et al.  Memory management for embedded network applications , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[10]  John Wawrzynek,et al.  The Garp Architecture and C Compiler , 2000, Computer.

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

[12]  Luca Benini,et al.  Improving Java performance using dynamic method migration on FPGAs , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[13]  Francky Catthoor,et al.  Custom Memory Management Methodology , 1998, Springer US.