datasheet

Icbank半导体行业观察

文章数:8640 被阅读:24424134

账号入驻

为什么苹果A12的JS处理性能轻松秒杀PC级CPU?

2018-11-08
    阅读数:


前一段时间Rails on Ruby创始人David Heinemeier Hansson(DHH)在Twitter上发了一篇推文,如下图,文中比对了苹果A12、其他手机CPU和Intel CPU对JavaScript处理速度的比对。可以看到苹果A12在JavaScript上的表现明显超过其他手机CPU,甚至超过了Intel的PC级CPU!DHH因此发问:为什么苹果A12在JS处理速度上这么快?  




大神DHH竟然也有知识盲点啊!



ARMv8架构的演进


我们知道现在的手机CPU基本上是基于ARMv8架构,ARMv8架构是不停演进的,从最早的ARMv8.0,ARMv8.1,ARMv8.2,到目前市面上可以看到的最新的芯片版本ARMv8.3(当然现在还有ARMv8.4等在开发中甚至ARMv9,只是暂时未见有芯片产品出炉)。


目前高通,MTK和华为海思的手机CPU最高到ARMv8.2版本,具体如下图。而苹果A12则到了ARMv8.3!市面上最早的一款ARMv8.3产品,而且是迄今为止唯一的一款ARMv8.3产品。



ARMv8基本架构


上面介绍了基本的ARMv8背景,现在开始进入正题。回到DHH的问题,原因是ARMv8.3相对于之前的版本,多出了一条相对于JavaScript的指令FJCVTZS (AArch64) or VJCVT (AArch32),在这有必要再多啰嗦一句关于AArch64和AArch32. 他们是ARMv8有两种执行状态(Execution states),AArch64支持A64指令集(instruction set),而AArch32可以支持A32和T32指令集。苹果A12芯片支持A12指令集,因此我们以AArch64的FJCVTZS为例。


ARMv8.3 新增JavaScript指令


JavaScript对于数据的处理都是基于双精度浮点数据来进行,JS在进行bit-wise操作的时候,普通CPU需要把这个双精度浮点数据转换成32bit整形数据,同时检查这个转换后的数据是否真的是整形数据;这种场景在JS中还是相对比较常见的场景。


这就是那个JavaScript的奇葩规定:



ARMv8.3 spec中关于FJCVTZS指令的说明:



一般CPU是怎样处理上面的场景呢?利用JavaScript中规定的ToInt32()函数,每个浏览器(FireFox、Chrome、IE和Safari)都会实现自己的ToInt32()函数来完成转换功能。对此感兴趣的小伙伴,可以下载下FireFox的源代码下来看看。


显而易见,ToInt32()这个函数需要多条指令才能完成,运行速度是比较慢的,而FJCVTZS指令则可以一条指令就可以搞定,将大大加速了JS处理性能。


回头说说其他加的CPU,高通、华为海思、联发科等一众都是采用的ARM公司的CPU,都还在ARMv8.2阶段,还没引入FJCVTZS 指令,三星虽然是自研的CPU但也还没有引入FJCVTZS指令,Intel还没有专门针对JS的指令,这样一对比,Apple A12 JS牛X性能就凸显出来了。


题外话


ARMv8.3在引入了JS浮点转换指令后,下面是国外一小伙的吐槽。相信代表了好多小伙伴的声音。






参考文献:

https://en.wikipedia.org/wiki/Apple_A12

https://www.slideshare.net/chiounan/tphcc2-ianrickards-64bitandroidopenslidesrickards

https://www.w3schools.com/js/js_numbers.asp

https://reviews.llvm.org/D36785

https://patches.linaro.org/patch/81061/

https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions

https://software.intel.com/en-us/articles/intel-sdm

https://jibbering.com/faq/notes/type-conversion/




*本文由 公众号 半导体行业观察(ID:icbank)原创。如需转载请加微信号:icbank_kf01,或在公众号后台回复关键词“转载”,谢谢。


今天是《半导体行业观察》为您分享的第1760期内容,欢迎关注。


推荐阅读

索尼三星大举进攻,CIS攻防战正式打响!

功率半导体GaO开始挑战GaN和SiC

Arm开辟新战线背后


关注微信公众号 半导体行业观察(ID:icbank),后台回复以下关键词获取更多相关内容

氮化镓 | 中美贸易 | 碳化硅 | 财报 | 被动元件 | 开源 | 射频 | 光刻机 | 展会



回复 投稿,看《如何成为“半导体行业观察”的一员 》

回复 搜索,还能轻松找到其他你感兴趣的文章!


关于摩尔精英

摩尔精英是领先的芯片设计加速器,重构半导体基础设施,让中国没有难做的芯片。主营业务包括“芯片设计服务、供应链运营服务、人才服务、企业服务”。覆盖半导体产业链1500多家芯片设计企业和50万工程师,掌握集成电路精准大数据。目前员工200人且快速增长中,在上海、硅谷、南京、北京、深圳、西安、成都、合肥、广州等地有分支机构和员工。


点击阅读原文了解摩尔精英

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved