当前位置:   article > 正文

arm体系结构与编程_苹果宣布 Mac 放弃 x86 转向 ARM:看看你要补充学习知识吗?...

苹果笔记本从x86换arm的原因

不得不佩服苹果的影响力,刚刚结束的 WWDC2020 大会,很多人熬夜观看,早上朋友圈基本被相关消息刷屏。那些酷炫的界面、花里胡哨的功能,果粉们静静等待其到来即可。

然而作为一名程序员,我们不应该只是“哇哦”感叹一声就完事了。关于这一点:苹果公司宣布 Mac 电脑将转向公司自主定制的处理器,也就是放弃 x86 架构,转向 ARM 架构,你应该特别关注下。

更换架构,苹果不是第一次:

  • 1984年,苹果将 Mac 从 MOS 8 位 6502 处理器系列,转向摩托罗拉 68K 架构;
  • 1994年,从摩托罗拉的 68K 系列架构,转向 PowerPC 架构;
  • 2005年,苹果从 PowerPC 架构,转向英特尔的处理器架构(x86),由此开启了与英特尔长达 15 年的深度合作,几乎每一代的 Ma c都会搭载来自英特尔的定制芯片,这些芯片在英特尔平台的其它机器中基本上是看不到的。

使用 x86 架构,主要有两个原因。一是 Intel 的 CPU 比 PowerPC 性能强,并且由于产量大,价格也便宜。二是 Windows 电脑使用的是 x86 芯片,改了架构以后,Mac 电脑就也能安装 Windows,做到"一机双系统"。这可以促进当时处于市场劣势的 Mac 的销售。f69563fcc8eabde1c413d97c08bca2ec.png现如今,苹果又要进行架构更换。为什么?猜测有如下原因:

  • 苹果换了架构后不用再跟着英特尔的节奏发布新品,可以更好地部署 Mac 的产品线;
  • 基于 ARM 架构的 Mac 有更持久的续航时间,在未来的 5G 时代中,实时互联、超长续航会是 PC 产品的重要竞争方向;
  • 苹果希望通过控制 Mac 的软硬件生态,将 iPhone 的成功复刻到 Mac 产品线,打造苹果具有完全掌控力的软硬件生态圈;
  • 苹果公司的主要业务和利润来源,现在都来自移动领域,iPhone 的市场规模已经远远大于 Mac。所有的移动设备使用的都是 ARM 芯片,苹果的投资和技术成果也主要在这个领域,而不是在 x86 相关领域。Mac 转向 ARM 保证了各个产品线、生态的一致性;
f15572d3dc782e6bb27f3641cc52d0fa.png
A4

扯的有点多,这些跟咱们没太多关系了。我们关注一点和程序员有关的内容。本文只是给一个引子,希望能够让你意识到需要补充学习一些知识。

CPU 架构是什么

CPU 的全称是"中央处理单元",它是计算机的核心,计算都由它来完成。但是,CPU 本身只是一个概念,每家芯片公司都有自己的具体实现。

不同的 CPU 设计实现,就称为" CPU 架构"(CPU architecture)。不同的 CPU 架构有不同的指令集,彼此不通用,这导致运行在上面的软件也不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。

历史上,有过多种 CPU 架构。目前最常见的架构只剩下两种:x86 架构和 ARM 架构。

x86 是什么

如果你对上面提到的 CPU 架构一无所知,你应该补补课了。

x86 泛指 Intel 用于开发处理器的指令集架构。最早是 1978 年的 Intel 8086 CPU,因为之后一系列都是 86 结尾,所以命名 x86。

x86 架构是可变指令长度的 CISC(即复杂指令集),每个指令可以执行若干低端操作。相应的有 RISC(即精简指令集)。两者具体的区别如下表(注意,具体的实现不一定完全按照这两个指令集标准进行):

6a3398fc2661be7d828a639587abd0ac.png

来源网络

CISC 的特点是指令数目多而复杂,每条指令长度不相等,计算机需加以判读,因此有性能代价。借用一个形象的例子比较 CISC 和 RISC,相信你会较好的理解。

我们要命令一个人吃饭,应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,张嘴,接着送到嘴里,最后咽下去”。从这里可以看到,对于命令别人做这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要说一句“吃饭”,他就会吃饭。但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。这就是“复杂指令集”和“精简指令集”的逻辑区别。

是不是有点类似高级语言和低级语言的区别?

ARM 是什么

全称是 Advanced RISC Machine,其中 RISC 上文提到了,是精简指令集,它对指令数目和寻址方式做了精简:

  • 指令长度固定
  • 寄存器数量丰富
  • Load/Store 体系结构:即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成
  • 流水线
  • 。。。

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 重度依赖的程序员有什么影响呢?

  • 非苹果生态的软件:比如 Mac 桌面版 Docker 。本来就是依赖 Intel CPU 虚拟化开的 Linux 虚拟机,跑的 amd64 Docker 。如果更换成 arm,没有处理器虚拟化支持,这块性能会是个问题?
  • 一些第三方库:开发过程中难免依赖一些第三方库,如果是特定架构的,很可能没有 arm 版本;
  • 一些语言还不支持:比如 Go,没有 Darwin/ARM,不过这个相信强大的语言开发者们会很快跟进;目前 Go 对 arm64 的支持还是实验性的,估计会加快脚步;

结语

如果你对 ARM 指令集和寄存器感兴趣,这里给你推荐一些资料:

  • 《ARM 体系结构和编程》:这本书讲解很详细,不过没有 arm64 的内容;
  • 浅谈ARM64汇编:https://leylfl.github.io/2018/05/15/%E6%B5%85%E8%B0%88ARM64%E6%B1%87%E7%BC%96/
  • 跟 Go 有关的,官方文档:https://docs.studygolang.com/doc/asm#arm 和 《Go语言高级编程》第三章,虽然是 amd64 架构,但 Go 做了抽象,不少内容也适合 arm64

参考

  1. 苹果宣布自研 Mac ARM 芯片,能否引领 PC 走进新时代 https://tech.sina.com.cn/digi/2020-06-23/doc-iircuyvi9922858.shtml
  2. 苹果电脑为什么要换 CPU:Intel 与 ARM 的战争 http://www.ruanyifeng.com/blog/2020/06/cpu-architecture.html
  3. 分不清 ARM 和 X86 架构,别跟我说你懂CPU!https://zhuanlan.zhihu.com/p/21266987
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/221559
推荐阅读
相关标签
  

闽ICP备14008679号