赞
踩
不得不佩服苹果的影响力,刚刚结束的 WWDC2020 大会,很多人熬夜观看,早上朋友圈基本被相关消息刷屏。那些酷炫的界面、花里胡哨的功能,果粉们静静等待其到来即可。
然而作为一名程序员,我们不应该只是“哇哦”感叹一声就完事了。关于这一点:苹果公司宣布 Mac 电脑将转向公司自主定制的处理器,也就是放弃 x86 架构,转向 ARM 架构,你应该特别关注下。
更换架构,苹果不是第一次:
使用 x86 架构,主要有两个原因。一是 Intel 的 CPU 比 PowerPC 性能强,并且由于产量大,价格也便宜。二是 Windows 电脑使用的是 x86 芯片,改了架构以后,Mac 电脑就也能安装 Windows,做到"一机双系统"。这可以促进当时处于市场劣势的 Mac 的销售。现如今,苹果又要进行架构更换。为什么?猜测有如下原因:
扯的有点多,这些跟咱们没太多关系了。我们关注一点和程序员有关的内容。本文只是给一个引子,希望能够让你意识到需要补充学习一些知识。
CPU 的全称是"中央处理单元",它是计算机的核心,计算都由它来完成。但是,CPU 本身只是一个概念,每家芯片公司都有自己的具体实现。
不同的 CPU 设计实现,就称为" CPU 架构"(CPU architecture)。不同的 CPU 架构有不同的指令集,彼此不通用,这导致运行在上面的软件也不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。
历史上,有过多种 CPU 架构。目前最常见的架构只剩下两种:x86 架构和 ARM 架构。
如果你对上面提到的 CPU 架构一无所知,你应该补补课了。
x86 泛指 Intel 用于开发处理器的指令集架构。最早是 1978 年的 Intel 8086 CPU,因为之后一系列都是 86 结尾,所以命名 x86。
x86 架构是可变指令长度的 CISC(即复杂指令集),每个指令可以执行若干低端操作。相应的有 RISC(即精简指令集)。两者具体的区别如下表(注意,具体的实现不一定完全按照这两个指令集标准进行):
CISC 的特点是指令数目多而复杂,每条指令长度不相等,计算机需加以判读,因此有性能代价。借用一个形象的例子比较 CISC 和 RISC,相信你会较好的理解。
我们要命令一个人吃饭,应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,张嘴,接着送到嘴里,最后咽下去”。从这里可以看到,对于命令别人做这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要说一句“吃饭”,他就会吃饭。但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。这就是“复杂指令集”和“精简指令集”的逻辑区别。
是不是有点类似高级语言和低级语言的区别?
全称是 Advanced RISC Machine,其中 RISC 上文提到了,是精简指令集,它对指令数目和寻址方式做了精简:
ARM 架构有一个显著的特点,即低功耗,因此特别适合嵌入式和移动设备。同时,ARM 在性能上也越来越好,它有一个很牛的创新:异构,这就是 ARM 的 big.LITTLE 架构。
ARM 的 big.LITTLE 架构是一项 Intel 一时无法复制的创新。在 big.LITTLE 架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的 2 个核或者 4 个核。一个 Intel 双核 Atom 处理器(x86)中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM 通过 big.LITTLE 向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行一款复杂的游戏时,使用的是高性能的核。
因为架构更换影响很大,苹果会有过渡方案,同时支持两种架构。那么具体对我们有什么影响呢?
很早之前就听说苹果电脑很好,但 PC 上安装不了(那时还是 PowerPC 架构),无缘体验 Mac 系统。但另一方面,一些人喜欢 Mac 的设计(硬件、装 B,哈哈哈哈),买了 Mac 电脑却不会使用,想要装 Windows 也装不了,装 B 没法顺利进行。自从 Mac 使用了 Intel 的 x86 架构,这两个问题都解决了。于是乎,看到不少人用的是 Mac,系统却是 Windows。
这次苹果要换掉 x86 了,想继续装的人不能了。其实真的不需要装,学习、适应下 MacOS,发现还是很不错的,可能再也回不去 Windows 了。
另外,前几年很多人使用 Mac 却依然装 Windows 的原因,是很多软件不支持 MacOS,比如网银、游戏等。现在这样的局面有了很大改观,这么一换,可能又会有一批软件没法使用了,需要过一阵子才能缓过来。
改为 ARM 架构后,不知道会不会跟 iPhone 一样,所有的软件必须经过 AppStore 才能安装,那样的话影响会比较大。
这个更换对 Mac 重度依赖的程序员有什么影响呢?
如果你对 ARM 指令集和寄存器感兴趣,这里给你推荐一些资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。