You are required to read and agree to the below before accessing a full-text version of an article in the IDE article repository.
The full-text document you are about to access is subject to national and international copyright laws. In most cases (but not necessarily all) the consequence is that personal use is allowed given that the copyright owner is duly acknowledged and respected. All other use (typically) require an explicit permission (often in writing) by the copyright owner.
For the reports in this repository we specifically note that
By accepting I agree to acknowledge and respect the rights of the copyright owner of the document I am about to access.
If you are in doubt, feel free to contact firstname.lastname@example.org
Currently context-switching and busy-waiting are used to switch threads and schedule operations; these methods slow down the developer and use the processor inefficiently. Tight timing constraints force programming in assembly code, greatly complicating system development. Context switches and busy-wait nops increase program run-time. Despite these drawbacks, design pressures often force developers to manually migrate functions, as evidenced by software implementations of modems, communication controllers, and even video controllers.
This talk describes Software Thread Integration, a compiler-based technique for automatically interleaving multiple real-time software threads into one at the assembly language level, resulting in low-cost or free concurrency. The fine-grain concurrency of integrated threads is ideal for implementing real-time functions which replace dedicated hardware. The compiler follows timing directives to automatically integrate assembly language threads while maintaining semantic and timing correctness. This frees the user to program in a high-level language yet keep the timing accuracy of assembly language. This talk will describe the integration process and results for various systems, including a high-temperature industrial prototype which was built and tested.
Alex Dean is finishing his Ph.D. on Software Thread Integration at
Carnegie Mellon University's ECE Department. As an engineer in an
industrial R&D lab he developed architectures and networks for
embedded systems which control automobiles, jet aircraft engines,
elevators and HVAC systems.