欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

华为的x86/ARM动态二进制翻译器ExaGear

2023-03-01 15:51:44 644

摘要:众所周知,苹果正在进行将旗下的电脑从 Intel 处理器切换到自家的 Apple Silicon 处理器,首当其冲的就是新近推出的 Apple M1 笔电和 iMac mini,按照苹果的计划,整个切换工作大概需要一年半左右(时间基本上和当...

众所周知,苹果正在进行将旗下的电脑从 Intel 处理器切换到自家的 Apple Silicon 处理器,首当其冲的就是新近推出的 Apple M1 笔电和 iMac mini,按照苹果的计划,整个切换工作大概需要一年半左右(时间基本上和当年 PowerPC to Intel 相当)。

处理器切换带来的主要问题是 M1 采用的是 ARMv8 指令集,现有的 Intel64 应用不能直接运行,为了尽量平滑化这个过渡,苹果推出了名为 Rosetta 2 的动态二进制转换器,可以先把 Intel64 的二进制代码先行转译为 ARMv8 指令,从而实现接近无缝的切换。

类似的技术其实在以往就有,例如当年 DEC 的 FX!32、Intel 的 IA-32 转 EPIC 等,此外还有像 NVIDIA Tegra K1 Denver 内置了 x86 转换 ARM 的硬件译码器(需要与软件转码器结合)。

华为这边也有自己的 x86 动态二进制翻译器——ExaGear。



ExaGear 是一个软件包,安装到华为自己的 ARM 系统(鲲鹏 920 硬件平台 + Linux)后,执行起来就会让主机看起来像一个 AMD64 环境。

按照华为自己的介绍,在 ExaGear 里跑 SPEC CPU 2006,相比直接跑 ARM 指令的性能损失大约为 20%,这有点类似与 Rosetta 2 的情况。

比较有意思的是,目前这个东西已经可以在非华为的 ARM 系统上运行,例如 NVIDIA 的 Tegra K1 64-bit 和 Tegra Xavie,但是需要设置一个参数 SMO_MODE=none。

版权声明:本站所有文章皆是来自互联网,如内容侵权可以联系我们( 微信:bisheco )删除!
友情链接
币圈社群欧易官网