A SW performance estimation framework for early system-level-design using fine-grained instrumentation

The increasing demands of high-performance in embedded applications under shortening time-to-market has prompted system architects in recent time to opt for multi-processor systems-on-chip (MP-SoCs) employing several programmable devices. The programmable cores provide a high amount of flexibility and reusability, and can be optimized to the requirements of the application to deliver high-performance as well. Since application software forms the basis of such designs, the need to tune the underlying SoC architecture for extracting maximum performance from the software code has become imperative. In this paper, we propose a framework that enables software development, verification and evaluation from the very beginning of MP-SoC design cycle. Unlike traditional SoC design flows where software design starts only after the initial SoC architecture is ready, our framework allows a co-development of the hardware and the software components in a tightly coupled loop where the hardware can be refined by considering the requirements of the software in a stepwise manner. The key element of this framework is the integration of a fine-grained software instrumentation tool into a system-level-design (SLD) environment to obtain accurate software performance and memory access statistics. The accuracy of such statistics is comparable to that obtained through instruction set simulation (ISS), while the execution speed of the instrumented software is almost an order of magnitude faster than ISS. Such a combined design approach assists system architects to optimize both the hardware and the software through fast exploration cycles, and can result in far shorter design cycles and high productivity. We demonstrate the generality and the efficiency of our methodology with two case studies selected from two most prominent and computationally intensive embedded application domains

[1]  Donald E. Thomas,et al.  Schedulers as model-based design elements in programmable heterogeneous multiprocessors , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[2]  Pierre G. Paulin,et al.  StepNP: A System-Level Exploration Platform for Network Processors , 2002, IEEE Des. Test Comput..

[3]  Ahmed Amine Jerraya,et al.  Unified component integration flow for multi-processor SoC design and validation , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[4]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.

[5]  Paolo Giusto,et al.  Reliable estimation of execution time of embedded software , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[6]  Rainer Leupers,et al.  A modular simulation framework for spatial and temporal task mapping onto multi-processor SoC platforms , 2005, Design, Automation and Test in Europe.

[7]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[8]  Kingshuk Karuri,et al.  Fine-grained application source code profiling for ASIP design , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[9]  Jan Madsen,et al.  Network-on-chip modeling for system-level multiprocessor simulation , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[10]  Ed F. Deprettere,et al.  Exploring Embedded-Systems Architectures with Artemis , 2001, Computer.

[11]  Marco Mattavelli,et al.  High-level algorithmic complexity evaluation for system design , 2003, J. Syst. Archit..

[12]  Robert F. Cmelik SpixTools: Introduction and User's Manual , 1993 .

[13]  Luciano Lavagno,et al.  Software performance estimation strategies in a system-level design tool , 2000, Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518).

[14]  Lothar Thiele,et al.  A framework for evaluating design tradeoffs in packet processing architectures , 2002, DAC '02.

[15]  염흥렬,et al.  [서평]「Applied Cryptography」 , 1997 .

[16]  Daniel D. Gajski,et al.  SPECC: Specification Language and Methodology , 2000 .