背景
过去十几年间,Arm架构处理器由于其卓越的能效优势,在移动计算领域已经成为无可争议的王者。与此同时,在追求极致性能的传统计算领域,Arm处理器也正在向x86处理器发起进攻。亚马逊云Gravation处理器、华为鲲鹏920处理器、英伟达Grace CPU,这些高性能处理器的出现证明了Arm架构同样具有高性能计算的发展潜力。
尽管目前大量的计算平台开始采用Arm架构,由于历史惯性,现有大多数计算平台仍然使用x86芯片,并且运行着许多基于x86架构的软件。这些软件在x86架构上运行良好,并且很多都是非常重要的软件。然而,Arm服务器由于指令集架构不同,无法直接运行x86软件。这也造成了Arm服务器的生态问题:对于使用Arm服务器的用户,如果用户原先有一些x86软件,他们是否能在Arm平台上运行这些软件呢?
对于这个问题,如果这些应用程序的源代码是可用的,那么可以进行手动移植,对源代码进行一些性能优化,使其能够在Arm服务器上运行。这需要对x86的代码进行修改和重新编译,以适应Arm服务器。然而,实际上有很多用户由于各种历史原因,并没有应用程序的源代码,无法进行重新编译或修改,但是他们仍然希望能够使用Arm架构服务器。在这种情况下,动态二进制翻译技术就派上了用场。这种技术可以将x86指令动态地转换为Arm指令,从而使得原本只能在x86平台上运行的应用程序能够在Arm64服务器上顺利运行。
通过动态二进制翻译技术,可以实现在不同指令集架构之间的兼容性,无论是否有源代码,都可以让用户在Arm服务器上运行x86软件。这为用户提供了更大的灵活性和选择性,使他们能够充分利用先进的Arm计算平台的性能和功能。
业界方案
当前二进制翻译是业界解决跨芯片体系软件兼容问题必选方案。