Low Overhead Dynamic Binary Translation on ARM

被引:2
作者
d'Antras, Amanieu [1 ]
Gorgovan, Cosmin [1 ]
Garside, Jim [1 ]
Lujan, Mikel [1 ]
机构
[1] Univ Manchester, Sch Comp Sci, Manchester, Lancs, England
基金
英国工程与自然科学研究理事会;
关键词
Binary Translation; ARM;
D O I
10.1145/3062341.3062371
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The ARMv8 architecture introduced AArch64, a 64-bit execution mode with a new instruction set, while retaining binary compatibility with previous versions of the ARM architecture through AArch32, a 32-bit execution mode. Most hardware implementations of ARMv8 processors support both AArch32 and AArch64, which comes at a cost in hardware complexity. We present MAMBO-X64, a dynamic binary translator for Linux which executes 32-bit ARM binaries using only the AArch64 instruction set. We have evaluated the performance of MAMBO-X64 on three existing ARMv8 processors which support both AArch32 and AArch64 instruction sets. The performance was measured by comparing the running time of 32-bit benchmarks running under MAMBO-X64 with the same benchmark running natively. On SPEC CPU2006, we achieve a geometric mean overhead of less than 7.5% on in-order Cortex-A53 processors and a performance improvement of 1% on out-of-order X-Gene 1 processors. MAMBO-X64 achieves such low overhead by novel optimizations to map AArch32 floating-point registers to AArch64 registers dynamically, handle overflowing address calculations efficiently, generate traces that harness hardware return address prediction, and handle operating system signals accurately.
引用
收藏
页码:333 / 346
页数:14
相关论文
共 25 条
  • [1] [Anonymous], CPU2006 SPEC
  • [2] [Anonymous], 2011, BENCHMARKING MODERN
  • [3] [Anonymous], 2004, THESIS
  • [4] [Anonymous], 2016, CORTEX A57 SOFTWARE
  • [5] Dynamo: A transparent dynamic optimization system
    Bala, V
    Duesterwald, E
    Banerjia, S
    [J]. ACM SIGPLAN NOTICES, 2000, 35 (05) : 1 - 12
  • [6] Baraz L, 2003, 36TH INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, PROCEEDINGS, P191
  • [7] DENVER: NVIDIA'S FIRST 64-BIT ARM PROCESSOR
    Boggs, Darrell
    Brown, Gary
    Tuck, Nathan
    Venkatraman, K. S.
    [J]. IEEE MICRO, 2015, 35 (02) : 46 - 55
  • [8] Bruening D, 2006, INT SYM CODE GENER, P28
  • [9] FX!32 - A profile-directed binary translator
    Chernoff, A
    Herdeg, M
    Hookway, R
    Reeve, C
    Rubin, N
    Tye, T
    Yadavalli, SB
    Yates, J
    [J]. IEEE MICRO, 1998, 18 (02) : 56 - 64
  • [10] d'Antras A, 2017, ACM SIGPLAN NOTICES, V52, P228, DOI [10.1145/3050748.3050756, 10.1145/3140607.3050756]