Compiling for fine-grain concurrency: planning and performing software thread integration

A.G. Dean
Proceedings Sixth Annual Workshop on Interaction between Compilers and Computer Architectures  
Embedded systems require control of many concurrent real-time activities, leading to system designs which feature multiple hardware peripherals with each providing a specific, dedicated service. These peripherals increase system size, cost, weight, power and design time. Software thread integration (STI) provides low-cost thread concurrency on general-purpose processors by automatically interleaving multiple (potentially real-time) threads of control into one. This simplifies hardware to
more » ... e migration (which eliminates dedicated hardware) and can help embedded system designers meet design constraints. This paper introduces automated methods for planning and performing the code transformations needed for integration of functions with more sophisticated control flows than in previous work. We demonstrate the methods by using Thrint, our post-pass thread-integrating compiler, to automatically integrate multiple threads for a sample real-time embedded system with fine-grain concurrency. The sample application generates an NTSC monochrome video signal (sending out a stream of pixels to a video DAC) with STI to replace a video refresh controller IC. Using Thrint reduces integration time from days to minutes and, by reclaiming idle time, speeds up graphics rendering by 3.2x to 3.8x in the three functions examined.
doi:10.1109/intera.2002.995838 dblp:conf/IEEEinteract/Dean02 fatcat:tffgiwlhozbmhjezvtjqh2iac4