进入最神秘芯片实验室,回顾苹果历代CPU构架,展现3万亿公司成长之路

图片
最近苹果终于对外公开了公司内部最神秘的部门——芯片研发中心,媒体第一进入这个部门,一窥苹果所有产品核心的诞生地。
图片
从2006年开始,驱动着苹果新业务的芯片都几乎诞生于此。
而这里最新的成果是最近苹果最近刚发布的M3芯片。
3nm工艺的加持,让M家族系列芯片性能大增。
苹果创造了资本主义历史上最成功的产品,成为第一家市值达到1万亿美元的企业。
通过畅销的iPod等产品、无与伦比的品牌推广,以及史蒂夫·乔布斯的独特魅力,成功地让科技变得时尚和优雅。
苹果在硬件优化方面的执着令人印象深刻,从1984年发布Mac以来,已经三次改变了CPU架构。
但是这并不是一件容易的事情。
每当一家科技公司宣布要改变CPU架构时,人们普遍发出质疑,这些公司是否能在整个软件生态系统被抛弃的情况下生存下来。
在那个时代,软件还是存储在软盘里,这种怀疑更加严重。
著名科技专栏作家约翰·德沃夏克曾表示,将PowerPC架构转变为英特尔的x86架构,为苹果引入了Windows世界的前奏。打开了苹果与Windows更深入沟通的大门。
1984年Motorola 68k
图片
Motorola 68k CPU的内部芯片
1981年,苹果正在跌跌撞。
一开始,Macintosh是一种相对便宜的电脑,当乔布斯领导下,Macintosh开始专注于一件事情:赢过LISA团队。
乔布斯引入了一个超前的图形用户界面,而且要求他的团队使用最顶尖的硬件。
在PC领域,CPU的选择非常关键。
非常早期的个人电脑,使用的是8bit的CPU。
但是,在20世纪80年代,如果想要设计一台功能强大的PC电脑,需要选择现代的16bit处理器架构。
实际上,在当时,有三种主要的选择:Intel 8088、Zilog Z8000或Motorola 68k。
CPU和寄存器
让我们回顾一下概念:
CPU是一种将数据从计算机内存 (RAM) 移至快速临时内存(寄存器)、对该数据运行操作,然后将输出移回内存的设备。
图片
CPU 的基本架构
寄存器是电子存储器中最小的单元——它们在CPU的核心中只保存几个位。CPU 按照指令(计算机程序)对该数据执行操作,操作位是1和0。
算数逻辑单元(ALU)
这些运算由算术逻辑单元 (ALU) 执行。这基本上是执行简单、专门工作的电路的集合,例如:
将二进制数相加,例如 0010 + 0101 = 0111
执行逻辑运算,例如 NOT 0000 = 1111
移动位,例如 0011 左移 1 位变为 0110
CPU 的控制单元一次解码一条指令,以决定哪些数据应移至哪个寄存器,以及哪个寄存器的数据应通过哪个ALU电路。
非常快速地多次执行这些操作,它会累加输出,例如矩阵乘法、视频游戏中的碰撞物理或将图像数据光栅化为屏幕像素。
让我们继续回到苹果。
Intel vs Zilog vs Motorola
假设您是苹果公司的硬件副总裁,正在向乔布斯做演示。
首先,Intel 8088有着16位微处理器,支持 640kB RAM,IBM PC采用了这种芯片架构,因此拥有强大的现有软件生态系统,由于英特尔巨大的规模经济,低端价格约为 35 美元(以 1983 年美元计算)。
图片
而Zilog Z8000是纯16位微处理器,支持8MB RAM,很少有大型竞争对手使用这种架构,最小的软件生态系统,中档价格点约为 55 美元。
图片
最后,Motorola 68k有着16/32位微处理器,支持16MB RAM,Atari和 Commodore使用这种芯片架构,以及一些现有的开发生态系统。但是之前通过Apple I、Apple II和 LISA 与Motorola建立了供应商关系。
你会选择哪种芯片架构呢?
总的来说,选择摩托罗拉68k处理器似乎是具有前瞻性的,这解释了为什么1984年的Macintosh不同于其他电脑。
尽管它在开发生态系统和兼容性方面不如主流的IBM PC,但这个选择为品牌带来了差异化。
更重要的是,68k拥有一个几乎完全正交的指令集,这意味着几乎每个CPU操作都可以在几乎每个寄存器上执行,而许多竞争的CPU则限制了指令的寄存器选择。
这种正交性使CPU更容易编程,对于培育新兴的软件生态系统来说是一个理想的选择。
最终,16MB的内存寻址范围变得极为重要,Macintosh保留了顶部12MB的内存供操作系统使用,同时共享了4MB的内存给不同的软件应用程序。
如果查看2012 年16GB iPod Touch 中的可用存储空间,你就会发现可用空间其实非常的少。
图片
1994年 PowerPC
图片
PowerPC CPU 的内部芯片
时间是 1994 年。8 年前,史蒂夫·乔布斯 (Steve Jobs) 被苹果公司赶下台,现在正忙于发明皮克斯 (Pixar) 和 NeXT。
苹果正在失去相关性。
1994年,当时史蒂夫·乔布斯已经离开苹果,开始投身皮克斯和NeXT的创业事业时,苹果逐渐失去了市场影响力。
与之前的竞争对手IBM相比,他们正在经历着微软的竞争,这一过程既漫长又痛苦。
在此期间,英特尔和比尔·盖茨(在20世纪90年代被戏称为“魔鬼”)结成了一种名为Wintel的邪恶联盟,这使得这两家公司几乎垄断了市场。
图片
这并不是要低估x86芯片架构的威力,英特尔凭借其100MHz的速度和出色的能效表现,获得了市场主导地位。
而带领Macintosh进入90年代的摩托罗拉68k系列芯片却未能跟上发展。
面对垄断的威胁,苹果与长期合作伙伴摩托罗拉以及不太可能的盟友IBM合作,旨在用团结对抗资本主义势力。
于是,AIM(苹果、IBM、摩托罗拉)联盟应运而生。他们认识到x86架构存在一个重要弱点:它采用了CISC架构。
为了应对这一问题,AIM采用了RISC策略,即PowerPC。
苹果开发了一个仿真器,使PowerPC能够模拟摩托罗拉CPU。这意味着它可以实时将指令从一种架构转换为另一种。
显然,这会带来性能成本。不过,幸运的是,由于PowerPC CPU非常强大,因此对于升级硬件的用户来说,这种模拟通常不是大问题。
苹果采取的另一策略是在过渡期内使用宽二进制文件。这样,软件可以包含针对68k和PowerPC架构编译的代码。
因此,工程师可以发布单个应用程序,其中包含两个单独的二进制文件,可以在两种Mac CPU平台上运行。
在当时,硬盘驱动器容量通常只有80MB,这种情况变得很烦人。因此,出现了二进制剥离工具,使最终用户只需要保存适用于他们设备的文件。
图片
总的来说,苹果的过渡是成功的。从68k过渡到PowerPC带来了巨大的性能提升。仿真和宽二进制文件使软件生态系统得以顺利过渡。
然而,不幸的是,Wintel联盟几乎没有受到影响。随着Pentium和Windows 95的发布,它们的市场主导地位达到了前所未有的水平。Windows逐渐成为默认的计算平台,将全球各地的学校ICT课程变成如何使用Microsoft Office。
图片
现在,他们已经拥有了坚实的硬件平台,而苹果陈旧的System 7 Mac操作系统成为了主要障碍。
他们曾尝试内部项目来创建Windows的竞争对手,但未成功,因此他们不得不通过收购的方式来解决这个问题,即简单地购买一个新的操作系统。
这为苹果收购NeXT并迎回史蒂夫·乔布斯奠定了基础。
2006年 Intel x86
2000 年代初,苹果再次恢复了魔力,乔布斯王者归来之后,划时代的 Mac OS X 以及iPod 取得的成功使陷入困境的苹果转变为消费电子产品巨头。
图片
然而此时的PowerPC 架构却未能跟上 Intel x86 庞然大物的步伐。
笔记本电脑的市场越来越庞大,而PowerPC CPU 的耗电和发热成为了劣势,无法打造出乔布斯所设想的超薄笔记本电脑。
图片
2005 年全球开发者大会上,乔布斯正式宣布从 PowerPC 架构 转向 Intel。到 2006 年,预计高端 Intel x86 处理器的每瓦性能将是 PowerPC 的近 5 倍,时钟速度将提高近 1.5 倍。
那么,是什么让 Intel x86 架构如此出色?这里我们稍微讨论一下CPU设计中的一些概念,以及当时的英特尔在 CPU 各个方面上所进行的创新。
CPU缓存(Caches):
CPU 从内存 (RAM) 获取数据后,需要将其放入片上的寄存器中执行操作。但CPU的时钟频率远高于RAM,于是RAM成为了系统速度的瓶颈。
因此,CPU 发展了片上缓存(Caches)来存储中等数量的数据。作为缓冲地带更靠近芯片本身,并允许更快地访问必要的数据。
这些缓存本身是分层的:
图片
计算机系统中存储的分层遵循以上的金字塔结构,由下到上,存储介质的容量越来越小,但速度越来越快,充分利用了计算机程序的“局部性”原理,大大提高了整体的效率。
分支预测(Branch Prediction):
分支指令用于处理条件语句。聪明的 CPU 使用统计数据来猜测代码的去向,并尝试保持指令管道的填充以获得最大利用率。
其机制涉及直接内置于 CPU 电路中的硬件算法。称为分支历史表的缓冲区缓存最近的分支结果。
超标量架构(Superscalar Architecture):
超标量架构是多任务处理的终极目标。超标量 CPU 可以在单个时钟周期内同时执行多条指令。
这种架构之所以有效,是因为算术、在寄存器之间移动内存以及浮点运算等操作需要 ALU 上的不同电路。
对于拥抱Intel x86这种重大的转变,Apple 再次采用其历史悠久的过渡技术来实现 CPU 架构的平稳迁移。
图片
Apple 推出了为两种 CPU 架构构建的通用二进制文件,可以通过简单的 Xcode 构建配置进行设置。
在硬件和软件的共同助力之下,苹果公司交付了完美的作品, 实现了乔布斯的“超薄”梦想,同时也将苹果公司带入了新的时代。
2020年 苹果芯片
了解乔布斯,了解苹果的人,一定会明白他们的最终竞争优势:硬件和软件的紧密集成。
图片
2007 年发布的 iPhone 采用三星提供的 ARM CPU。而从 iPhone 4 开始,苹果开始设计自己的芯片A4。
2008年,苹果以2.78亿美元收购了PA Semiconductor,这是一家以高端低功耗处理器闻名的CPU设计公司。
十年后的 2018 年,苹果再次以 3 亿美元的价格部分收购了欧洲芯片设计公司 Dialog。
终于,在2020 年,Apple 宣布了第三次伟大的 Mac CPU 架构转型——M1——预示着 Apple Silicon 时代的到来。
图片
那么,对比前面所说的Intel X86 架构,M1又有什么自己的秘密武器呢?
首先,M1芯片采用异构计算策略,这意味着针对特定工作负载使用专用的组件。M1 SoC 的组件专门用于许多计算任务。
其次,M1芯片具有GPU和CPU之间共享的统一内存架构,Apple 分配相同的内存块(RAM 和 L3 缓存)在两个处理器之间共享,并且它的格式可以同时满足 CPU 所需的高吞吐量以及 GPU 所偏好的大块数据。
图片
传统情况下,当将数据发送到外部 GPU 进行处理时,CPU 通常需要将数据复制到 GPU 拥有的内存中,然后才能拾取数据进行处理,而统一内存架构解决了这个问题。
我们之前讨论过超标量架构,该架构使 CPU 内核能够同时读取、解码和分派多个指令。M1 芯片凭借其 RISC 架构,使苹果能够通过乱序执行将其提升到一个新的水平。
基本的 M1 芯片有8个解码器,CPU 内核在每个时钟周期同时填充这些解码器。这些指令被并行地分派到各种专用电路。
最后,M1 芯片上的所有部件在物理上都非常接近。即使电信号以闪电般的速度移动,当传输距离较短时,操作也会更快。
图片
在上述种种设计的加持之下,苹果自己的芯片性能不断进步,最终完成反超。
苹果之所以是苹果,也许正是来源于一直以来对于硬件和软件的极致把控,那么,在开源时代的今天,苹果的未来又会怎么样呢?