Award Abstract # 1217231
CSR: Small: Collaborative Research: Real-Time Unobtrusive Tracing in Multicore Embedded Systems

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: TEXAS STATE UNIVERSITY
Initial Amendment Date: August 16, 2012
Latest Amendment Date: February 5, 2014
Award Number: 1217231
Award Instrument: Standard Grant
Program Manager: Marilyn McClure
mmcclure@nsf.gov
 (703)292-5197
CNS
 Division Of Computer and Network Systems
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: September 1, 2012
End Date: August 31, 2016 (Estimated)
Total Intended Award Amount: $172,960.00
Total Awarded Amount to Date: $188,960.00
Funds Obligated to Date: FY 2012 = $172,960.00
FY 2014 = $16,000.00
History of Investigator:
  • Martin Burtscher (Principal Investigator)
    burtscher@txstate.edu
Recipient Sponsored Research Office: Texas State University - San Marcos
601 UNIVERSITY DR
SAN MARCOS
TX  US  78666-4684
(512)245-2314
Sponsor Congressional District: 15
Primary Place of Performance: Texas State University - San Marcos
601 University Drive
San Marcos
TX  US  78666-4684
Primary Place of Performance
Congressional District:
15
Unique Entity Identifier (UEI): HS5HWWK1AAU5
Parent UEI:
NSF Program(s): CSR-Computer Systems Research
Primary Program Source: 01001213DB NSF RESEARCH & RELATED ACTIVIT
01001415DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 9251, 7923, 9178
Program Element Code(s): 735400
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Embedded computer systems have become essential to many aspects of our lives. Cheaper, smaller, faster, more sophisticated, and more energy-efficient embedded devices spur ever new applications. However, the growing complexity and shift to multicores make programming and debugging these systems difficult. 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 is 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 infrastructure 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.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Jared Coplin, Annie Yang, Andrew Poppe, and Martin Burtscher "Increasing Telemetry Throughput Using Customized and Adaptive Data Compression" AIAA SPACE and Astronautics Forum and Exposition , 2016
Martin Burtscher and Hassan Rabeti "GPU Acceleration of a Genetic Algorithm for the Synthesis of FSM-based Bimodal Predictors" International Conference on Parallel and Distributed Processing Techniques and Applications , 2013
V. Uzelac, A. Milenkovic, M. Milenkovic, and M. Burtscher "Using Branch Predictors and Variable Encoding for On-the-Fly Program Tracing" IEEE Transactions on Computers , v.63 , 2014 , p.1008
V. Uzelac, A. Milenkovic, M. Milenkovic, and M. Burtscher "Using Branch Predictors and Variable Encoding for On-the-Fly Program Tracing" IEEE Transactions on Computers , v.63 , 2014

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

Our society increasingly relies upon embedded computer systems that have become essential to many aspects of our lives, including transportation, civil infrastructure, and medicine. Faster, cheaper, smaller, more sophisticated, and more energy-efficient embedded computer systems spur new applications that require very complex programming. The growing software and hardware complexity and tightening time-to-market deadlines make programming and debugging the most critical aspect of embedded system development. According to one study, software developers spend between 50% and 75% of their time debugging programs, yet the nation still loses approximately $20 to $60 billion a year due to software bugs and glitches. The ongoing shift toward larger numbers of processing cores 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 settings such as ignition timing of piston engines. Such systems need to be tested in production environments and must be bug-free. Of course, achieving bug-free software is a challenging proposition in general and especially given the exponential growth in hardware and software complexity. Current solutions only allow the tracing of a processor’s internal state for short program segments and require large on-chip buffers or wide trace ports, both of which increase system cost and limit scalability, making these solutions untenable.

The main goal of this project is developing the next generation of trace compression methods and infrastructure to make continuous, real-time, unobtrusive, and cost-effective program and data tracing possible in embedded systems. Our 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 using simple yet highly-effective hardware structures, yielding heretofore unreached compression ratios. The new tracing and debugging hardware resources, coupled with sophisticated software debuggers, enable programmers to find difficult and intermittent software bugs faster, resulting in improved reliability and quality of software as well as increased overall productivity. For example, reducing debugging time by just 1% 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, and aviation devices and thus save lives. Our research demonstrates how to design such trace-compression methods that provide real-time, unobtrusive, and cost-effective program and data tracing for future generations of embedded processors.

The primary accomplishment is a first-of-its-kind framework for the automatic and systematic creation of effective compression algorithms. Based on a detailed literature search, we extracted and generalized many “components” from previously published compression algorithms. In our framework, each component uses the same interface to transform an input sequence of values into an output sequence. The common interface makes it possible to replace any component with any other. More importantly, the components can be chained such that the output sequence of one component becomes the input sequence of the next component, thus creating arbitrarily complex chains, that is, compression algorithms. Finally, for each component, we implemented a corresponding inverse component. This approach has two main benefits. First, any combination of components results in a valid algorithm (that may or may not compress the traces well). Second, chaining the inverse components in the opposite direction automatically yields the needed decompression algorithm. Based on this infrastructure, we developed search strategies for automatically determining good compression algorithms. For small numbers of components, we use an exhaustive search. For larger numbers of components, we use a genetic algorithm. Our framework can be employed to independently find good compression algorithms for different trace types. By removing unsuitable components (e.g., with overly large table sizes or complexity), the framework automatically synthesizes well-performing algorithms that can be implemented in hardware without exceeding the available chip resources. This work has initiated a new era in data compression. Heretofore, only relatively few compression algorithms have been published and evaluated. They are all carefully designed by hand to exploit known patterns in data. Our approach makes it possible, for the first time, to literally evaluate millions of compression algorithms and to employ sophisticated search algorithms to automatically find and generate compression algorithms that are tailored to a specific domain (e.g., a specific kind of program trace), adhere to given constraints (e.g., a maximum table size), and deliver superior compression ratios.


Last Modified: 11/28/2016
Modified by: Martin Burtscher

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page