Abstract
When targeting hardware accelerators and reconfigurable processing units, the question of programmability arises, i.e. how different implementations of individual, configuration-specific functions are provided. Conventionally, this is resolved either at compilation time with a specific hardware environment being targeted, by initialization routines at program start, or decision trees at run-time. Such technique are, however, hardly applicable to dynamically changing architectures. Furthermore, these approaches show conceptual drawbacks such as requiring access to source code and requiring upfront knowledge of future system configurations, as well as overloading the code with reconfiguration-related control routines.
We therefore present a low-overhead technique enabling on-demand resolving of individual functions; this technique can be applied in two different manners; we will discuss the benefits of the individual implementations and show how both approaches can be used to establish code compatibility between different heterogeneous, reconfigurable, and parallel architectures. Further we will show, that both approaches are exposing an insignificant overhead.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Advanced Micro Devices. AMD Fusion Whitepaper, http://www.amd.com/us/MarketingDownloads/AMD_fusion_Whitepaper.pdf
Hormati, A., Kudlur, M., Bacon, D., Mahlke, S., Rabbah, R.: Optimus: Efficient Realization of Streaming Applications on FPGAs. In: Proceedings of the 2008 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES) (to appear) (October 2008)
Becker, J., Brändle, K., Brinkschulte, U., Henkel, J., Karl, W., Köster, T., Wenz, M., Wörn, H.: Digital On-Demand Computing Organism for Real-Time Systems. In: Karl, W., Becker, J., Grobietsch, K.-E., Hochberger, C., Maehle, E. (eds.) Workshop Proceedings of the 19th International Conference on Architecture of Computing Systems (LNI P81), March 2006, pp. 230–245 (2006)
Khronos Group. Khronos OpenCL API Registry (December (2008), http://www.khronos.org/registry/cl/
Haase, J., Eschmann, F., Klauer, B., Waldschmidt, K.: The SDVM: A Self Distributing Virtual Machine for computer clusters. In: Müller-Schloer, C., Ungerer, T., Bauer, B. (eds.) ARCS 2004. LNCS, vol. 2981, pp. 9–19. Springer, Heidelberg (2004)
Held, J., Bautista, J., Koehl, S.: From a Few Cores to Many: A Tera-scale Computing Research Overview. Research at Intel Whitepaper (2006), http://download.intel.com/research/platform/terascale/terascale_overview_paper.pdf
Hofmann, A., Waldschmidt, K.: SDVMR: A Scalable Firmware for FPGA-based Multi-Core Systems-on-Chip. In: 9th Workshop on Parallel Systems and Algorithms (PASA 2008), Dresden, Germany, vol. LNI P-124, pp. 59–68. GI e.V. (January 2008)
Linderman, M.D., Collins, J.D., Wang, H., Meng, T.H.: Merge: a programming model for heterogeneous multi-core systems. In: ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, pp. 287–296. ACM, New York (2008)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Sun Microsystems, 2nd edn. (1999) ISBN 978-0201432947, http://java.sun.com/docs/books/jvms/
Jones, M.T.: Access the Linux kernel using the /proc filesystem. In: IBM developerWorks (2006), http://www.ibm.com/developerworks/library/l-proc.html
Olukotun, K., et al.: Towards Pervasive Parallelism. In: Barcelona Multicore Workshop (BMW (June 2008), http://ppl.stanford.edu/wiki/images/9/93/PPL.pdf
Huang, S., Hormati, A., Bacon, D., Rabbah, R.: Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 76–103. Springer, Heidelberg (2008)
The Santa Cruz Operation, Inc. System V Application Binary Interface (Edition 4.1) (1997), http://www.caldera.com/developers/devspecs/gabi41.pdf
Vassiliadis, S., Wong, S., Cotofana, S.D.: The MOLEN μ-coded Processor. In: Brebner, G., Woods, R. (eds.) FPL 2001. LNCS, vol. 2147, pp. 275–285. Springer, Heidelberg (2001)
Shukla, V.: Explore the Linux memory model. In: IBM developerWorks (2006), http://www.ibm.com/developerworks/linux/library/l-memmod/
Wang, P.H., Collins, J.D., Chinya, G.N., Jiang, H., Tian, X., Girkar, M., Yang, N.Y., Lueh, G.-Y., Wang, H.: EXOCHI: architecture and programming environment for a heterogeneous multi-core multithreaded system. SIGPLAN Not 42(6), 156–166 (2007)
Xilinx, Inc. VirtexTM Family FPGAs (2008), http://www.xilinx.com/products/silicon_solutions/fpgas/virtex/index.htm
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Buchty, R., Kramer, D., Kicherer, M., Karl, W. (2009). A Light-Weight Approach to Dynamical Runtime Linking Supporting Heterogenous, Parallel, and Reconfigurable Architectures. In: Berekovic, M., Müller-Schloer, C., Hochberger, C., Wong, S. (eds) Architecture of Computing Systems – ARCS 2009. ARCS 2009. Lecture Notes in Computer Science, vol 5455. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00454-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-00454-4_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00453-7
Online ISBN: 978-3-642-00454-4
eBook Packages: Computer ScienceComputer Science (R0)