skip to main content
10.1145/1967677.1967685acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
research-article

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

Published: 11 April 2011 Publication History

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
[2]
ISSS '09, pages 393--402, New York, NY, USA, 2009. ACM.
[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.
[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.
[5]
W. W. Carlson, D. E. Culler, and E. Brooks. Introduction to UPC and language specification. CCS-TR-99--157, 1999.
[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.
[7]
R. Chandra et al. Parallel programming in OpenMP. Morgan Kaufmann, 2001.
[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.
[9]
CoWare, Inc. CoWare Virtual Platform - hardware/software integration and testing...without hardware. http://www.coware.com/products/virtualplatform.php (Accessed Aug 09).
[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.
[11]
K. Fatahalian et al. Sequoia: programming the memory hierarchy. In SC '06, page 83, 2006.
[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.
[13]
J. Gosling and G. Bollella. The Real-Time Specification for Java. Addison-Wesley Longman Publishing Co., Inc., 2000.
[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.
[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.
[16]
W. Gropp, E. Lusk, and A. Skjellum. Using MPI: portable parallel programming with the message-passing interface. MIT Press, Cambridge, MA, USA, 1994.
[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.
[18]
J. Holt. Designing an industry standard api to manage multicore system resources. http://www.multicore-association.org/webinar/090811_MRAPI.pdf, August 2009.
[19]
Institute of Electrical and Electronics Engineers. POSIX.1c, threads extensions (IEEE Std 1003.1c-1995), 1995.
[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.
[21]
J. Maloy. TIPC: Providing communication for linux clusters. In Proceedings of the Linux Symposium - Volume 2, pages 347--356, 2004.
[22]
A. Munshi, editor. The OpenCL Specification. Khronos OpenCL Working Group, 2008.
[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.
[24]
J. Reinders. Intel Threading Building Blocks. O'Reilly & Associates, Inc., Sebastopol, CA, USA, 2007.
[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.
[26]
The Multicore Association. Multicore communications API specification V1.063 (MCAPI). http://www.multicore-association.org/workgroup/mcapi.php, March 2008.
[27]
W. Thies et al. StreamIt: A compiler for streaming applications, December 2001. MIT-LCS Technical Memo TM-622, Cambridge, MA.
[28]
Xilinx Corporation. Xilkernel. http://www.xilinx.com/ise/embedded/edk91i_docs/ξlkernel_v3_00_a.pdf, December 2006.
[29]
Xilinx Corporation. Microblaze processor reference guide. UG081 v9.0, 2008.

Cited By

View all

Index Terms

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

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        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
        • 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
        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Sponsors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 11 April 2011

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. embedded
        2. mcapi
        3. multicore
        4. virtualisation

        Qualifiers

        • Research-article

        Conference

        LCTES '11

        Acceptance Rates

        Overall Acceptance Rate 116 of 438 submissions, 26%

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)6
        • Downloads (Last 6 weeks)3
        Reflects downloads up to 30 Dec 2024

        Other Metrics

        Citations

        Cited By

        View all

        View Options

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media