Abstract: Dynamic binary translation technology can directly translate the binary code of one instruction architecture into the one of another instruction architecture at runtime, and execute it on the target machine. This technology has been applied in many fields, and several dynamic binary translators developed on this basis have shown great translation efficiency. While efficiently translating instruction streams is required, the challenge of mitigating translation overhead is also the essential issue. At present, there are many optimization techniques that can effectively improve the performance of dynamic binary translator, however, most of the techniques are ineffective for the applications with short run times or massive cold code regions. This paper introduces a method of persistent code caching that can be shared and reused between different executions. This method enables the same program to reuse the translated code extracted from former executions to skip part of the translation work, and allows the persistent code accumulated to raise reuse hit ratios. We have implemented a prototype based on Box64, a open source and newly released efficient dynamic binary translator, with persistent code caching method. The experimental results demonstrate that the optimization method could efficiently improve the performance of Box64.
Loading