DDGacc: boosting dynamic DDG-based binary optimizations through specialized hardware support

  • Authors:
  • Demos Pavlou;Enric Gibert;Fernando Latorre;Antonio Gonzalez

  • Affiliations:
  • Intel Barcelona Research Center (IBRC), Intel Labs & Universitat Politècnica de Catalunya, Barcelona, Spain;Intel Barcelona Research Center (IBRC), Intel Labs, Barcelona, Spain;Intel Barcelona Research Center (IBRC), Intel Labs, Barcelona, Spain;Intel Barcelona Research Center (IBRC), Intel Labs & Universitat Politècnica de Catalunya, Barcelona, Spain

  • Venue:
  • VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic Binary Translators (DBT) and Dynamic Binary Optimization (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 experience. Hence, reducing DBT/DBO overheads is of paramount importance. In addition, reduced overheads have interesting collateral effects in the rest of the software layer, such as allowing optimizations 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 system 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 reason, 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.