Abstract:
|
Dynamic Binary Translators (DBT) and Dynamic Binary Opti-
mization (DBO) by software are used widely for several reasons
including performance, design simplification and virtualization.
However, the software layer in such systems introduces non-
negligible overheads which affect performance and user experi-
ence. Hence, reducing DBT/DBO overheads is of paramount im-
portance. In addition, reduced overheads have interesting collateral
effects in the rest of the software layer, such as allowing optimiza-
tions to be applied earlier. A cost-effective solution to this problem
is to provide hardware support to speed up the primitives of the
software layer, paying special attention to automate DBT/DBO
mechanisms and leave the heuristics to the software, which is more
flexible.
In this work, we have characterized the overheads of a DBO sys-
tem using DynamoRIO implementing several basic optimizations.
We have seen that the computation of the Data Dependence Graph
(DDG) accounts for 5%-10% of the execution time. For this rea-
son, we propose to add hardware support for this task in the form
of a new functional unit, called DDGacc, which is integrated in a
conventional pipeline processor and is operated through new ISA
instructions. Our evaluation shows that DDGacc reduces the cost of
computing the DDG by 32x, which reduces overall execution time
by 5%-10% on average and up to 18% for applications where the
DBO optimizes large code footprints. |