40 likes | 187 Views
Software Thread Integration for Concurrency and ILP in Embedded Systems. Alex Dean alex_dean@ncsu.edu Center for Embedded Systems Research Department of Electrical and Computer Engineering North Carolina State University www.cesr.ncsu.edu/agdean. Hardware Function. Static Timing Analysis.
E N D
Software Thread Integration for Concurrency and ILP inEmbedded Systems Alex Dean alex_dean@ncsu.edu Center for Embedded Systems Research Department of Electrical and Computer Engineering North Carolina State University www.cesr.ncsu.edu/agdean
HardwareFunction Static Timing Analysis Integration foo.int.s foo.s Data-flow Analysis Control-flow Analysis Integration Analysis foo.id GProf STI and ASTI Eliminate Context Switches and Interrupts Where They Limit Performance • Problem: Embeddedsystems are inherently multithreaded, but most processors are single-threaded • Solution: Create efficient implicitly multithreaded (integrated) functions • Use a compiler at design time to create the functions (compile for low-cost concurrency) • Build the task/function scheduling decisions into scheduler or ISRs Break down the barrier between task scheduling (scheduler and dispatcher) and instruction scheduling (compiler) • Two efficiencies improved • Integrated threads more efficient • Integration process automated • Simplifies hardware to software migration Primary (real-time)Thread Secondary Thread Integrated Thread Guest Schedule (Execution Time Reqts.) (Asynchronous) Software Thread Integration Idle Time Reclaimed Idle Time
Pixel Clock Divider Byte ClockDivider MCU Clock 115 kbps serial port Clear ATmega128 MCU 64 kByte SRAM Load Honeywell HT83C51 Microcontroller Shift Honeywell HT83C51 Microcontroller 4-bit Shift Register Latch 4-bit Shift Register Sync NTSC Video Out Additional 4 kBytes of code CAN Bus Software CAN Hardware CAN CAN Bus Serial Data Link to Controller Serial Data Link to Controller CAN Controller Honeywell HT6256 32K x 8 SRAM Honeywell HT6256 32K x 8 SRAM Demo Systems: NTSC Generator & Hot Soft CAN STIGlitz: Sync. Threads w/STI HSCAN: Async. Threads w/ASTI
Other Activities • STI for streaming programs on VLIW processors • Problem: VLIW processors often have many unused issue slots • Software pipelining doesn’t always work (resource bound < recurrence bound, control flow, calls, register pressure) • STI can help in many cases • Target System: StreamIt + TI C6x DSP • StreamIt implicitly guarantees data independence, simplifying analysis • Developing methods to analyze and transform StreamIt program graph to improve performance • Energy Efficiency for Low-End Embedded Systems • Portable Benchmarking for Embedded Systems