Hardware to software migration with real-time thread integration

Introduces thread integration, a new method of providing low-cost concurrency for microcontrollers and microprocessors. This post-pass compiler technology effectively interleaves multiple threads of control at the instruction level for execution on a uniprocessor and implicitly provides very fine-grain multithreading without any context switching overhead. Such efficient concurrency allows the implementation of real-time functions in software rather than in dedicated peripheral hardware. The thread integration position in the design space is evaluated to help identify when and where to apply the technique. A number of code transformations have been developed that allow a guest thread of computation to be systematically integrated into a host thread while meeting all the real-time requirements of the guest thread. The thread integration concept and the associated code transformations have been successfully applied to several example applications.

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

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

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

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

[5]  Douglas Niehaus Program representation and translation for predictable real-time systems , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[6]  Andreas Steininger,et al.  Can the advantages of RISC be utilized in real time systems? , 1991, Proceedings. EUROMICRO `91 Workshop on Real-Time Systems.

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

[8]  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).

[9]  Yau-Tsun Steven Li,et al.  Static Timing Analysis Of Embedded Software , 1997, Proceedings of the 34th Design Automation Conference.

[10]  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.

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