• 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