找回密码
 立即注册
搜索
查看: 97|回复: 0
打印 上一主题 下一主题
收起左侧

[游戏资讯] 苹果或将全面放弃 32 位支持 Android 阵营应该跟风?

[复制链接]
跳转到指定楼层
楼主
 楼主| 发表于 2017-2-5 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


64 位移动处理器在 2013 年首次亮相,而苹果 iOS 系统则是首个支持 64 位计算的移动操作系统。有意思的是,从最近的消息了解,苹果将有可能在 iOS 11 正式放弃对 32 位应用程序的支持,正式完成对 64 位生态系统的完全过渡。其实这是 iOS 10.3 测试版一个错误信息无意间爆的料,当用户尝试运行 32 位应用程序,系统竟然告诉用户无法在未来版本中运行,开发者需改进适配,正是这点让人浮想联翩。
在 iOS 平台上,苹果已经不止一次提供类似的暗示了,并非常希望开发者仅提供 64 位应用程序。例如说,去年年底的时候,苹果从 App Store 移除了一定数量应用程序,理由是不兼容,并向开发者发送电子邮件,提醒他们应用程序开发必须以 64 位为基础。
通常来说,我们不太会在意系统或手机是 32 位还是 64 位,毕竟新设备总是能够同时兼容 32 位和 64 位应用程序。但是,考虑到苹果总是能对谷歌移动生态系统产生一定的影响,就有必要来讨论一下,为何苹果要做出这样的举动,而 Android 是否应该效仿。


32 位和 64 位
首先要简单的了解一下 32 位和 64 位的背景。32 位和 64 位一般是指 CPU 的通用寄存器位宽,相对于 32 位而言, 64 位的 CPU 位宽增加一倍,使其能够处理更多更精确的数据,因此有一定加快数据处理的作用,特别是负载的情况下。再通俗来讲,32 位和 64 位就是四车道和八车道的区别,在拥堵的晚高峰,八车道速度显然更快。
当然了,64 位可寻址范围大大扩展,32 位系统最大支持内存为 4G。另外,32 位系统和 64 位系统需要安装支持相应软件模式下的操作系统和驱动软件,也就是 32 位只能安装 32 位,64 位安装 64 位的软件,但可兼容 32 位运算。
回到 ARM 处理器的话题上。ARM 从 32 位 ARMv7-A 到 32 位 / 64 位 ARMv8-A 的转变过程中,引入了大量的新指令以便增强功能,也就是 AArch64 指令集。但为了保证 ARMv8 能够向后兼容,AMR 在架构设计上仍保留了现有的 AArch32 和 Thumb-32 指令集。虽然这就意味着 CPU 核心管线部分需要进行更多设计,占用更多极其有限的芯片空间,但确保了这些传统指令也能够与新硬件一起工作。
需要注意的是,单个应用程序使用过长中,完全不可能同时使用 ARMv7 和 ARMv8 两种执行状态,因为 AArch64 与 AArch32 和 Thumb-32 指令集之间没有任何交互操作。因此,直接以 AArch64 指令集和 ARMv8 处理器为基础编写的应用程序,无法在 ARMv7 Cortex-A 系列处理器上运行。不过,以 ARMv7 Cortex-A 处理器为基础编写的应用程序,仍可以在 ARMv8 处理器上运行,毕竟可通过保留的 AArch32 和 Thumb-32 执行状态运行。
其实说白了,如果苹果真那么做的话,像 iPhone 5 这款以 ARMv7 处理器为基础的机子,将无法升级到 iOS 11 操作系统。


苹果为何执意转向 64 位
苹果放弃对 32 位应用程序的支持表明,未来将完全拥抱 AArch64 执行状态,其硬件处理器和软件 iOS 系统,还有应用程序的设计,所有都将只适用于 AArch64 指令集功能。好处自然不少,包括更大的寻址范围支持更大的内存,简化汇编程序,双精度浮点及更先进的 SIMD 运算,以及高达 3 至 10 倍的加速硬件加密性能等。
不过,开发者和开发商将无法再使用 AArch32 和 Thumb-32 指令集,因为必须更新应用程序。当然了,除了迫使开发人员利用全新 64 位架构的最新特性之外,这也十分有利于苹果更出色的完成下一代 CPU 的设计工作。苹果有出色的芯片设计团队,而且一直在规划放弃对旧架构的支持,完全可以借此尽可能多地释放芯片空间,降低制造成本,或者将释放的空间加以利用,加强 CPU、GPU 及其余部分,或引入更加先进的一些功能。
我们不清楚苹果如何设计下一代芯片,或许会是为 64 位进一步优化 CPU,而不一定是全部转为 64 位,保留部分传统硬件所需的 32 位指令,不会强行破坏与 ARM 签署的许可协议。因为 ARM 通常要求基于其授权架构的 CPU 设计,务必支持全部指令集,若遵守这一规定的话,苹果的芯片同样需要保留对 AArch32 和 Thumb-32 的支持,如此一来才能通过 ARM 的一致性测试。
不过,ARM 自己提倡灵活性设计,例如 Cortex-A32 就是基于 32 位版本的 ARMv8 架构设计,没有十分明确哪些指令集是强制性要求,这就相当于留给苹果更多的发挥空间。


那么,Android 阵营应该跟风?
有利有弊,而且也并非完全不可行,若是基于上述相同的原因,只要谷歌和智能手机芯片开发商(如高通和联发科)联手,软件和硬件上共同合作也能实现。但不可否认的是,Android 生态圈比苹果大很多,分布有大量不同的硬件配置,若立即执行同样的转变相信很难迅速组织起来,甚至在此过程中可能被迫中断。
尽管如此,理论上谷歌也可以从软件方面做类似的事情,强制要求所有 Google Play 商店的应用程序转移到 64 位版本。不过,这同样需要一个长期的过渡时间,虽然今天入门级的智能手机和平板电脑都已经装备了 64 位 处理器,但是依然依赖于大量的 32 位应用程序,而且真正完美兼容 64 位指令集的并不是很多,一旦放弃向后兼容后果不堪设想。
讲真的,Android 生态圈完全迁移到 64 位不太靠谱。例如说,许多 Android 车载娱乐系统仍基于 ARMv7 处理器打造。再看智能手表,包括华为、索尼和 LG 的手表,均搭载了 32 位的 ARM Cortex-A7 处理器设计。另外,谷歌最近公布的 Android Things 物联网平台,其开发板的芯片也并没有兼容 64 位的应用程序。
那 Android 阵营没办法全面过渡到单一的 64 位计算了?并非如此,只是可以预见,未来 Android 依然提供 32 位的支持,这是最两全其美的解决方案。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( Q群816270601 )

GMT+8, 2024-5-6 04:14 , Processed in 0.065632 second(s), 14 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表