ARM 处理器意味着什么?" />
英文原文:Why ARM’s 64-bit architecture is good for developers and good for users
64 位计算的历史相当丰富有趣。Cray 等公司在 70 年代就已经开始在自己的系统当中使用 64 位寄存器,但真正纯粹的 64 位计算直到 90 年代才真正到来。 首先是 MIPS 的 R4000,然后是 DEC 的 Alpha 处理器。到 90 年代中期,英特尔和 Sun 都已经拥有 64 位设计。而对于消费者来说,真正的转折点是 AMD 在 2003 年发布了一款兼容英特尔 32 位 x86 处理器的 64 位 PC 处理器。
再向前快进 10 年,PC 销量不断下滑,大部分智能手机和平板电脑都拥有了主频在1-2GHz 之间的多核心处理器。但它们使用的都是 32 位架构,而非现代 PC 和服务器所使用的 64 位架构。到现在为止,这都是可以接受的。智能手机并不会去和 PC 拼性能,这些处理器需要足够节能,以实现续航的最大化。
但是,随着设备的发展和新技术——语音识别、3D 游戏和高分辨率显示屏——逐渐普及,32 位处理器的能力已经渐渐被推到了极限。
ARM 看到了 64 位节能处理器的需求,并在正式发布 ARMv8-A 架构(首个包含 64 位指令集的 ARM 架构)之前就早早开始了新设计的开发,还从其他选择发展 64 位技术的芯片设计厂商那里学习到了经验和教训。ARM 的新款 64 位架构具备对于旗下 32 位架构的全面兼容,这意味着如果处理器运行于 64 位系统,它就可以运行未修改的 ARMv7 32 位二进制文件。对于 Android 来说,这意味着一旦内核被移植到 64 位(多亏了 Linaro,它们已经如此了),系统的其余部分,从核心库到应用再到游戏,都是可以在 32 位或 64 位之间进行切换的。
去年,苹果凭借着 iPhone 5s 的全新 64 位 A7 处理器震惊了整个移动领域。A7 采用了苹果设计的 ARMv8 双核处理器,名为 Cyclone。它使用了两个 64KB L1 缓存(供两个核心分别使用),一个 1MB L2 缓存(被两个核心所分享)和一个 4MB L3 缓存(为整个 SoC 所用)。苹果拥有 ARM 架构授权,这意味着它可以从头开始设计自己的处理器,但前提是这些处理器必须是 ARM 兼容的。ARM 拥有一套测试套件,用以检查这些处理器是否具备兼容性。
在未来几个月里,我们将会看到高通、联发科和三星纷纷推出自己的 64 位 ARM 处理器。再考虑到 Android 在 64 位化的努力,用不了多久我们就将看到运行于 64 位 Android 系统的 64 位设备了。但对于开发者和终端用户来说,64 位处理器意味着什么呢?
受益于 ARM 的 64 位架构
每一部 CPU 的中心都是一套寄存器,他们都是用以存储数字和地址的内部存储插槽。当执行复杂任务时,这些插槽会被反复使用。如果所有的寄存器都处于占用状态,那么处理的唯一方式是将其中一个寄存器存储在内存当中,使用寄存器进行下一个任务,然后再从内存当中重新载入之前的值。对于人类来说,这一切都发生在一瞬间。但对于处理器来说,这实际上是一个非常耗时的顺序,并不十分效率。
32 位 ARMv7 架构拥有 15 个通用的寄存器,每一个都有 32 位宽。而 ARMv8 架构拥有 31 个通用寄存器,每一个为 64 位宽。这就意味着优化代码使用内部寄存器的频率应该要比内存更高,同时也可以保留更大的数字和地址。结果就是,ARM 的 64 位处理器在运行速度上会更快一些。
在能效上面,64 位寄存器的使用并不会提升功耗。在某些情况下,64 位核心执行部分任务的速度会更快一些,由于运行时间的减少,这也就会使其显得比 32 位核心更加节能。
寻址(Addressing)是 64 位处理器的另一个层面。在 PC 和服务器领域,32 位的局限主要在可访问的内存上。如果你想要使用超过 4GB 的内存,就需要使用 64 位处理器。因为可以使用大物理地址拓展(LPAE),某些 ARMv7 处理器能够使用超过 4GB 内存,所以严格来讲,内存的限制并不是 ARM 处理器所遭遇的问题。由于 LPAE 的存在,Cortex-A15 处理器能够处理 1024GB 内存,而 64 位的处理能力更是高达 200 万 TB。因此在短时间内, 任何一部智能手机都不需要完整的 64 位寻址。追求永远都不会被用到的寻址空间是毫无意义的,因此 ARMv8 架构采用了 48 位寻址,这已经是 256TB 了。
虽然没有什么程序或游戏会用到 TB 级别的内存,但在另一方面,这种寻址能力又非常重要。现代 3D 游戏通常都带有大量的资源,当拥有超过 4GB 的可访问空间时,这些资源能够被更加轻松地进行内存映射。这样一来,游戏的运行速度会得到提升,并让直接访问游戏多媒体资源成为可能。
不只是智能手机和平板
ARM 上 64 位计算的好处并不仅限于智能手机和平板电脑。ARM 的生态系统很广阔,他们的处理器也被许多不同类型的设备所使用。服务器市场是 ARM 处理器影响力有限的一个领域。信息时代的发展让维持数据中心所消耗的能源持续快速增长,而任何能够降低能源使用的技术都是对于资金和自然资源的节省。除了节能之外,在服务器当中使用 64 位 ARM 芯片还有其他的好处。这些服务器都会被动散热,这意味着你可以将它们集中在一起,而无需担心会发生过热的情况。这样一来,用于散热上的花费也将有所降低。
至于服务器软件,Linux 这样的操作系统已经是 64 位的了,其主线内核当中也已经加入了对于 ARMv8 的支持。这也就是说,制作运行于 64 位 Linux、ARM 处理器的服务器并不会很困难。
总结
多亏了 ARM,64 位的移动计算时代就要到来了。这些新的处理器不仅速度更快,还为移动平台开启了更多的可能性。
从 32 位向 64 位的迁移道路已经被铺就,无论是什么操作系统,开发者从 32 位进入 64 位都不会有任何意外。
在未来几个月里,ARM 的合作伙伴都将推出 Cortex-A53 和 Cortex-A57 处理器。当中有的会采用双核或四核的标准配置,也有的会选择 big.LITTLE 配置。但有一点是肯定的,那就是这对于 ARM 和普通用户来说都是一个激动人心的时刻。