Abstract:
SimPoint methodology is one of the important methods for program runtime behavior analysis. BBV (basic block vector) profiles for SimPoint are usually gathered with functional simulators. However, BBV profile gathering is very time consuming since the speed of functional simulation is very slow. To solve this problem, this paper proposes using dynamic binary translation to accelerate BBV profile gathering. Firstly, a general framework on BBV profile gathering with dynamic binary translation, DBT-BBV, is presented. Then several optimization techniques for reducing the overhead of BBV gathering are discussed. Lastly, a highly efficient BBV profiler, QPoint, is designed and implemented based on the proposed DBT-BBV framework and optimization techniques. The performance and overhead of QPoint is evaluated with the SPEC2006 benchmarks. Compared with existing tools, QPoint has two advantages. Firstly, the performance of QPoint is much better, with a speed of up to 292 MIPS, on average 109 MIPS, on an ordinary PC. The overhead is less than 4%, which is the lowest among similar tools. Secondly, QPoint supports most architectures, including x86/x86_64, ARM, POWER, SPARC, MIPS, etc., and can be used to generate cross-platform BBV profiles. Experimental results show that dynamic binary translation technique can be well adapted to program behavior analysis acceleration.