让科技引领生活 化繁为简

手机64位与32位处理器的区别

硬件知识 Life 1206次浏览 已收录 0个评论 扫描二维码

最近移动终端的64位处理器比较火热,很多人不明白处理器的32位和64位到底有什么区别,其实如PC端一样,今天在网络上搜集了相关文章,转来普及一下目前流行的64位处理器。

 

过去数月,多款新智能手机都把64位处理器作为卖点。用户应当购买一款配置64位处理器的手机吗?64位处理器的性能是32位处理器的2倍吗?这两个问题的答案是否定的。转向更新的ARM架构会带来性能的提升,但64位计算技术却不能。

在用户购买首款64位Android手机(HTC Desire 510)前,或开始对将于今年秋季上市销售的64位手机“垂涎欲滴”前,本文将讨论64位计算技术的真正含义,以及用户需要关心或无视它的理由。

手机64位与32位处理器的区别

什么是64位处理器?

“64位处理器”的定义不止一种。最常见的一种说法是,64位计算技术意味着处理器可以访问超过4GB的系统RAM。这种说法是不正确的,一款芯片的“位数”与它能寻址的内存容量没有关系。

在完成加法、乘法、移动或复制数据等操作时,处理器可以使用2种类型的数据:整型(例如90210)或浮点型(例如3.14159265359)。如果一款处理器能完成多达16位的整型数据操作,它就被称作16位处理器;如果能完成多达32位的整型数据操作,就被称作32位处理器。读者一定能猜想到,64位处理器能处理多达64位整型数据的操作。

手机64位与32位处理器的区别

32位处理器使用32位数据表示内存地址,64位处理器使用64位数据表示内存地址。这意味着,在32位处理器上运行时,一款软件的最大寻址范围只有4GB,即使处理器本身的寻址能力更强大;64位处理器使用64位整型数据表示内存地址,一款软件的最大寻址范围是16艾字节(exabyte)——实际上相当于无限的内存。

对于大多数软件来说,64位处理器带来的好处不大。智能手机平板电脑上运行的大多数应用,对64位整型数据操作的需求都不大,使用的内存容量也不会超过4GB。事实上,有时64位应用的运行速度低于32位应用,因为使用64位内存指针会使应用“膨胀”,占用更多缓存和内存。

为什么移动64位处理器性能更高?

ARM处理器由32位发展为64位,只是范围更广、更重要的变化的一个方面:由ARMv7架构升级为ARMv8架构。

过去近10年,基本上所有智能手机芯片都基于ARMv7。所有现代智能手机——从第一代iPhone和T-Mobile G1到iPhone5和Galaxy S5,它们都配置基于ARMv7架构的处理器。诚然,过去数年ARMv7一直在进步,但其基本架构近10年来却一直没有什么变化。

手机64位与32位处理器的区别

ARMv7确实有些老迈了。约3年前,ARM发布了新的处理器架构ARMv8。ARMv8包含有许多改进。它能执行所有ARMv7指令,并对它们进行了简化。ARMv8新增添了面向现代应用的指令,并淘汰了部分陈旧的指令。另外,它还增添了适用于加密操作的指令。更重要的是,ARMv8中的寄存器数量翻了约一番。这非常重要,因为这意味着ARMv8能在更短时间内从内存中读取数据。当然,ARMv8支持64位计算技术,但与32位的ARM软件兼容。

ARMv8架构提高了64位芯片的运行速度和运行效率,而非仅仅是一款64位芯片。对于媒体来说,与解释增加的寄存器数量或新指令集带来的好处相比,宣扬“64位”计算技术更能吸引眼球。

 

64位处理器需要Android L的配合

仅64位处理器不能真正提升智能手机性能,还需要操作系统的配合。如果64位智能手机运行Android 4.4 KitKat,其潜能就无法得到充分发挥。64位硬件还需要Android L的配合,才能充分发挥其潜能。

64位ARM处理器还需要得到操作系统和应用的支持,其潜能才能得到充分发挥。Android L的设计目标是支持ARMv8和64位平台,而KitKat则不能充分发挥ARMv8和64位平台的性能。那么,用户还需要等待应用开发者针对64位平台对他们的应用进行优化吗?

手机64位与32位处理器的区别

诚然,如果开发者针对64位处理器对应用进行优化,应用运行速度会更快,效率会更高,但是,用户很快就能享受到64位处理器带来的好处。在Android上,大多数应用都是利用Java语言编写的。当下载一款应用时,用户获得的是java代码和库文件,Android操作系统能把这些代码转换为智能手机处理器可以执行的软件。这一过程被称作“编译”。

Android L中的编译器被称作ART,能够生成针对新ARM架构优化的代码。因此,只要智能手机或平板电脑配置64位处理器、运行Android L,即使开发者不对应用进行优化,应用的运行速度也会得到提高。如果开发者对应用进行优化,应用的运行速度会更快。

 

64真的比32位快一倍?

 这是一个经常被提起的问题,64位真的要比32位快一倍吗?答案当然是NO,但原因很少有人讲得清楚。记住下面这三条理由,下次跟朋友聊手机时你的逼格会提升很多。

首先,指令集不是1+1=2这么简单,指令的长度并不直接等于性能。尽管从数字上看,64位指令的确要比32位指令更长,但很多时候我们并不需要那么复杂的指令。一个应用程序(App)拥有成千上万行代码,CPU在执行每条代码时又会把它分割成无数条指令,编译器会自动决定怎样将指令组合起来最高效,它们并非都需要64位的字长。

一个典型的例子就是ARMv8指令集的数据模型。ARM在官方白皮书中指出,即使在纯64位模式下,ARMv8指令集数据模型中也并非每个指令都要求64位格式。另外,官方白皮书还提到,ARMv8指令集架构定义的指令长度并非64位,而是标准的32位定长。这些事实告诉我们,指令集并非越长越好。

  其次,唯处理器论性能,太片面了。比如,玩大型3D游戏,GPU(图形处理器)会更加影响帧数;而拍摄高清照片/4K视频时,DSP(可编程信号处理器)则事关重大。手机的SoC是包含CPU、GPU、DSP、通讯模块等大量功能的集合体,不同的应用场景会侧重于不同部件,单独以CPU一个部件来衡量性能未免太过片面。

最后,64位确实好,但程序本身的支持更重要。前面我已经提到,ARMv8 64位指令集包含AArch64、AArch32两种主要执行状态,如果不针对AArch64重新编写程序,那么程序默认就会在AArch32状态下运行——也就是说,现在的App都是32位的,跟64位一毛钱关系都没有,在64位处理器上运行32位程序,性能不会有任何提升。

总结:64位处理器虽好,也是未来发展趋势,但就目前来看,配套的系统与软件还不够完善,32位处理器已经能满足手机和平板用户的日常使用,所以64位处理器的真正实用还有很长的一段路要走。


如果您觉得文章不错,请分享给您的小伙伴吧
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
网站地图 | 衡天主机 | 统计 | 京ICP备15025824号.