The College of Engineering is pleased to announce that Dr. Milenkovic from the Electrical and Computer Engineering Department received an NSF grant to explore techniques for real-time unobtrusive program tracing and debugging in modern multicore embedded systems. The UAHuntsville is a lead institution in this collaborative three-year effort that includes a group from the Texas State University, San Marcos led by Dr. Martin Burtscher.

Our society increasingly relies upon embedded computer systems that have become essential to all aspects of our lives. Faster, cheaper, smaller, more sophisticated, and more power-efficient embedded computer systems spur new applications that require very complex software stacks. The growing software and hardware complexity and tightening time-to-market deadlines make software development and debugging the most critical aspect of embedded system development. A recent study found that software developers spend between 50%-75% of their time debugging programs, yet the nation still loses approximately $20-$60 billion a year due to softwarebugs and glitches. The recent shift toward multicore architectures makes software development and debugging even more challenging. Traditional debugging is time consuming and may interfere with program execution, causing some bugs to become irreproducible and making it unusable in real-time environments. Moreover, tracing a processor's internal state during execution is only feasible for short program segments and requires large on-chip buffers or wide trace ports, either of which increases system cost and limits scalability.

This project involves developing the next generation of trace compression methods and infrastructure to make continuous, real-time, unobtrusive, and cost-effective program, data, and bus tracing possible in embedded systems. The approach relies on on-chip hardware to record the processor state and corresponding software modules in the debugger. The novel insight is that a sequence of trace records can be translated, without loss of information, into a much shorter sequence of miss events using small hardware structures. The few remaining miss events are then further compressed using highly-effective yet simple-to-implement encoding schemes, yielding heretofore unseen compression ratios.

The new tracing and debugging hardware resources can help programmers find difficult and intermittent software bugs faster, thus improving productivity. For example, reducing debugging time by just one percent amounts to hundreds of millions of dollars annually in saved salaries, with a concomitant reduction in software cost and time to market. Moreover, higher quality software may eliminate errors in medical, automotive, or mission-critical devices and thus save lives.