The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Deferrable Server Algorithm for Enhanced Aperiodic Responsiveness in Hard Real-Time Environments
IEEE Transactions on Computers
Advanced compiler design and implementation
Advanced compiler design and implementation
Precise register allocation for irregular architectures
MICRO 31 Proceedings of the 31st annual ACM/IEEE international symposium on Microarchitecture
Register allocation for irregular architectures
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Inter-task register-allocation for static operating systems
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Register allocation & spilling via graph coloring
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Techniques for Software Thread Integration in Real-Time Embedded Systems
RTSS '98 Proceedings of the IEEE Real-Time Systems Symposium
System-Level Issues for Software Thread Integration: Guest Triggering and Host Selection
RTSS '99 Proceedings of the 20th IEEE Real-Time Systems Symposium
Compiling for Fine-Grain Concurrency: Planning and Performing Software Thread Integration
RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium
Hardware to Software Migration with Real-Time Thread Integration
EUROMICRO '98 Proceedings of the 24th Conference on EUROMICRO - Volume 1
Asynchronous software thread integration for efficient software
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Providing time- and space- efficient procedure calls for asynchronous software thread integration
Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems
Software Thread Integration and Synthesis for Real-Time Applications
Proceedings of the conference on Design, Automation and Test in Europe - Volume 1
Supporting Demanding Hard-Real-Time Systems with STI
IEEE Transactions on Computers
Balancing register pressure and context-switching delays in ASTI systems
Proceedings of the 2005 international conference on Compilers, architectures and synthesis for embedded systems
Software thread integration for embedded system display applications
ACM Transactions on Embedded Computing Systems (TECS)
ACM Transactions on Embedded Computing Systems (TECS)
A toolchain for rapid prototyping of underwater communication systems: extended abstract
Proceedings of the Fourth ACM International Workshop on UnderWater Networks
RaPTEX: a resource-focused toolchain for rapid prototyping of embedded communication systems
Proceedings of the 2010 Workshop on Interaction between Compilers and Computer Architecture
Hi-index | 0.00 |
Software thread integration (STI) is a compilation technique which enables the efficient use of an application's fine-grain idle time on generic processors without special hardware support. With STI, a primary function (with real-time requirements on specific instructions) is automatically interleaved with a secondary function to create a single implicitly multithreaded function which minimizes context switching and hence both improves performance and also offers very fine-grain concurrency.In this paper we extend STI techniques to address two challenges. First, we reduce response time for interrupts or other high-priority threads by introducing polling servers into integrated threads. Currently integrated threads disable interrupts, delaying all other work until their completion. Second, we enable integration with long host threads, expanding the domain of STI. With current techniques, if there are frequent interrupts, only host threads which can finish execution before the next interrupt can be integrated. We derive methods to evaluate the response time for threads in systems with and without these new integration methods.We demonstrate these concepts with the integration of various threads in a sample hard-real-time system on a highly-constrained microcontroller. We use an inexpensive 20 MHz AVR 8-bit microcontroller to generate monochrome NTSC video while servicing a high-speed (115.2 kbaud) serial communication link. We have built and tested this system and demonstrate graphics rendering speed-ups of 3.99x to 13.5x.