2014年的手持移动市场,64位必将成为一个重要的话题。PC在2003年进入64位时代,内存可寻址空间突破了4GB的限制。十多年后的今天,64位处理器在移动市场的出现,是否意味着新一轮的技术突破?采用64位处理器的移动产品能带给用户怎样不同的体验?厂商又是怎样看待64位技术的?
自从苹果在2013年9月的新品发布会上公布了64位的A7处理器后,Android市场中还处在频率和核心大战的ARM阵营似乎找到了新的方向。没错,64位处理器,这个曾经让AMD和英特尔争吵不休的技术,已经走进了手持移动平台。不过,考虑到iOS封闭的系统和苹果完全独立的运营模式,目前除了购买iPhone和iPad,用户似乎没有其他办法体验到64位移动处理器。别急,很多移动处理器厂商都已经摩拳擦掌,准备或者已经发布了基于ARM架构的64位处理器。
说起ARM处理器的64位计划,就不得不先提到ARM公司。实际上ARM早在2011年10月就公布了自己的64位架构——ARMv8。ARMv8是基于32位的ARMv7架构设计而来,在保留了大量ARMv7关键性技术的基础上,引入了一套全新的指令集用于处理64位指令集,并完全兼容32位ARM指令。在ARM的设想中,从ARMv7过渡到ARMv8的过程是稳健的,不会损失任何之前在32位系统上累积起来的优势,同时保持ARM处理器高能耗比的特性。
ARM为何会在2011年就提出64位架构呢?先来看看64位哪方面的优势吸引了ARM。一般来说,一颗处理器有“64位”特征的地方很多,比如地址总线、内存总线等,但是真正涉及处理器代次的“64”,往往仅指64位宽的寄存器。这是因为内存数据的地址会存放在寄存器中,使用64位宽的寄存器显而易见的优势就是内存可以支持大2的64次方(大约16EB,1EB=1024PB,1PB=1024TB,1TB=1024GB,但是考虑到地址总线等原因,目前大部分产品多支持16TB内存),而32位处理器多只能支持4GB内存。
苹果在iPhone 5S上使用的A7处理器,是业界首款64位ARM处理器。
目前顶级的Android手机已经开始配备3G B内存,这个数据在一年后很可能达到4GB,到那个时候32位处理器对内存容量的支持就到顶了。图为目前配备3GB内存、2K显示屏的vivo Xplay3S。
回头看看2011年的手机市场。苹果在这一年发布了iPhone 4s,内存为512MB。而Android阵营的代表三星发布了GALAXY S2,内存提升到1GB。之后的2012、2013年,苹果iPhone新品的内存多到1GB,而Android产品在内存提升的速度上更快,主流Android手机的内存普遍在1GB~2GB,而现在配备3GB内存的Android手机已经上市。很快,32位处理器仅仅支持4GB内存的瓶颈就要显现出来。
从这一点来看,ARM布局64位就顺理成章了。其实除了这一点,还有一个原因是ARM一直想拓展自家处理器的应用范围,包括服务器、数据库甚至桌面应用,使其不再局限于移动设备和超低功耗设备。而32位ARM处理器首先就会被内存容量所累,虽然目前也有很多技术能让32位处理器调用更大的内存,但毕竟治标不治本。
综合来看,想到更广阔的海洋里去遨游,32位处理器还真有些捉襟见肘。即使不考虑任何性能方面的进步,仅仅是内存一项,就有充足的理由让ARM将处理器寄存器从32位升级到64位。在2011年,ARM开始规划这一设计,并给出了大量的技术细节、白皮书资料。2012年,ARM开始组建有关64位ARM处理器的相关计算、开发、应用生态圈,并计划从2013年开始,在软件端和硬件端联合推广64位产品。在这一背景下,苹果首先吃到了螃蟹,A7处理器使用了兼容ARMv8的架构,升级到64位——虽然苹果依旧只给iPhone 5s配备1GB内存。
作为ARM移动处理器的领头厂商,高通的一举一动颇受业界关注。在苹果发布了64位的A7处理器之后,高通首席营销官Anand Chandrasekher宣称这只是苹果在“营销”上的鬼把戏。不过随后他就收回了这番话并引咎辞职,高通官方发表声明认为其说法不够准确,因为高通自己也即将推出全新的64位移动处理器。
2013年12月,高通发布了旗下首款64位处理器——高通骁龙410,型号为MSM8916。从名字就可以看出,定位在骁龙400系列的产品肯定不是高端货色。没错,这是一颗定位中低端市场的处理器,面向150美元左右的移动设备。高通在中高端市场往往会使用自己研发的架构,例如骁龙800和骁龙600系列,而在中低端市场如目前的骁龙400和骁龙200系列,则会直接使用Cortex-A5、Cortex-A7等ARM如果说ARMv8是ARM种下的一棵桃树的话,那么这棵树已经开花、结果,而且果子很快就要成熟了。在这种情况下,摘果子的厂商也多起来。它们纷纷展示自己的64位计划,准备摘桃子,享受市场红利。在2014年,摘得64位桃子的厂商有哪些呢?现成的架构。骁龙410使用的正是ARM的64位架构Cortex-A53。
从架构来看,Cortex-A53是一款顺序执行、双发射设计、8级流水线、40位虚拟物理寻址的小核心芯片。在ARM的官方设想中,Cortex-A53和定位高端的Cortex-A57将形成高低搭配的ARM 64位处理器阵营。从产品角度来看,高通使用这样一颗简单的核心来试水64位,既降低了制造难度,又能很快利用现在成熟的28nm工艺进行生产,而不必在功耗控制方面花太多力气,这是非常明智的。况且在性能方面,同频率下Cortex-A53的性能甚至还要超出Cortex-A9不少,能耗比也更高。在1.2GHz、28nmHPM工艺下,Cortex-A53的单个核心功耗不超过0.1W,不过受限于架构问题,Cortex-A53的频率很难达到较高水平,一般不会超过1.5GHz。
在骁龙410发布后,配合高通强大的基带优势,在消费群体大的中低端市场,高通已经有了“占位符”。那么中高端市场呢?新消息表示,高通将在2014年推出面向高端市场的6 4位处理器,型号为MSM8994或者APQ8094。这款处理器采用了高通自主研发的Krait 64架构,完全兼容ARMv8,而GPU方面也会升级到全新的Adreno 430。从以往的经验来看,MSM8994或者APQ8094的性能相当值得期待,在发布后应该会成为“一大波”厂商旗舰机型的标配处理器。
在产品发布时间上,骁龙410预计早会在2014年第二季度开始供货,快到2014年年末,相关手机产品才会上市。而高通自己研发的Krait 64核心可能会在第一季度或者第二季度宣布,实际出货快也得到2014年第三季度。如果应用在产品上,那已经是2015年第一季度的事情了,离现在至少还需要一年的时间。这样一来,高通在64位处理器的先发优势可能不太明显,至少很难抗衡已经磨刀霍霍的三星。
三星作为目前在ARM业界唯一有可能和高通直接抗衡的厂商,依靠自家旗下三星手机惊人的销量,在ARM业界也成为了举足轻重的角色。不过直到今天,有关三星64位ARM处理器的消息依旧非常少。在CES上,一些媒体报道了有关三星在64位处理器上的一些发展计划,虽然依旧没有具体的产品信息,但是仍可管中窥豹,了解三星对未来ARM处理器发展的一些想法。
三星在64位处理器的发展上采用了两步走的战略。首先,三星会使用ARM官方架构诸如Cortex-A57、Cortex- A53来打造自己的首款64位Exynos 6处理器,并很可能应用在自己即将发布的GALAXY S5上。虽然对别的厂商来说,可能要到2014年年底甚至2015年年初才能有如此性能的64位处理器,但是对三星这样从上游到下游、从芯片到产品再到软件全局掌控的企业来说,2014年中期就发布使用高端Cortex-A57架构的SoC芯片并使用在产品上应该难度不大。接下来,三星会考虑自己研发一款全新架构的64位处理器,并借此摆脱ARM官方公版架构,从此自行打造兼容ARMv8指令集的产品。
从上述两步走的战略来看,如果说我们能首先在哪个Android品牌上看到高端64位ARM处理器的应用,毫无疑问三星的可能性是大的。即将发布的GALAXY S5,三星很可能给大家一个惊喜。
相比高通来说,NVIDIA在ARM业界的影响力要小不少,不过由于NVIDIA每次只做高端产品,因此在市场宣传以及产品技术上还是颇有看点的。在CES 2014大会之前,NVIDIA就在专场发布会上公布了全新的TegraK1处理器,它除了在SoC的GPU部分使用了移动开普勒架构集成192个流处理器外,还推出了兼容ARMv8指令集并使用NVIDIA自己研发的丹佛核心的双核版本Tegra K1。
NVIDIA目前没有公布有关双核心、64位架构的Tegra K1所使用的丹佛架构的信息,但还是提供了一些数据。丹佛核心的Tegra K1每个核心都是七发射的处理器,比Cortex-A15的三发射更强悍(桌面Core i7为四发射,当然数据的发射能力不代表其终性能)。NVIDIA的丹佛CPU架构应该是一个宽通道、强执行能力的大核心处理器,否
目前可以确定的是这款产品将在2014年下半年正式上市,所以如果配合64位Tegra K1的话,终端产品快也得等到2014年年底才能销售。不过有一点需要注意,目前的四核心Tegra K1和64位双核心Tegra K1的针脚接口完全相同,也就是说厂商不需要对PCB、散热和供电做任何修改就能直接从之前的四核心Tegra K1更换到64位Tegra K1,这可能会为Tegra K1提早上市带来帮助。不过鉴于Tegra 4和Tegra 4i的前车之鉴,我们对NVIDIA的计划还是得“悠着点”,2015年初能看到实际的64位Tegra K1就已经不错了。
Cortex-A53是ARM公版的64位入门级产品架构,性能功耗比表现极为优秀。
三星的64位处理器目前消息不多,还处于遮遮掩掩的“保密”阶段。
型号 MSM8916
工艺 28nm
CPU 4×ARM Cortex-A53 1.2GHz+
GPU Qualcomm Adreno 306
内存 64bit LPDDR2/LPDDR3
网络 9x25 core, LTE Category 4, DC- HSPA+
全志的处理器路线图,不过由于全志定位于中低端市场,因此其推出64位ARM处理器的时间比较晚。
再来看看国产厂商的动作。全志在自己的产品发展路线图中展示了64位ARM处理器的发展计划,不过由于全志产品往往定位于入门级市场,因此其在产品推广的速度上并不紧迫。在2014~2015年全志将依旧以32位架构的Cortex-A15和Cortex-A7为主,到2015年第四季度,全志才会推出基于ARM官方Cortex-A53和Cortex- A57架构的64位处理器。因此,如果想看到全志的64位处理器的实际产品,可能要等到2016年年中了。
全志这么晚才普及64位产品,除了考虑到新架构的应用难度,更多还是新工艺的应用问题,毕竟在2014年使用20nm工艺的成本肯定很高,但到了2015年20nm则已经成为大路货,成本控制方面有优势。此外,全志还在考虑应用更新的16nm FinFET工艺生产新的64位处理器。不过,对于无晶圆厂的全志,无论如何规划,在产品生产上还得看台积电的发展情况。
在64位这一点上,硬件的准备是一回事,软件又是另外一回事。目前新的Android操作系统依旧是32位的,谷歌也没有公布64位Android系统的发布时间。业内谣传Android 4.x还将发布数个版本,之后真正64位的Android 5.0才会到来。
作为一个开源系统,Android有可能被某些用户自行编译为64位,也有可能在64位硬件上正常运行,但是要实现各种各样功能的话,谷歌的官方支持还是必不可少的。简单来说,Android操作系统中诸如NDK的编译和发布、64位虚拟机的支持、支持64位Javascript引擎、支持64位系统的各种驱动程序等,都需要一步步完成。这里面的工作量非常大,短时间内很难完成。尤其是在ARMv8的规定中,同一个进程必须是32位或者64位的两者之一,不能在64位模式下运行32位的进程,因此为了向下兼容,很多操作系统都必须同时支持32位和64位,这也是非常麻烦和庞大的工作。
在操作系统之外,软件厂商还需要升级自己的软件,重新使用ARMv8的64位规范来重置、编译自己的软件,并且还需要考虑使用全新的多媒体指令集来加速那些陈旧而低效率的算法。这些工作也需要时间来完成。
从目前的情况来看,Android生态圈无论是应用软件还是操作系统都没有准备好迎接ARM 64位的到来。因此即使支持64位的ARM处理器能在今年年中发布,有没有合适的操作系统适配还是一个问题。乐观估计,完全支持64位的Android 5.0可能会在今年下半年发布,而那时才是64位移动设备全面爆发的开始。
说了这么多有关64位硬件和软件的内容,回过头来,咱们消费者应该如何看待“即将”到来的Android 64位手机呢?
首先可以确定的是,在2014年,真正在软硬件上都准备好使用64位的产品很难出现。即使厂商推出了基于64位高通骁龙410的产品,或者三星推出了采用64位处理器Exynos 6的GALAXY S5,也只能说是在硬件方面准备完毕,软件方面还需等待谷歌发布全新的64位Android操作系统,随后还有一大批开发商需要重新编写64位应用程序。软件方面更新的时间跨度可能会长达数年,之后才会彻底转向64位。
其次,正如前文所提到的,64位处理器的性能不可能是32位处理器的2倍,在没有加强设计的情况下,64位处理器相比类似的32位处理器,性能基本上处于同一档次。处理器性能的提升依旧还需使用更多的晶体管、更多的计算单元,同时还需要更新的工艺来保证。
第三,32位依旧有潜力可挖。目前32位的ARM架构还尚未到潜力挖尽的阶段,继续加强已有的32位架构,还有不少性能增长空间。至少在2014年,顶级32位架构和3GB内存都不会成为性能增长的瓶颈。
总的来说,这场开端于2014年的64位移动处理器竞赛,才刚刚拉开大幕,好戏还尚未上演。当然,无论是厂商还是消费者,都非常看重64位这个具有转折性、历史意义的技术节点。本刊也将继续关注有关64位移动处理器的相关情况,并将新消息呈现给大家。
目前新的Android 4.4才开始解决Android底层效率问题,离64位支持还有较远的距离。
目前唯一支持ARM 64位的操作系统是iOS 7,Android?还需等待。
手机依旧追求好用、实用,多少位的处理器对于消费者来说其实感觉不明显。iPhone 4S在一众大屏幕Android手机中杀出重围、历久弥新就是例证。
这个问题需要分为两个部分来看:一是64位处理器是不是比32位处理器快得多?二是64位处理器运行64位应用是不是比32位处理器运行32位应用快得多?
先来看第一个问题。这里的“64位”和“32位”都是指处理器内部寄存器的可用数量,而不是指处理器的计算能力。当然,由于寄存器的扩大,64位处理器在运行优化得当的64位程序时,可能会相比拥有类似计算能力的32位处理器运行同样计算负荷的32位程序有一定的性能优势,但并没有达到“强一倍”的程度。因为无论是多少位的处理器,在CPU内部计算单元没有变化的情况下,性能是不会有突破性提升的。只不过针对新的处理器,厂商往往会使用新的指令集、更好的制程、加入更多计算模块、更大的缓存、更高的频率、更强的内存来增强产品的性能,但这些统统都是处理器架构设计层面的事,和64位没有直接的关系。64位只是一个进步的标志,并不会直接带来巨大的性能提升。一个反例就是Cortex-A53,这是一个64位处理器架构,但是它的同频率性能要显著低于32位的Cortex-A15——这说明处理器的性能基本上只和架构设计有关,和多少位没有太大关系。
第二个问题我们通过引用国外媒体的数据来说明。Anandtech曾用支持64位的Geekbench去检验64位处理器苹果A7在运行64位应用和32位应用时的性能差异。从测试结果来看,排除由于新指令集带来性能明显增加的项目之外,在整数性能部分,64位应用相对32位应用大约有15%~25%的性能提升。在浮点计算部分,除了ARMv8对双精度支持更出色从而带来双精度计算的巨大优势外(高接近200%),其余计算部分高有26%的性能优势,光线追踪项目上有50%的性能提升。在浮点计算方面,性能提升的一个重要原因是更大的寄存器减少了加载和存储数据所耗费的时间,仅从这一点来看,64位是有意义的。
总结一下:64位处理器具有标志性的意义,它的性能和架构设计相关;在应用方面,64位处理器搭配64位应用,要比64位处理器搭配32位应用总体上具备更为出色的性能表现,但差距并不会非常大。64位的意义更多还是满足用户对内存扩展的需求。