DocumentCode
65372
Title
Using Branch Predictors and Variable Encoding for On-the-Fly Program Tracing
Author
Uzelac, Vladimir ; Milenkovic, Aleksandar ; Milenkovic, Milo ; Burtscher, Martin
Author_Institution
Tensilica Inc., Santa Clara, CA, USA
Volume
63
Issue
4
fYear
2014
fDate
Apr-14
Firstpage
1008
Lastpage
1020
Abstract
Unobtrusive capturing of program execution traces in real-time is crucial for debugging many embedded systems. However, tracing even limited program segments is often cost-prohibitive, requiring wide trace ports and large on-chip trace buffers. This paper introduces a new cost-effective technique for capturing and compressing program execution traces on-the-fly. It relies on branch predictor-like structures in the trace module and corresponding software modules in the debugger to significantly reduce the number of events that need to be streamed out of the target system. Coupled with an effective variable encoding scheme that adapts to changing program patterns, our technique requires merely 0.029 bits per instruction of trace port bandwidth, providing a 34-fold improvement over the commercial state-of-the-art and a five-fold improvement over academic proposals, at the low cost of under 5,000 logic gates.
Keywords
embedded systems; program debugging; program diagnostics; branch predictor-like structures; cost-effective technique; embedded systems; logic gates; on-the-fly program tracing; program execution traces; program patterns; software modules; variable encoding; Bandwidth; Debugging; Hardware; Program processors; Radiation detectors; Real-time systems; Compression technologies; real time and embedded systems; testing and debugging; tracing;
fLanguage
English
Journal_Title
Computers, IEEE Transactions on
Publisher
ieee
ISSN
0018-9340
Type
jour
DOI
10.1109/TC.2012.267
Filename
6342940
Link To Document