Page 136 - 《软件学报》2024年第6期
P. 136

2712                                                       软件学报  2024  年第  35  卷第  6  期


                 虽然能够生成较高质量的目标代码, 但是其在翻译和优化阶段引发的性能开销问题不容忽视. 因此, 设计一套翻译
                 效率高和功能完备的新型二进制翻译框架仍然是该领域值得探索的方向.
                    (2) 多融合优化
                    二进制翻译是一项涉及处理器体系结构、指令集、编译器、操作系统等多个领域的综合性技术, 充分融合不
                 同领域的优化技术来提升二进制翻译效率是当前的研究热点.
                    首先, 静态翻译和动态翻译各有利弊, 充分发挥二者优势, 实现动静结合的翻译方法可以降低翻译开销. 动静
                 结合在缓存代码管理、翻译时机选取等方面的研究仍值得继续探索; 其次, 通过融合热路径优化、寄存器映射、
                 代码缓存优化、库函数本地化等多种技术, 可以显著提升翻译效率. 未来可以充分利用目标平台体系结构特点, 将
                 多面体优化、AOT      技术等编译优化融合到翻译优化中; 再次, 基于软件模拟的指令翻译方法在性能上低于硬件直
                 接执行, 特别是对于一些计算密集型、对实时性要求较高的程序, 翻译效率距离本地原生编译执行还相差较大. 采
                 用异构设备协同加速、处理器硬件支持等多种软硬协同优化, 可以缩小不同架构之间硬件差异; 最后, 一些研究者
                 将机器学习引入到二进制翻译并取得了显著研究成果, 未来基于机器学习生成更加高效的翻译规则、提升指令覆
                 盖率以及实现全系统的翻译等仍然是一个开放性的研究课题.
                                      目标代码值得深入研究.
                    (3) 并行翻译支持
                    多核处理器的出现为应用程序提供了更多的计算资源. 同时, 随着并行编程技术的发展, 向量化场景变得更加
                 常见. 要求二进制翻译既能正确翻译应用程序, 又能充分挖掘目标平台处理器的并行特性.
                    首先, 并发应用的普及, 要求二进制翻译能正确维护并发程序的原有逻辑, 保证被翻译程序在目标平台正确运
                 行. 尽管已有研究实现了并发程序翻译的逻辑正确性, 但在并发程序的高效翻译方面仍然是研究热点. 同时, 不同
                 处理器硬件对数据访问顺序的一致性保证差异较大, 对并发程序翻译时强弱内存模型一致性保证依旧是二进制翻
                 译的研究热点; 其次, 多线程翻译模式将程序翻译和执行部署在不同线程, 隐藏了翻译自身带来的开销. 然而, 在利
                 用多线程加速翻译的同时也引入了新的问题, 例如线程任务划分、翻译预测与响应策略、共享数据访问方式、缓
                 存代码管理等; 最后, 大量遗留软件是基于标量指令或者位宽较短的向量指令实现. 如果按原语义翻译执行, 遗留
                 软件无法充分利用新型处理器架构提供的硬件新特性. 利用二进制翻译技术提升指令并行性成为研究热点. 当前,
                 在可并行化数据识别、旧向量指令高效翻译重组等方面仍然是一个重要研究方向. 此外, 在指令并行化过程中涉
                 及地址不对齐处理、并行化收益、寄存器分配、数据依赖关系剖析等依旧是研究热点.
                    (4) 新兴领域应用
                    二进制翻译技术在软件迁移、程序优化与分析、二进制符号执行、虚拟化、程序安全研究等领域发挥着重
                 要作用. 总结发现, 已有研究主要是从          CISC  到  RISC  架构的翻译研究, 例如从    x86  到  ARM、MIPS、RISC-V  平台
                 的翻译, 但是从    ARM、MIPS、RISC-V   平台向   x86  架构的翻译研究相对较少.
                    随着嵌入式、移动设备、手机业务的不断发展, 基于                  ARM、RISC-V  等  RISC  架构构建的应用在数据中心部
                 署越来越普遍, 打破了传统以         x86  为代表的  CISC  垄断地位. 将大量相关二进制应用从          RISC  架构迁移到   CISC  架
                 构运行成为一个新的趋势         [53,58,59,67,87,98,135,139,145] . x86 架构具有丰富的指令集, 但是通用寄存器较少. 从  ARM、RISC-V
                 架构到   x86  架构的应用翻译时, 通常目标平台的寄存器数量少于源平台寄存器数量, 寄存器映射问题变得更具挑
                 战性. 此外, x86  架构与  ARM、RISC-V  等架构中的指令标志位设置差异较大, 如何在目标平台中计算、存储和设
                 置标志位并生成高效的        x86
                    此外, 现有研究大多集中于通用计算领域的应用翻译, 对高吞吐量程序和具有实时需求的新兴物联网领域关
                 注较少, 同时移动计算和云计算要求二进制翻译能够在统一框架下实现异构软件调度与执行, 这一应用方向也值
                 得探索.

                 7   总 结

                    二进制翻译技术是实现跨指令系统软硬件兼容的重要手段, 在处理器的发展过程中扮演着重要角色. 发展至
   131   132   133   134   135   136   137   138   139   140   141