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.
- Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, DIKU, University of Copenhagen.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Dömer, R. 2007. System-on-Chip description and modeling. Lecture Notes for graduate course EECS222A, University of California, Irvine.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Gajski, D. D., Vahid, F., Narayan, S., and Gong, J. 1994. Specification and Design of Embedded Systems. Prentice Hall. Google ScholarDigital Library
- Gajski, D. D., Zhu, J., Dömer, R., Gerstlauer, A., and Zhao, S. 2000. SpecC: Specification Language and Design Methodology. Kluwer Academic Publishers.Google Scholar
- 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 ScholarDigital Library
- Ghenassia, F. 2006. Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems. Springer. Google ScholarDigital Library
- Ghiya, R. and Hendren, L. J. 1995. Connection analysis: A practical interprocedural heap analysis for C. Int. J. Paral Program. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- ITU. 1999. Specification and Description Language (SDL). International Telecommunication Union (ITU). ITU-T Recommendation Z.100.Google Scholar
- Jerraya, A., Tenhunen, H., and Wolf, W. 2005. Guest editors’ introduction: Multiprocessor systems-on-chips. Comput. 38, 7, 36--40. Google ScholarDigital Library
- Landi, W. 1992. Undecidability of static analysis. ACM Lett. Program. Lang. Syst. 1, 4. Google ScholarDigital Library
- MAD MP3 Decoder. MAD (MPEG audio decoder) _x point mp3 algorithm implementation. http://sourceforge.net/projects/mad/.Google Scholar
- 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 ScholarDigital Library
- MiBench. MiBench, A free, commercially representative embedded benchmark suite. http://www.eecs.umich.edu/mibench/.Google Scholar
- MPG123. MPG123. http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz.Google Scholar
- Pimentel, A., L.O.Hertzberger, Lieverse, P., and Wolf, P. 2001. Exploring embedded systems architectures with artemis. IEEE Trans. Comput. 34, 1. Google ScholarDigital Library
- Ramalingam, G. 1994. The undecidability of aliasing. ACM Trans. Program. Lang. Syst. 16, 5. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Steensgaard, B. 1996. Points-to analysis in almost linear time. In Proceedings of the ACM Symposium on Principles of Programming Languages. Google ScholarDigital Library
- Vim. Vim, advanced text editor. http://www.vim.org/index.php.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Computer-Aided Recoding to Create Structured and Analyzable System Models
Recommendations
Code and Data Structure Partitioning for Parallel and Flexible MPSoC Specification Using Designer-Controlled Recoding
MultiProcessor systems-on-chip (MPSoCs) are increasingly being used to build efficient and cost-effective embedded systems that meet the necessary real-time requirements. However, programming heterogeneous MPSoCs is highly challenging. The existing ...
Electronic system-level synthesis methodologies
With ever-increasing system complexities, all major semiconductor roadmaps have identified the need for moving to higher levels of abstraction in order to increase productivity in electronic system design. Most recently, many approaches and tools that ...
A code refinement methodology for performance-improved synthesis from C
ICCAD '06: Proceedings of the 2006 IEEE/ACM international conference on Computer-aided designAlthough many recent advances have been made in hardware synthesis techniques from software programming languages such as C, the performance of synthesized hardware commonly suffers due to the use of C constructs and coding practices that are not ...
Comments