skip to main content
research-article

Computer-Aided Recoding to Create Structured and Analyzable System Models

Published:01 June 2012Publication History
Skip Abstract Section

Abstract

In embedded system design, the quality of the input model has a direct bearing on the effectiveness of the system exploration and synthesis tools. Given a well-written system model, tools today are effective in generating working implementations. However, readily available C reference code is not conducive for immediate system synthesis as it lacks needed features for automatic analysis and synthesis. Among others, the lack of proper structure and the presence of intractable pointers in the reference code are factors that seriously hamper the effectiveness of system design tools. To overcome these deficiencies, we aim to automate the conversion of flat C code into a well-structured system model by applying automated source code transformations. We present a set of computer-aided recoding operations that enable the system designer to mitigate pointer problems and quickly create the necessary structural hierarchy so that the design model becomes easily analyzable and synthesizable. Utilizing the designer’s knowledge, our interactive recoding transformations aid the designer in efficiently creating well-structured system models for rapid design space exploration and successful synthesis. Our estimated and measured experimental results show significant productivity gains through a substantial reduction of the model creation time.

References

  1. Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, DIKU, University of Copenhagen.Google ScholarGoogle Scholar
  2. Birch, J., van Engelen, R., Gallivan, K., and Shou, Y. 2006. An empirical evaluation of chains of recurrences for array dependence testing. In Proceedings of the 15th International Conference on Parallel Architectures and Compilation Techniques (PACT’06). ACM, New York, NY, 295--304. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Buss, M., Edwards, S. A., Yao, B., and Waddington, D. 2005. Pointer analysis for source-to-source transformations. In Proceedings of the IEEE International Workshop on Source Code Analysis and Manipulation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cesario, W. O., Lyonnard, D., Nicolescu, G., Paviot, Y., Yoo, S., A.Jerraya, A., Gauthier, L., and Diaz-Nava, M. 2002. Multiprocessor soc platforms: A component-based design approach. IEEE Des. Test Comput. 19, 6, 52--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Chandraiah, P. and Dömer, R. 2005. Specification and design of an mp3 audio decoder. Tech. rep. CECS-TR-05-04, Center for Embedded Computer Systems, University of California, Irvine. May.Google ScholarGoogle Scholar
  6. Chandraiah, P. and Dömer, R. 2007a. An interactive model re-coder for efficient SoC specification. In Proceedings of the International Embedded Systems Symposium. Springer.Google ScholarGoogle Scholar
  7. Chandraiah, P. and Dömer, R. 2007b. Pointer re-coding for creating definitive MPSoC models. In Proceedings of the International Symposium on Hardware-Software Codesign. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Chandraiah, P. and Dömer, R. 2008a. Assessment of productivity gains achieved through automated source re-coding. Tech. rep. CECS-TR-08-02, Center for Embedded Computer Systems, University of California, Irvine.Google ScholarGoogle Scholar
  9. Chandraiah, P. and Dömer, R. 2008b. Automatic re-coding of reference code into structured and analyzable soc models. In Proceedings of the Asia and South Pacific Design Automation Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Chandraiah, P. and Dömer, R. 2008c. Code and data structure partitioning for parallel and flexible mpsoc specification using designer-controlled re-coding. Trans. Comput.-Aid. Des. Integr. Circ. Syst. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chandraiah, P., Peng, J., and Dömer, R. 2007. Creating explicit communication in SoC models using interactive re-coding. In Proceedings of the Asia and South Pacific Design Automation Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Choi, J.-D., Burke, M., and Carini, P. 1993. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Proceedings of the ACM Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cockx, J., Denolf, K., Vanhoof, B., and Stahl, R. 2007. Sprint: A tool to generate concurrent transaction-level models from sequential code. EURASIP J. Appl. Signal Process. 1, 213--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Dömer, R. 2007. System-on-Chip description and modeling. Lecture Notes for graduate course EECS222A, University of California, Irvine.Google ScholarGoogle Scholar
  15. Dömer, R., Gerstlauer, A., Peng, J., Shin, D., Cai, L., Yu, H., Abdi, S., and Gajski, D. 2008. System-on-Chip Environment: A SpecC-based framework for heterogeneous MPSoC design. EURASIP J. Embed. Syst. Article 647953. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Engelen, R. A. v., Birch, J., and Gallivan, K. A. 2004. Array data dependence testing with the chains of recurrences algebra. In Proceedings of the Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA’04). IEEE Computer Society, Los Alamitos, CA, 70--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fahndrich, M., Rehof, J., and Das, M. 2000. Scalable context-sensitive flow analysis using instantiation constraints. In Proceedings of the Conference on Programming Language Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Franke, B. and O’boyle, M. 2003. Array recovery and high-level transformations for DSP applications. ACM Trans. Embed. Comput. Syst. 2, 2, 132--162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Gajski, D. D., Vahid, F., Narayan, S., and Gong, J. 1994. Specification and Design of Embedded Systems. Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Gajski, D. D., Zhu, J., Dömer, R., Gerstlauer, A., and Zhao, S. 2000. SpecC: Specification Language and Design Methodology. Kluwer Academic Publishers.Google ScholarGoogle Scholar
  21. Gerstlauer, A., Peng, J., Shin, D., Gajski, D., Nakamura, A., Araki, D., and Nishihara, Y. 2008. Specify-explore-refine (SER): From specification to implementation. In Proceedings of the 45th Annual Conference on Design Automation (DAC’08). 586--591. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ghenassia, F. 2006. Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ghiya, R. and Hendren, L. J. 1995. Connection analysis: A practical interprocedural heap analysis for C. Int. J. Paral Program. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Gupta, S., Gupta, R. K., Dutt, N. D., and Nicolau, A. 2004. Coordinated parallelizing compiler optimizations and high-level synthesis. ACM Trans. Des. Autom. Electron. Syst. 9, 4, 441--470. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Haubelt, C., Meredith, M., Schlichter, T., and Keinert, J. 2008. System codesigner: Automatic design space exploration and rapid prototyping from behavioral models. In Proceedings of the 45th Annual Conference on Design Automation (DAC’08). 580--585. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Hind, M. 2001. Pointer analysis: Haven’t we solved this problem yet? In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE’01). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. ITU. 1999. Specification and Description Language (SDL). International Telecommunication Union (ITU). ITU-T Recommendation Z.100.Google ScholarGoogle Scholar
  28. Jerraya, A., Tenhunen, H., and Wolf, W. 2005. Guest editors’ introduction: Multiprocessor systems-on-chips. Comput. 38, 7, 36--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Landi, W. 1992. Undecidability of static analysis. ACM Lett. Program. Lang. Syst. 1, 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. MAD MP3 Decoder. MAD (MPEG audio decoder) _x point mp3 algorithm implementation. http://sourceforge.net/projects/mad/.Google ScholarGoogle Scholar
  31. Marchioro, G. F., Daveau, J.-M., and Jerraya, A. A. 1997. Transformational partitioning for co-design of multiprocessor systems. In Proceedings of the IEEE International Conference on Computer-Aided Design. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. MiBench. MiBench, A free, commercially representative embedded benchmark suite. http://www.eecs.umich.edu/mibench/.Google ScholarGoogle Scholar
  33. MPG123. MPG123. http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz.Google ScholarGoogle Scholar
  34. Pimentel, A., L.O.Hertzberger, Lieverse, P., and Wolf, P. 2001. Exploring embedded systems architectures with artemis. IEEE Trans. Comput. 34, 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ramalingam, G. 1994. The undecidability of aliasing. ACM Trans. Program. Lang. Syst. 16, 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Schirrmeister, F. and Sangiovanni-Vincentelli, A. 2001. Virtual component co-design applying function architecture co-design to automotive applications. In Proceedings of the IEEE International Vehicle Electronics Conference (IVEC’01).Google ScholarGoogle Scholar
  37. Séméria, L. and Micheli, G. D. 1998. Spc: Synthesis of pointers in C: Application of pointer analysis to the behavioral synthesis from C. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design (ICCAD’98). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Steensgaard, B. 1996. Points-to analysis in almost linear time. In Proceedings of the ACM Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Vim. Vim, advanced text editor. http://www.vim.org/index.php.Google ScholarGoogle Scholar
  40. Wilson, R. P. and Lam, M. S. 1995. Efficient context-sensitive pointer analysis for c programs. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Zhang, S. et al. 1996. Program decomposition for pointer aliasing: a step toward practical analyses. In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Computer-Aided Recoding to Create Structured and Analyzable System Models

      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 Transactions on Embedded Computing Systems
        ACM Transactions on Embedded Computing Systems  Volume 11S, Issue 1
        June 2012
        283 pages
        ISSN:1539-9087
        EISSN:1558-3465
        DOI:10.1145/2180887
        Issue’s Table of Contents

        Copyright © 2012 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 June 2012
        • Accepted: 1 December 2009
        • Revised: 1 October 2009
        • Received: 1 June 2009
        Published in tecs Volume 11S, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader