ARM处理器在低功耗领域如日中天,但在服务器及工作站之类的市场还是非主流,除了性能因素之外指令不兼容当前的主流X86应用软件也是关键原因之一,两种不同的指令架构如何能做到统一呢?
一种可能就是X86模拟器,如今已经不存在的全美达就做过这样的事,他们开发的架构是顺序超长指令体系,执行X86指令时会动态转换成X86指令,虽然保留了低功耗的特色的,但是全美达处理器的性能一直偏弱,最终没能在市场上存活下去,后来NVIDIA吸收了不少全美达的工程师,他们的丹佛计划据说也会兼容X86指令,用的也是模拟器的方式。
ARM阵营也有厂商在做这样的事。Calxeda是最早发布ARM服务器处理器公司之一,一家名为BostonServer的英国公司使用Calxeda的ARM处理器设计了Viridis服务器。日前他们宣布在Eltech的帮助下,其Viridis服务器成功运行了X86代码。
Eltech之前发明了一种二进制转换器,实际上就相当于一个模拟器,最初的性能是具备了45%的原生ARM性能,但是在他们的合作努力下,在Viridis平台上发挥了65%的原生ARM性能。该公司表示还会和Eltech公司继续合作,目标是提供至少80%的原生ARM性能。
Anandtech网站也报道这一事件并做了分析,Eltech的模拟器是动态二进制转换,这会使得代码变得过大,与VMWare这样的binarytranslator(BT)软件模拟器相比确实会更大,因为后者是从X86转换到X86,而Eltech是在两种不同的指令集中转换,代价肯定会更高。
Eltech使用了1MB转换器缓存,与VMWare的BT基本相同,这意味着它可以利用之前的模拟器。如果大部分关键的指令循环都位于缓存中,那么转换的损失就会大幅降低,但是(较低的缓存容量)也意味着只有相对较少的代码才能享受这个福利,比如他们所说的40-65%原生性能。
大部分服务器应用都需要相当大的指令内存寻址,因此还不清楚这个X86模拟是否会对重负载服务器软件有帮助,一些HPC软件倒是会使用较小的指令内存,但是HPC往往对处理器性能要求比较高,这又不是ARM处理器的强项,因此很难说服用户弃用X86而改用ARM处理器。
因此,ARM的X86模拟器用途有限,只能在部分场合发挥独特的作用,比如Web应用有些软件是不开源的,开发商也不提供ARM分支,这时候就只能用X86模拟的方式来实现ARM处理器支持。
总之,Eltech的X86模拟器是一个很好的功能,但是大部分ARM服务器运行的还是专门优化。编译的Linux服务器,这才是ARM服务器的正确出路。
泊祎回收网遵循行业规范,任何转载的稿件都会明确标注作者和来源;
发布者:泊祎回收网,转载请注明出处:https://www.huishou5.net/dianzi/115910.html