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

  • the use of articles under IEEE copyright is governed by the IEEE copyright policy (available at
  • the use of articles under ACM copyright is governed by the ACM copyright policy (available at
  • technical reports and other articles issued by Mälardalen University is free for personal use. For other use, the explicit consent of the authors is required
  • in other cases, please contact the copyright owner for detailed information

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

Automating Hardware to Software Migration for Real-Time Embedded Systems


Alex Dean, Carnegie Mellon University



Start time:

2000-03-23 10:00

End time:

2000-03-23 10:00


Turing Conference Room

Contact person:


Hardware to software migration helps embedded system designers meet design goals by moving real-time functionality from dedicated hardware to software running on a general purpose CPU. Cutting hardware improves cost, size, weight, component availability, reliability and power consumption. Using software increases flexibility and can cut time to market. The central problem is sharing the CPU efficiently among the multiple threads while ensuring that all real-time operations execute on time.

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.

Biographical Information:

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.