Software Thread Integration and Hardware to Software Migration

The goal of this research project is to develop STI technology, implement it in an automated tool (Thrint), and apply the methods to embedded systems.  The presentation from which this web page was created is available as a PDF file.

What is Software Thread Integration (STI)?

STI is a compiler technology which interleaves multiple assembly language threads at a fine-grain level. The resulting thread offers low-cost concurrency yet executes on a generic processor without fast context switches.

Why is STI useful?

Hardware to Software Migration (HSM) - Moving functions from dedicated hardware components to real-time software can improve system cost, size, weight, power, function availability, time to market, and field upgrades. We target embedded systems which cannot afford the luxury of a high performance microprocessor yet require fine-grain thread concurrency.

Concurrent Error Detection - Inserting error detection code into an application program to identify faults early makes the system more dependable and quicker to respond.

How is STI perfomed?

How is STI for HSM performed?

We create real-time guest threads to replace dedicated hardware. The compiler then integrates these guest threads with existing threads in the application (host threads). We match threads to integrate based upon predicted performance results.


How do we integrate threads?

We use a hierarchical thread representation which simplifies analysis and transformations.

We make thread control-flows compatible through various code transformations (initial integration, motion into code/conditional/loop, as well as integration of loops of different speeds (faster and slower)). These transformations create an integrated thread which can be optimized for execution speed, timing accuracy, or code memory size.

We use register reallocation techniques to share the processor's register set with a minimum of spilling and filling.

How do we select threads to integrate?

We identify guest threads with appropriate idle time.  Potential guest threads should have much idle time which is too fine-grain to be recovered efficiently through context-switching.

We then identify host threads with temporally deterministic segments. These segments have regular timing behavior, minimizing the need for timing compensation code.

Next we select a mechanism to detect a guest trigger (event or time) and activate a guest service thread (preferably an integrated version which reclaims idle time). Different options can be selected to best match the system.

Finally we predict the overall system performance for increasing levels of thread integration.

What is Thrint?

Thrint is a post-pass (back-end) compiler which reads assembly code, performs control-flow, data-flow and static timing analysis, and integrates threads.  It is being enhanced to provide more complete support for hardware-to-software migration.

How useful is STI for HSM?

STI is extremely valuable for recovering idle time from real-time guest threads performing low-level (e.g. MAC and data link layer) network communication and video refresh functions. Any other application with significant fine-grain idle time can benefit as well.

¸         A high-temperature (185-225 C) CAN network interface is implemented in software and integrated with buffer management code. This system has been built and tested at up to 225 C.

¸         In a handheld PC, a monochrome LCD refresh routine's idle time is fully recovered by integration with a line-drawing function. The integrated software eliminates the need for an LCD controller IC.

¸         In a portable MPEG video player, a high-resolution color LCD refresh routine's is considered for integration with an MPEG video decoder to eliminate the LCD controller IC. We find over a third of the decoder's execution time is highly predictable, and suitable for integration. With this information we can easily predict the MIPS/memory trade-offs for various levels of integration.

STI Publications

Publications are located here.



Back to Dr. Dean's Homepage

This page was last updated 3/7/02