Abstract
Reprogrammable hardware like Field-Programmable Gate Arrays (FPGAs) is becoming increasingly powerful and affordable. Modern FPGA chips can be reprogrammed at runtime and with low latency which makes them attractive to be used as a dynamic resource in systems. For instance, on mobile devices FPGAs can help to accelerate the performance of critical tasks and at the same time increase the energy-efficiency of the device. The integration of FPGA resources into commodity software, however, is a highly involved task. On the one hand, there is an impedance mismatch between the hardware description languages in which FPGAs are programmed and the high-level languages in which many mobile applications are nowadays developed. On the other hand, the FPGA is a limited and shared resource and as such requires explicit resource management. In this paper, we present the Juggle middleware which leverages the ideas of modularity and service-orientation to facilitate a seamless exchange of hardware and software implementations at runtime. Juggle is built around the well-established OSGi standard for software modules in Java and extends it with support for services implemented in reprogrammable hardware, thereby leveraging the same level of management for both worlds. We show that hardware-accelerated services implemented with Juggle can help to increase the performance of applications and reduce power consumption on mobile devices without requiring any changes to existing program code.
Chapter PDF
Similar content being viewed by others
Keywords
References
Guccione, S., Levi, D., Sundararajan, P.: JBits: Java based interface for reconfigurable computing. In: MAPLD 1999 (1999)
Huang, S.S., Hormati, A., Bacon, D.F., Rabbah, R.: Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 76–103. Springer, Heidelberg (2008)
Huebner, M., Becker, T., Becker, J.: Real-time LUT-based network topologies for dynamic and partial FPGA self-reconfiguration. In: SBCCI 2004: Proceedings of the 17th Symposium on Integrated Circuits and System Design, pp. 28–32 (2004)
IBM Microelectronics: CoreConnect Bus Architecture (1999), https://www-01.ibm.com/chips/techlib/techlib.nsf/productfamilies/CoreConnect_Bus_Architecture
IcedTea Project: OpenJDK IcedTea (2006), http://icedtea.classpath.org
IEEE: Standard VHDL Language Reference Manual. ANSI/IEEE Std 1076-1993 (1994)
IEEE: Standard for System Verilog-Unified Hardware Design, Specification, and Verification Language. IEEE STD 1800-2009 (2009)
Krall, A., Grafl, R.: CACAO - A 64-bit JavaVM Just-in-time Compiler. Concurrency: Practice and Experience 9, 1017–1030 (1997)
Mérillon, F., Réveillère, L., Consel, C., Marlet, R., Muller, G.: Devil: an IDL for hardware programming. In: OSDI 2000 (2000)
National Institute of Standards and Technology: Data Encryption Standard (DES). FIPS Publication 46-2 (1993)
National Institute of Standards and Technology: Data Encryption Standard (DES). FIPS Publication 46-3 (1999)
OSGi Alliance: OSGi Service Platform, Core Specification Release 4, Version 4.2, Draft (2009)
Rellermeyer, J.S., Alonso, G.: Concierge: A Service Platform for Resource-Constrained Devices. In: EuroSys 2007: Proc. of the ACM SIGOPS/EuroSys European Conference on Computer Systems, pp. 245–258. ACM (2007)
Schoeberl, M.: JOP: A Java Optimized Processor. In: Meersman, R. (ed.) OTM-WS 2003. LNCS, vol. 2889, pp. 346–359. Springer, Heidelberg (2003)
Sony Corporation: Virtual Mobile Engine (VME). http://www.sony.net/Products/SC-HP/cx_news/vol42/pdf/sideview42.pdf (2002)
The Legion of the Bouncy Castle: Bouncy Castle Java Cryptography APIs (2000), http://www.bouncycastle.org/java.html
Ullmann, M., Huebner, M., Grimm, B., Becker, J.: An FPGA Run-Time System for Dynamical On-Demand Reconfiguration. International Parallel and Distributed Processing Symposium 4, 135a (2004)
Williams, J.W., Bergmann, N.W.: Embedded Linux as a Platform for Dynamically Self-Reconfiguring Systems-on-Chip. In: ERSA, pp. 163–169 (2004)
Xilinx Inc.: Xilinx University Program, Virtex-II Pro Development System, Hardware Reference Manual (2009), http://www.xilinx.com/univ/XUPV2P/Documentation/ug069.pdf
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 IFIP International Federation for Information Processing
About this paper
Cite this paper
Rellermeyer, J.S., Küpfer, R. (2011). Co-managing Software and Hardware Modules through the Juggle Middleware. In: Kon, F., Kermarrec, AM. (eds) Middleware 2011. Middleware 2011. Lecture Notes in Computer Science, vol 7049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25821-3_22
Download citation
DOI: https://doi.org/10.1007/978-3-642-25821-3_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25820-6
Online ISBN: 978-3-642-25821-3
eBook Packages: Computer ScienceComputer Science (R0)