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 :
بازگشت