DocumentCode
3074684
Title
Efficient memory tracing by program skeletonization
Author
Ketterlin, Alain ; Clauss, Philippe
Author_Institution
INRIA team CAMUS, Univ. de Strasbourg, Strasbourg, France
fYear
2011
fDate
10-12 April 2011
Firstpage
97
Lastpage
106
Abstract
Memory profiling is useful for a variety of tasks, most notably to produce traces of memory accesses for cache simulation. However, instrumenting every memory access incurs a large overhead, in the amount of code injected in the original program as well as in execution time. This paper describes how static analysis of the binary code can be used to reduce the amount of instrumentation. The analysis extracts loops and memory access functions by tracking how memory addresses are computed from a small set of base registers holding, e.g., routine parameters and loop counters. Instrumenting these base registers instead of memory operands reduces the weight of instrumentation, first statically by reducing the amount of injected code, and second dynamically by reducing the amount of instrumentation code actually executed. Also, because the static analysis extracts intermediate-level program structures (loops and branches) and access functions in symbolic form, it is easy to transform the original executable into a skeleton program that consumes base register values and produces memory addresses. The first advantage of using a skeleton is to be able to overlap the execution of the instrumented program with that of the skeleton, thereby reducing the overhead of recomputing addresses. The second advantage is that the skeleton program and its shorter input trace can be saved and rerun as many times as necessary without requiring access to the original architecture, e.g., for cache design space exploration.
Keywords
cache storage; program diagnostics; storage allocation; structured programming; base register values; binary code; cache simulation; instrumentation code; intermediate level program structure; memory access functions; memory address tracking; program skeletonization; recomputing addresses; static analysis; Binary codes; Instruments; Memory management; Optimization; Radiation detectors; Registers; Skeleton;
fLanguage
English
Publisher
ieee
Conference_Titel
Performance Analysis of Systems and Software (ISPASS), 2011 IEEE International Symposium on
Conference_Location
Austin, TX
Print_ISBN
978-1-61284-367-4
Electronic_ISBN
978-1-61284-368-1
Type
conf
DOI
10.1109/ISPASS.2011.5762719
Filename
5762719
Link To Document