Page 112 - 《软件学报》2024年第6期
P. 112
2688 软件学报 2024 年第 35 卷第 6 期
随着信息技术的快速发展, 对硬件算力要求不断提高, 推动着各种新型处理器架构的涌现. 然而一款处理器的
推广, 离不开丰富的软硬件生态支持. 考虑到软件开发周期和开发成本, 新型处理器很难在短时间内构建出毗邻
x86 和 ARM 架构的丰富软件生态群, 存在市场竞争力弱、推广难度大的难题; 另一方面, 得不到广泛应用和市场
份额的处理器也很难得到广大开源社区对其生态的维护支持. 软硬件生态的滞后已成为制约新型处理器推广的关
键瓶颈. 在这种情况下, 将 Wintel (Windows+Intel) 和 AA (ARM+Android) 等已经成熟的体系结构应用软件迁移到
新型处理器架构, 既加速了其生态构建, 又促进了处理器研发的更新迭代. 二进制翻译技术作为这样一种软件迁移
手段, 实现不同架构之间的应用软件兼容运行, 其在提高硬件平台可用性的同时降低了软件开发和维护成本. 纵观
计算机行业的发展历程, 利用已有平台的软件丰富新型处理器生态是业界常用的手段. 自 20 世纪 90 年代开始, 多
种宿主机指令系统利用 x86 和 ARM 等平台丰富的应用软件生态群, 推出了大量商用和开源的二进制翻译系统.
[2]
[1]
例如 Digital FX!32 用于 Alpha 宿主机系统、Aries 用于 HP 的 PA-RISC、IA-32 EL 用于 Itanium 宿主机、
[3]
[4]
[5]
Transmeta CMS 用于 Transmeta VLIW 指令系统、Rosetta 2 用于苹果 Apple Silicon M1、DAISY 和 BOA 用
[6]
[7]
于 IBM 的 Power 体系结构.
除了软件迁移外, 在虚拟化技术广泛应用的今天, 二进制翻译也是跨架构虚拟机实现的核心技术, 有效屏蔽了
析, 同时由于文献发表时间较早, 大量最新技术并未涉及. Spink
硬件差异. 此外, 移动计算和云计算催生出多样化异构系统, 计算平台由传统的单一指令系统向多指令系统融合发
展. 例如 Qualcomm 和 ARM 将异构计算应用于移动设备, Google 使用多种指令系统组成大型机群. 二进制翻译技
术可以实现多指令系统的处理器融合, 其在多样化异构系统中也得到了广泛应用. 二进制翻译技术也被广泛应用
在程序分析与优化、二进制符号执行、安全研究等领域.
综合来看, 经过多年发展, 二进制翻译技术已取得了良好进展, 对多个领域的研究起到了促进作用. 然而, 二进
制翻译技术依旧面临着翻译效率不高、目标体系结构硬件特性发挥不足、被翻译程序完备性保证难度大等挑战.
如何探索更优的翻译方法、追求更高的翻译效率和覆盖更丰富的应用领域是业界持续关注的热点.
本文在 Web of Science Core Collection (WOSCC) 和中国知网 (CNKI) 中分别使用关键词“binary translation”
“虚拟化 (+) 二进制翻译”“binary translation*(QEMU (+) virtualization (+) LLVM)”“ISA*BT”搜索, 并且人工筛选与
“二进制翻译”“binary translation”密切相关的工作, 统计文献检索情况如图 1 所示. 可以看出, 近 10 年文献发表数
量明显增多, 原因可能是: (1) 硬件资源极大丰富与 CPU 性能过剩为二进制翻译提供了良好的硬件支撑. (2) 虚拟
化、QEMU、LLVM、编译优化等技术的发展为二进制翻译提供了技术研究的新机遇. (3) 处理器多样化快速发
展以及各种新兴领域对二进制翻译的需求不断增加.
80
WOSCC 知网
60
文献数量 40
20
0
1993 1996 1997 1999 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023
年份
图 1 WOSCC 与知网中检索二进制翻译技术相关文献数量
本文关注到, 在已经发表的学术研究中, 针对二进制翻译的综述类文章并不多见. 李剑慧等人 [8] 于 2007 年对
动态二进制翻译与优化技术进行了概括总结, 但其并未对多线程翻译、应用领域、指令翻译方法等方面进行分
等人 [9] 于 2020 年总结梳理了常见的动态二进制翻
译系统, 但其目的是与 Captive 系统进行对比. 本文整理了 196 篇与二进制翻译主题密切相关的文献, 时间跨度为
1994–2023 年. 通过深入分析总结二进制翻译相关技术和典型翻译系统, 旨在揭示二进制翻译技术的研究进展、
研究热点以及未来的研究方向.
本文从二进制翻译过程中最为关注的指令翻译、关键问题、性能优化和应用领域这 4 个方面开展综述. 第 1