Efficient modeling of preemption in a virtual prototype

A virtual prototype combines a hardware model with hardware/software cosimulation to support the development and debugging of embedded software before a hardware prototype is available. Existing techniques for hardware/software cosimulation execute the software either on an instruction set simulator for accuracy or on the simulator host processor for increased performance. On the host processor timing is either completely ignored or approximated using timing annotations in the code. Although preemption (interrupts) can strongly influence the timing, it is rarely modeled to avoid a performance degrading that would make the virtual prototype unusable, especially for real time signal processing software simulations which is already time consuming as such. We propose a technique to accurately model preemption and its effect on software timing in a simulation based on host code execution. Our technique has been implemented in the TIPSY C++ library for executable system modeling, pseudo C-code for this implementation with several optimizations is included in this paper. With this implementation, a preemptive scheduler model can be easily be created or taken from a library and inserted in a system model without changing the original code to observe the effect of preemption on the system behavior.

[1]  Grant Martin Design methodologies for system level IP , 1998, Proceedings Design, Automation and Test in Europe.

[2]  H. De Man,et al.  On the use of C++ for system-on-chip design , 1999, Proceedings. IEEE Computer Society Workshop on VLSI '99. System Design: Towards System-on-a-Chip Paradigm.

[3]  Patrick Schaumont,et al.  A programming environment for the design of complex high speed ASICs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[4]  Luciano Lavagno,et al.  Hardware-Software Co-Design of Embedded Systems , 1997 .

[5]  Sharad Malik,et al.  Static timing analysis of embedded software , 1997, DAC.

[6]  Diederik Verkest,et al.  Combining software synthesis and hardware/software interface generation to meet hard real-time constraints , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[7]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[8]  Gaetano Borriello,et al.  A geographically distributed framework for embedded system design and validation , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[9]  Hugo De Man,et al.  Timed executable system specification of an ADSL modem using a C++ based design environment: A case study , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[10]  Ken Hines Pia: a framework for embedded system co-simulation with dynamic communication support , 1996 .

[11]  Alberto L. Sangiovanni-Vincentelli,et al.  Efficient software performance estimation methods for hardware/software codesign , 1996, DAC '96.

[12]  Heinrich Meyr,et al.  Compiled HW/SW co-simulation , 1996, DAC '96.