Concurrency emulation and analysis of parallel applications for multi-processor system-on-chip co-design

This paper presents a novel technique for the modeling and the simulation of parallel applications for Multi-Processor Systems-on-Chip (MPSoCs). This technique consists of an application-transparent emulation of OS primitives, including task creation, scheduling, synchronization etc.; this emulation guarantees compatibility with any program compiled against the standard POSIX library, independently of the target OS. This methodology can be used to perform initial HW/SW partitioning and concurrent engineering of a given application, as it allows any software routine to be transparently emulated with SystemC modules. The proposed approach has been verified on a large set of multi-threaded benchmarks, with both POSIX Threads and OpenMP programming styles. Results show that our methodology enables (a) fast simulation of POSIX applications, (b) accurate analysis of multi-threaded applications, and (c) co-design and fast preliminary hardware-software partitioning.

[1]  Hiroaki Takada,et al.  RTOS-centric hardware/software cosimulator for embedded system design , 2004, International Conference on Hardware/Software Codesign and System Synthesis, 2004. CODES + ISSS 2004..

[2]  Sharad Malik,et al.  Flexible and formal modeling of microprocessors with application to retargetable simulation , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[3]  Franco Fummi,et al.  A Smooth Refinement Flow for Co-designing HW and SW Threads , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[4]  Ahmed Amine Jerraya,et al.  Automatic generation of fast timed simulation models for operating systems in SoC design , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[5]  Wayne H. Wolf A Decade of Hardware/Software Codesign , 2003, Computer.

[6]  Arturo González-Escribano,et al.  The OpenMP source code repository , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[7]  Gunar Schirner,et al.  Introducing Preemptive Scheduling in Abstract RTOS Models using Result Oriented Modeling , 2008, 2008 Design, Automation and Test in Europe.

[8]  Luca Fossati,et al.  ReSP: A non-intrusive Transaction-Level Reflective MPSoC Simulation Platform for design space exploration , 2008, 2008 Asia and South Pacific Design Automation Conference.

[9]  Eugenio Villar,et al.  POSIX modeling in SystemC , 2006, Asia and South Pacific Conference on Design Automation, 2006..

[10]  Rodolfo Azevedo,et al.  ArchC: a systemC-based architecture description language , 2004, 16th Symposium on Computer Architecture and High Performance Computing.

[11]  Lovic Gauthier,et al.  Automatic Generation Including Fast Timed Simulation Models of Operating Systems in Multiprocessor SoC Communication Design , 2001 .

[12]  Ralph E. Johnson,et al.  Reflective facilities in Smalltalk-80 , 1989, OOPSLA '89.

[13]  Edward A. Lee The problem with threads , 2006, Computer.

[14]  Gabriela Nicolescu,et al.  A platform for refinement of OS services for embedded systems , 2006, Third IEEE International Workshop on Electronic Design, Test and Applications (DELTA'06).