Abstract
Applications and architectures for embedded systems are becoming more and more complex. It is difficult to analyze complex embedded applications at early stages of the design flow without generic automated tools and methodologies. Consequently, application analysis under the real input conditions is becoming more and more important. Existing application analysis methodologies mainly focus on a single design objective. A general purpose application analysis methodology is required to satisfy multiple objectives of early design space exploration. This article proposes a general purpose application analysis methodology based on a visitor design pattern. High level source specifications are transformed into a trace tree representation by dynamic analysis. Trace tree representation is analyzed by using a visitor design pattern to get run-time characteristics of the application. Among other outcomes, application characterization and average inherited parallelism are key concerns in this article. Experimental results with MPEG-2 video decoder shows viability of the proposed methodology.
Similar content being viewed by others
References
Howard J et al. (2011) A 48-core IA-32 processor in 45 nm CMOS using on-die message-passing and DVFS for performance and power scaling. IEEE J Solid-State Circuits 46(1):173–183
Bhattacharyya SS et al. (2011) Overview of the MPEG reconfigurable video coding framework. J Signal Process Syst 63(2):251–263
Marwedel P et al. (2011) Mapping of applications to MPSoCs. In: Proceedings of the seventh IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis, Taipei, Taiwan, October 2011, pp 109–118
Abdi S, Hwang Y, Yu L, Schirner G, Gajski D (2011) Automatic TLM generation for early validation of multicore systems. IEEE Des Test Comput 28(3):10–19
Silvano C et al. (2011) Parallel programming and run-time resource management framework for many-core platforms. In: 6th international workshop on communication-centric systems-on-chip, August 2011 pp 1–7
Rul S, Vandierendonck H, De Bosschere K (2010) A profile-based tool for finding pipeline parallelism in sequential programs. Parallel Comput 36(9):531–551
Tournavitis G, Franke B (2010) Semi-automatic extraction and exploitation of hierarchical pipeline parallelism using profiling information. In: Proceedings of the 19th international conference on parallel architectures and compilation techniques, New York, NY, USA, September 2010, pp 377–388
Cockx J, Denolf K, Vanhoof B, Stahl R (2007) SPRINT: a tool to generate concurrent transaction-level models from sequential code. EURASIP J Adv Signal Process 2007, 75373. 15 pages
Mitchell L et al. (2012) Parallel classification and feature selection in microarray data using SPRINT. In: Concurrency and computation: practice and experience, September 2012
Thies W, Chandrasekhar V, Amarasinghe S (2007) A practical approach to exploiting coarse-grained pipeline parallelism in C programs. In: Proceedings of the 40th annual IEEE/ACM international symposium on micro architecture (Micro-40), Chicago, Illinois, USA, December 2007, pp 356–369
Thies W, Amarasinghe S (2010) An empirical characterization of stream programs and its implications for language and compiler design. In: International conference on parallel architectures and compilation techniques, Austria, September 2010, pp 11–15
Amor NB, Le Moullec Y, Diguet JP, Philippe JL, Abid M (2005) Design of a multimedia processor based on metrics computation. Adv Eng Softw 36(7):448–458
Le Moullec Y, Diguet J-P, Amor NB, Gourdeaux T, Philippe J-L (2006) Algorithmic-level specification and characterization of embedded multimedia applications with design trotter. J VLSI Signal Process Syst 42(2):185–208
Prihozhy A, Mattavelli M, Mlynek D (2005) Evaluation of the parallelization potential for efficient multimedia implementations: dynamic evaluation of algorithm critical path. IEEE Trans Circuits Syst Video Technol 93(8):593–608
Lucarz C, Roquier G, Mattavelli M (2010) High level design space exploration of RVC codec specifications for multi-core heterogeneous platforms. In: Design and architectures for signal and image processing, pp 191–198
Tomek I (2002) The joy of Smalltalk. 700 pages (online). Available: www.iam.unibe.ch/~ducasse/FreeBooks/Joy/
Cornelissen B, Zaidman A, van Deursen A, Moonen L, Koschke R (2009) A systematic survey of program comprehension through dynamic analysis. IEEE Trans Softw Eng 35(5):684–702
Sengupta A, Sedaghat R, Zeng Z (2011) Multi-objective efficient design space exploration and architectural synthesis of an application specific processor (ASP). Microprocess Microsyst 35(4):392–404
ISO/IEC 13818-2 (1994) Generic Coding of Moving Pictures and Associated Audio Information—Part 2: Video. Also ITU-T Recommendation H.262
Castrillon J, Sheng W, Leupers R (2011) Trends in embedded software synthesis. In: International conference on embedded computer systems (SAMOS), July 2011, pp 347–354
Koziolek H (2010) Performance evaluation of component-based software systems: a survey. In: Journal of performance evaluation, vol 67. Elsevier, New York
Wilhelm R, Engblom J, Ermedahl A, Holsti N, Thesing S, Whalley D, Bernat G, Ferdinand C, Heckmann R, Mitra T, Mueller F, Puaut I, Puschner P, Staschulat J, Stenstrom P (2008) The worst-case execution-time problem: overview of methods and survey of tools. ACM Trans Embed Comput Syst 7(3):36
Ravasi M, Mattavelli M (2005) High abstraction level complexity analysis and memory architecture simulations of multimedia algorithms. IEEE Trans Circuits Syst Video Technol 15(5):673–684
Uquillas Gomeza V, Ducasse S, D’Hondta T (2012) Ring: a unifying meta-model and infrastructure for Smalltalk source code analysis tools. Comput Lang Syst Struct 38(1):44–60
Trace D. Sun Microsystems, web site: http://en.wikipedia.org/wiki/DTrace
Casmira JP, Kaeli JFDR (1995) Operating-system level tracing tools for the DEC AXP architecture. In: Proceedings of the 1997 workshop on computer architecture education, New York, NY, USA
Rul S, Vandierendonck H, De Bosschere K (2007) Function level parallelism driven by data dependencies. Comput Archit News 35(1):55–62
Rul S, Vandierendonck H, De Bosschere K (2008) Extracting coarse-grain parallelism in general-purpose programs. In: Proceedings of the 13th ACM SIGPLAN symposium on principles and practice of parallel programming February 2008
Gamma E, Helm R, Johnson R, Vlissides JM (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading
Ruby Programming Language. http://www.ruby-lang.org/en/
Edelin G et al. (2007) A programming toolset enabling exploitation of reconfiguration for increased flexibility in future system-on-chips. In: Design automation and test in Europe, Nice, France, April 2007
Pottier B, Boukhobza J, Goubier T (2007) Invited talk: an integrated platform for heterogeneous reconfigurable computing. In: International conference on engineering of reconfigurable systems and algorithms (ERSA’07), Navada, USA, June 2007
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Rashid, M., Pottier, B. Visitor-based application analysis methodology for early design space exploration. Des Autom Embed Syst 16, 319–338 (2012). https://doi.org/10.1007/s10617-013-9111-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-013-9111-8