历史性时刻!ARM首次成功模拟运行x86

ARM在移动领域风生水起,但是要想在桌面和服务器上占领一席之地,最大的麻烦就在于不兼容最为普及的x86代码系统和程序,而出路只有两条:要么大力推进自己的生态系统,要么模拟运行x86,就像曾经的全美达那样(下场比较惨)。

今年七月份,英国厂商Boston Server推出了基于Calxeda ARM架构处理器的服务器“Viridis”,之后也一直在披露其工作进展,近日更是豪气万丈地官方宣布了一个历史性时刻的到来:这套ARM平台第一次成功运行了x86代码!

过去一段时间里,Boston一直在和来自Eltech的工程师团队就此进行合作。这家貌似来自俄罗斯的公司正在ARM服务器上开发能够运行x86程序的软件,并且已经成功开发出了一种可作为模拟器使用的二进制转换器(binary translator),能够发挥出大约45%的原生ARM性能。

双方在Viridis平台上进行了六大类别的深入测试后,将这一模拟效率提高到了65%,并且会争取在近期继续提高到80%,乃至更高。

虽然Boston拒绝披露具体细节,但是AnandTech网站分析指出,Eltech的模拟器是实时翻译、运行x86代码的,因此整个模拟器会有些偏大,毕竟它要在两套完全不同的指令集架构之间牵线搭桥,不同于VMware那样在x86-x86之间转换。

据称,Eltech使用了1MB的转换器缓存,这意味着代码转换可以重复利用,但随着缓存逐渐填满,重复利用率就会迅速降低,而且只有相对轻便的代码才能运行得比较快,获得宣称的45-65%的转换效率。

但是我们知道,大多数服务器应用的代码和指令都很大,所以Eltech的转换器能否高效率运行它们也有待观察。高性能计算软件倒是相对不那么复杂,但这玩意儿对处理器性能要求又特别高,很难说服他们放弃x86、改用ARM再去模拟x86(何苦来着)。

总的来说,二进制转换器在特定场合下还是有用的,比如某些特定的Web应用软件不算很大,又是闭源的,没有ARM版本,但除此之外就很难说了。ARM服务器真想闯出一片天地,最稳妥的还得是催生一整套针对ARM架构完全优化编译的Linux软件。

【编辑推荐】

时间: 2024-10-30 21:48:08

历史性时刻!ARM首次成功模拟运行x86的相关文章

运行 x86 应用的 Windows for ARM 今年上线

2016年1月,或许更早,就有人说过,微软正在致力于为 ARM 处理器开发能运行 x86 应用的模拟器. 据外媒报道,这种能力将在 Windows 10 Redstone 3 上释出,虽然预计要等到 2017 年秋季. 微软此举将大幅提升 Continuum 功能的实用性和吸引力,弥补该功能的最大短板:只允许用户运行通用 Windows 平台(UWP),无法运行完整的 x86 应用. 通过模拟器的形式使其在 ARM 64 设备上运行 x86 应用,目前微软正努力对 Windows 10 Mobi

微软开发x86模拟器,让Windows for ARM能运行x86应用

微软公司计划在ARM芯片之上模拟x86指令,并将这种兼容性引入未来的Windows平板与手机当中. 将遗留应用放在这里,其将有种宾至如归的感觉 这一名为Cobalt的项目应该会在今年之内即可与广大用户见面,即Windows 10的"红石3"版本到期之时,Mary Jo Foley报道称.在理想情况下,微软方面希望每位用户都能够将自己的原有Windows应用转化为UWP(即通用Windows平台)应用,其能够适应多种不同的输入方法与显示尺寸.在这种情况下,手机或者平板都将能够在实质上作为

英特尔真怒了:ARM处理器的Win10 PC不能运行X86软件

微软和高通的关系是越走越近,两者牵手让基于ARM处理器的Win10 PC可以运行x86软件,这显然是英特尔不能容忍的. 继之前的警告后,现在英特尔再次公开发飙,认为高通和微软这样公开模拟他们的X86指令集是侵权行为,如果双方不停止侵权的话,他们将拿起法律武器坚决维护自身合法权益(依靠强大的专利资源). 英特尔的再度发飙也是有原因,因为在高通和微软的努力下,已经有厂商开始生产基于骁龙处理器的Win10笔记本电脑,除了价格优惠外,这种PC居然还可以运行桌面x86 Win32应用程序,这显然是英特尔不

超级计算机通过图灵测试成功模拟13岁男孩

[摘要]这一测试成功正逢图灵去世60周年纪念,被认为是人工智能领域里程碑式的突破.超级计算机通过图灵测试成功模拟13岁男孩英国<每日电讯报>8日报道,计算机于周六首次通过图灵测试.一台由俄罗斯人弗拉基米尔·维西罗夫模仿一位13岁男孩开发的"超级计算机"通过了"标志性的"图灵测试.周六在伦敦英国皇家学会进行的测试上,有五台超级计算机参与了测试,看是否能通过文本 对话来糊弄人们以为是在和真人对话.模拟13岁小男孩的计算机程序"尤金·古斯特曼&quo

adb-eclipse编写android软件,没法模拟运行,提示错误。

问题描述 eclipse编写android软件,没法模拟运行,提示错误. [2015-05-29 15:01:03 - AndroidTest22] The connection to adb is down, and a severe error has occured. [2015-05-29 15:01:03 - AndroidTest22] You must restart adb and Eclipse. [2015-05-29 15:01:03 - AndroidTest22] Pl

c++基础-编译成功,运行出错,怎么回事? 帮帮忙呀

问题描述 编译成功,运行出错,怎么回事? 帮帮忙呀 我是初学者,编了好久,希望有人看看 ,帮帮忙咯! #include #include #include using namespace std; typedef struct { string time; //缺课日期 string order; //缺课节数 string status[3]; //缺课课程,姓名,缺课类型 }situation; //顺序表的定义 #define MAXSIZE 1000 typedef struct { s

Eclipse中模拟器启动正常能运行helloworld 创建的活动编译成功但运行秒退

问题描述 Eclipse中模拟器启动正常能运行helloworld创建的活动编译成功但运行秒退 解决方案 解决方案二:没搞过安卓看看后台的运行日志,看能否从日志相关内容中找到一些端倪解决方案三:logcat中的log贴出来看看

Comma.AI 开源其首次成功无人驾驶的旅行数据

Comma.ai是一家致力于研发基于人工智能技术的汽车无人驾驶系统的公司,最近开源了一个7.25小时的公路驾驶的数据集.Comma.ai是著名黑客George Hotz(geohot)于2015年9月创办,并在2016年3月完成了未披露金额的种子轮融资的,同时geohot也是当年全球第一个破解iPhone 运营商锁定的年轻黑客. Comma.ai是利用了CNN(Convolutional Neural Network, 卷积神经网络)快速破解汽车的网络,简化电脑对汽车的控制的--而且几乎只用了C

Gradle精选: 通过模拟运行检查Task依赖

翻译自: http://mrhaki.blogspot.com/2014/11/gradle-goodness-check-task-dependencies.html 我们可以运行Gradle的任务,但是不实际执行动作.这就是所谓的模拟运行.我们可以通过模拟运行来查看,我们定义的任务依赖关系是否正确.因为,我们在进行模拟运行时,我们可以看到所有的任务和任务依赖关系输出日志. 例如,我们定义了一个简单的build文件,包含三个任务和一些任务依赖关系: def printTaskNameActio