skip to main content
research-article

Targeting complex embedded architectures by combining the multicore communications API (mcapi) with compile-time virtualisation

Published:11 April 2011Publication History
Skip Abstract Section

Abstract

Within the domain of embedded systems, hardware architectures are commonly characterised by application-specific heterogeneity. Systems may contain multiple dissimilar processing elements, non-standard memory architectures, and custom hardware elements. The programming of such systems is a considerable challenge, not only because of the need to exploit large degrees of parallelism but also because hardware architectures change from system to system. To solve this problem, this paper proposes the novel combination of a new industry standard for communication across multicore architectures (MCAPI), with a minimal-overhead technique for targeting complex architectures with standard programming languages (Compile-Time Virtualisation).

The Multicore Association have proposed MCAPI as an industry standard for on-chip communications. MCAPI abstracts the on-chip physical communication to provide the application with logical point-to-point unidirectional channels between nodes (software thread, hardware core, etc.). Compile-Time Virtualisation is used to provide an extremely lightweight implementation of MCAPI, that supports a much wider range of architectures than its specification normally considers. Overall, this unique combination enhances programmability by abstracting on-chip communication whilst also exposing critical parts of the target architecture to the programming language.

References

  1. J. Agron and D. Andrews. Building heterogeneous reconfigurable systems with a hardware microkernel. In Proceedings of CODES Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ISSS '09, pages 393--402, New York, NY, USA, 2009. ACM.Google ScholarGoogle Scholar
  3. Baumann et al. The Multikernel: a new OS architecture for scalable multicore systems. In Proceedings of SOSP '09, pages 29--44, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Brukardt. The Ada95 language reference manual - Appendix E, Distributed Systems (International Standard ISO/IEC 8652:1995). http://www.adaic.org/standards/95lrm/html/RM-E.html.Google ScholarGoogle Scholar
  5. W. W. Carlson, D. E. Culler, and E. Brooks. Introduction to UPC and language specification. CCS-TR-99--157, 1999.Google ScholarGoogle Scholar
  6. B. Chamberlain, D. Callahan, and H. Zima. Parallel programmability and the Chapel language. Int. J. High Perform. Comput. Appl., 21(3):291--312, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. Chandra et al. Parallel programming in OpenMP. Morgan Kaufmann, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In Proceedings of OOPSLA '05, pages 519--538, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. CoWare, Inc. CoWare Virtual Platform - hardware/software integration and testing...without hardware. http://www.coware.com/products/virtualplatform.php (Accessed Aug 09).Google ScholarGoogle Scholar
  10. P. Dibble and A. Wellings. JSR-282 status report. In Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, ACM International Conference Proceeding Series, pages 179--182, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Fatahalian et al. Sequoia: programming the memory hierarchy. In SC '06, page 83, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. B. Gokhale, J. M. Stone, J. Arnold, and M. Kalinowski. Stream-oriented FPGA computing in the Streams-C high level language. In FCCM '00, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Gosling and G. Bollella. The Real-Time Specification for Java. Addison-Wesley Longman Publishing Co., Inc., 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. I. Gray and N. Audsley. Exposing non-standard architectures to embedded software using Compile-Time Virtualisation. International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES '09), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. I. Gray and N. Audsley. Supporting islands of coherency for highly-parallel embedded architectures using Compile-Time Virtualisation. In 13th International Workshop on Software and Compilers for Embedded Systems (SCOPES), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. W. Gropp, E. Lusk, and A. Skjellum. Using MPI: portable parallel programming with the message-passing interface. MIT Press, Cambridge, MA, USA, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. C. Göthe, D. Wengelin, and L. Asplund. The distributed Ada run-time system DARTS. Software: Practice and Experience, 21:1249--1263, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Holt. Designing an industry standard api to manage multicore system resources. http://www.multicore-association.org/webinar/090811_MRAPI.pdf, August 2009.Google ScholarGoogle Scholar
  19. Institute of Electrical and Electronics Engineers. POSIX.1c, threads extensions (IEEE Std 1003.1c-1995), 1995.Google ScholarGoogle Scholar
  20. R. Klefstad, M. Deshpande, C. O?Ryan, A. Corsaro, A. S. Krishna, S. Rao, and K. Raman. The performance of ZEN: A real time CORBA ORB using real time java. In Proceedings of Real-time and Embedded Distributed Object Computing Workshop. OMG, September 2002.Google ScholarGoogle Scholar
  21. J. Maloy. TIPC: Providing communication for linux clusters. In Proceedings of the Linux Symposium - Volume 2, pages 347--356, 2004.Google ScholarGoogle Scholar
  22. A. Munshi, editor. The OpenCL Specification. Khronos OpenCL Working Group, 2008.Google ScholarGoogle Scholar
  23. A. L. Pope. The CORBA reference guide: understanding the Common Object Request Broker Architecture. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Reinders. Intel Threading Building Blocks. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Sharma, G. Gopalakrishnan, E. Mercer, and J. Holt. Mcc - a runtime verification tool for mcapi user applications. In Proceedings of Formal Methods in Computer Aided Design 2009 (FMCAD09), 2009.Google ScholarGoogle ScholarCross RefCross Ref
  26. The Multicore Association. Multicore communications API specification V1.063 (MCAPI). http://www.multicore-association.org/workgroup/mcapi.php, March 2008.Google ScholarGoogle Scholar
  27. W. Thies et al. StreamIt: A compiler for streaming applications, December 2001. MIT-LCS Technical Memo TM-622, Cambridge, MA.Google ScholarGoogle Scholar
  28. Xilinx Corporation. Xilkernel. http://www.xilinx.com/ise/embedded/edk91i_docs/ξlkernel_v3_00_a.pdf, December 2006.Google ScholarGoogle Scholar
  29. Xilinx Corporation. Microblaze processor reference guide. UG081 v9.0, 2008.Google ScholarGoogle Scholar

Index Terms

  1. Targeting complex embedded architectures by combining the multicore communications API (mcapi) with compile-time virtualisation

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 46, Issue 5
          LCTES '10
          May 2011
          170 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2016603
          Issue’s Table of Contents
          • cover image ACM Conferences
            LCTES '11: Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
            April 2011
            182 pages
            ISBN:9781450305556
            DOI:10.1145/1967677

          Copyright © 2011 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 11 April 2011

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!