|
|
Deploying Dynamic Code Transformation in Modern Computing Environments
Vijay Janapa Reddi.
M.S. Thesis, Department of Electrical and Computer Engineering, University of Colorado.
November,
2005.
|
Dynamic code transformation systems are steadily gaining acceptance in
computing environments for services such as program optimization,
translation, instrumentation and security. Code transformation systems
are required to perform complex and time consuming tasks such as
costly program analysis and apply transformations (i.e.
instrumentation, translation etc.) As these steps are applied to all
code regions (regardless of characteristics), the
transformation overhead can be significant. Once transformed, the
remaining overhead is determined by the performance of the
translated code. Current code transformation systems can only become
part of mainstream computing only if these overheads are eliminated.
Nevertheless, certain application and computing environments exist in
which code transformation systems can be effectively deployed. This
thesis identifies two such environments, persistence and mixed
execution.
Persistence leverages previous execution characteristics to address
the transformation overhead. This is accomplished by capturing the
translated executions at the end of their first invocation. The
captured executions are cached on disk for re-use. All subsequent
invocations of the run-time system using the same application cause
the system to reuse the cached executions. Since applications exhibit
similar behavior across varying input data sets, this execution model
successfully diminishes the transformation overhead across multiple
invocations. Persistence in the domain of dynamic binary
instrumentation is highlighted as an example.
Mixed execution accepts that the performance of the code generated by
today's code transformation systems is in no position to compete with
original execution times. Therefore, this technique proposes executing
a mix of the original and translated code sequences to keep the
translated code performance penalties within bounds. This execution
model is a more effective alternative to pure Just-in-Time
compiler-based code transformation systems, when low overheads and
minimal architectural perturbation are the critical constraints
required to be met. A dynamic compilation framework for controlling
microprocessor energy and performance using this model is presented in
light of its effectiveness and practicality.
|
| [ PDF ] |
|