最近苹果终于对外公开了公司内部最神秘的部门 —— 芯片研发中心,媒体第一次进入这个部门,一窥苹果所有产品核心的诞生地。
从 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 芯片上的所有部件在物理上都非常接近。即使电信号以闪电般的速度移动,当传输距离较短时,操作也会更快。
在上述种种设计的加持之下,苹果自己的芯片性能不断进步,最终完成反超。
苹果之所以是苹果,也许正是来源于一直以来对于硬件和软件的极致把控,那么,在开源时代的今天,苹果的未来又会怎么样呢?
参考资料:
发表评论