x86 对决 Arm 简史小结

Demon.Lee 2023年01月30日 1,096次浏览

Apple 在年前悄然发布了新款 MBP,主要亮点在 SoC,将 M1 Pro/Max 升级到了 M2 Pro/Max,外观上基本上没啥变化。从 2020 年开始,这已经是第四波换芯之旅了。除了 Mac Pro 之外,笔记本和台式机都已从 x86 体系迁移到了 Arm 架构下。


说起 x86 和 Arm 两套指令集体系,卓克老师在《科技参考 2》中有一篇文章,基于此,笔者将其做一个简单小结:

1、指令集的作用是作为一个中间层来解耦硬件和软件,即把操作系统的逻辑操作翻译成硬件中对应的实际电路,比如 a+b=c 是一个逻辑运算,那么硬件电路中就有一波晶体管对应这个操作。

2、在没有指令集之前,软件随着硬件变化,即硬件变了,相同的软件需要重新编写。

3、但在上世纪 60-70 年代,IBM 搞出了指令集,从此软件不需要随着硬件变化而变化。

4、于是,给 IBM 提供芯片的 Intel 发现了商机。从 1978 年推出的 8086 处理器开始,Intel 刻意保持指令集的向后兼容,即原有指令尽量保持不变,新需求就弄新指令。

5、从那之后,Intel 便陆续发布了 80186,80286,80386,80486……,x86 就这么来的。

6、但在上世纪 70-80 年代,内存很贵,几十K 的内存需要几百美刀,这就迫使指令设计者妥协:一条指令最好能干很多事,不然就得花钱买更多内存来存储更多指令。

7、一切都很好,但时代在前进,多线程来了。在多线程下,不同的指令可以在不同的流水线上执行,可复杂指令的问题是执行时间长,这就导致流水线不同步,A 线程可能要等很长一段时间才能拿到 B 线程的结果。等待意味着资源的浪费,究其原因:指令长度不同。

8、怎么办?改。把复杂指令切成稀碎的短指令,于是指令集开始分家:前者叫CISC(Complex Instruction Computer Set,复杂指令集),后者叫 RISC(Reduced Instruction Computer Set,精简指令集)。

9、可历史包袱怎么办?对不起,搞不定。Intel 和 AMD 已经把 PC 市场垄断了,一旦你改指令集,那么多软件生态都得重新来一遍,玩不动。

10、再次妥协。1995 年的奔腾 Pro 处理器中塞了 3 个指令译码器,它们的作用就是把 x86 指令集拆成长度相同的简单指令。一切又好像回到了正轨,增加一个中间层,打个补丁,烦恼没有了。

11、但世易时移,当初设计复杂指令的前提条件已悄然不在了:2006 年的内存价格已经是 1980 年代的三百万分之一。

12、而此时,由于 PowerPC 芯片性能不行,乔帮主开始对 Apple 的 PC 产品线换芯,全面拥抱 Intel x86 架构。也是在这个阶段,Apple 找到 Intel,想一起开发一款功耗更低的简单指令集芯片,用在手机上,Intel 表示没兴趣。

13、于是乎,Apple 又找到三星,三星答应了。但三星做的东西没达到 Apple 想要的水平,Apple 便开始搭建自己的芯片设计团队,自己搞,然后交给三星和台积电代工生产(说起代工,三星的水平慢慢不及台积电,苹果的订单便逐步被台积电垄断)。

14、看到 Apple 的 iPhone 大获成功,各厂纷纷效仿,智能手机时代来临,以简单指令集为代表的 Arm 架构便一骑绝尘。


15、发展到这一步,x86 统领 PC 领域,而智能手机则被 Arm 占据。

16、那这两套体系,谁的性能更好?看生产工艺,一开始肯定是 Intel 的 x86 强,但后来逐渐被台积电等专业代工厂给反超了。

17、为什么?还得回到 CISC 和 RISC 两套指令集身上找答案。越复杂的指令,对应的实体电路就越复杂,要制造对应的结构便难上加难。Intel 怎么就突然变成了牙膏厂?把故宫和学生宿舍都缩小一百万倍,哪个更容易?

18、牙膏厂越来越不给力。而 Apple 从 2016 -2020 年发布的几款 MBP,也因精简轻薄、蝶式键盘、鸡肋的 touchbar 等被人诟病。Macbook Pro,性能在哪里,Pro 在哪里?

19、于是,Apple 开始自己搞。2020 年发布 M1 芯片,PC 换芯之路开始,去 Intel,去 x86,全部拥抱 Arm 架构。手机,平板,PC ,Apple 软件生态也随着 Arm 架构的落地开始大一统。

20、那么问题来了,Arm 和 x86 谁会最终胜出?卓克老师的意见是,Arm 会逐渐胜出,因为它灵活,特别是在 AI 领域的推动下,各种复杂的计算对芯片的要求会越来越高。