System-level issues for software thread integration: guest triggering and host selection

Software thread integration provides low-cost concurrency on general-purpose processors by automatically interleaving multiple threads of control into one. This simplifies hardware to software migration and can help embedded system designers meet design constraints. Previous work describes how to efficiently integrate threads. In this paper we demonstrate how to link trigger events with guest thread execution and how to analyze an application to determine which threads to integrate. The analysis involves timing measurement and prediction to identify the amount of easily accessible temporally deterministic code within each function. This information is used to predict quantitatively the impact of design decisions on system efficiency and help guide integration. To illustrate this process we evaluate an application predicted for the year 2005, when $20 buys a 2000 MIPS embedded processor-a software-based high-resolution MPEG video player.

[1]  John Paul Shen,et al.  Hardware to software migration with real-time thread integration , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[2]  Alexander Dean,et al.  A High-Temperature Embedded Network Interface using Software Thread Integration , 1999 .

[3]  John Paul Shen,et al.  Techniques for software thread integration in real-time embedded systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[4]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[5]  Vicki H. Allan,et al.  Enhanced region scheduling on a program dependence graph , 1992, MICRO 1992.

[6]  Rajiv Gupta,et al.  Busy-idle profiles and compact task graphs: compile-time support for interleaved and overlapped scheduling of real-time tasks , 1994, 1994 Proceedings Real-Time Systems Symposium.

[7]  Rajiv Gupta,et al.  Region Scheduling: An Approach for Detecting and Redistributing Parallelism , 1990, IEEE Trans. Software Eng..

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

[9]  John Paul Shen,et al.  A PDG-based Tool and its Use in Analyzing Program Control Dependences , 1994, IFIP PACT.

[10]  Chris J. Newburn,et al.  EXPLOITING MULTI-GRAINED PARALLELISM FOR MULTIPLE-INSTRUCTION-STREAM ARCHITECTURES , 1997 .

[11]  Didier Le Gall,et al.  MPEG: a video compression standard for multimedia applications , 1991, CACM.

[12]  J. Janardhan,et al.  Enhanced Region Scheduling On A Program Dependence Graph , 1992, [1992] Proceedings the 25th Annual International Symposium on Microarchitecture MICRO 25.