0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

苹果M1芯片如此之快的技术原因是什么?

我快闭嘴 来源:神译局 作者:神译局 2020-12-14 15:11 次阅读

苹果今年最大的亮点也许不是手机,而是一块小小的芯片。M1发布会虽然已经过去了一阵子,但围绕着它的讨论依然不见平息。不过,对它的讨论很多都不在点子上,在技术方面解释得既不够深入也不够易懂。在这方面,Erik Engheim在Medium上发表的这篇文章也许是最详细最易懂的技术指南了。阅读本文,你将了解以下几点:1)为什么M1会这么快?2)苹果是不是用了什么独门绝招才做到这一点?3)英特尔AMD能不能效仿?原文标题是:Why Is Apple’s M1 Chip So Fast?篇幅关系,我们分两部分刊出,此为第一部分。

划重点:

700美元的新M1 Mac Mini战胜了4000美元的旧iMac

M1不是CPU,而是SoC

苹果采取异构计算策略来提高性能:不是增加内核,而是加入更多的专用芯片

CPU与GPU消耗内存之别犹如法国大餐与垃圾食品,苹果的统一内存架构很关键

英特尔和AMD抄不了苹果的作业

在YouTube上,我看到有位Mac用户去年买了一台iMac。它把内存配到了40 GB,花了他大约4000美元。但是,这么一台超贵的iMac,结果却被他用少得可怜的700美元买来的新M1 Mac Mini令人难以置信地给干掉了。

在一次又一次的实测当中,M1 Macs不仅仅只是超过了顶级的Intel Macs,而且还是压倒性的优势。大家一脸的不敢相信,开始问这怎么可能?

如果你是其中之一的话,你算是来对地方了。在本文中,我打算把这个问题拆解成比较容易消化的几个部分,就像苹果对M1所做的一样。具体来说,我认为很多人会有以下一些问题:

这个M1芯片这么之快的技术原因是什么?

苹果是不是做出了一些真正具有独创性的技术选择来实现这一目标?

像英特尔和AMD这样的竞争对手采用相同的技术花招的容易程度如何?

当然,你也可以试着Google一下,但如果你试图了解苹果都干了什么的话,你能找到的除了肤浅的解释以外,就会使一堆技术含量很高的术语,比方说M1用了非常宽泛的指令解码器,庞大的重排序缓冲器(ROB)等。除非你是CPU硬件极客,否则这些东西大多跟没说一样。

为了更好地理解本文,我建议可以先看看我之前的一篇文章:“2020年对于RISC和CISC来说意味着什么?” 在那篇文章里,我解释什么是微处理器(CPU)以及各种重要概念,比方说:

指令集架构(ISA)

流水线

加载/存储架构

微码与微指令

不过,如果你不耐烦的话,我可以简要介绍一下有助于理解我对M1芯片的解释所需要了解的材料。

什么是微处理器(CPU)?

一般来说,当谈到英特尔和AMD的芯片时,我们谈论的是指中央处理器(CPU)或微处理器。CPU会从内存中提取指令。然后,一般会按顺序执行每个一条指令。

就最底层而言,CPU是一种有若干叫做寄存器的命名存储单元,以及若干叫做算术逻辑单元(ALU)的计算单元组成的设备。ALU执行加法、减法及其他基本数学运算之类的操作。不过,这些操作指跟CPU寄存器连接。如果要让两个数相加,你得从内存取出这两个数字,然后放进CPU的两个寄存器里面。

以下是RISC CPU(M1也属于这种)执行的一些典型的指令示例。

load r1, 150

load r2, 200

add r1, r2

store r1, 310

这里的r1和r2就是我所说的寄存器。如果数字不在像这样的寄存器内的话,现代RISC CPU是没法进行操作的。比方说,它没法对位于RAM不同位置的两个数字进行相加。相反,它必须把这两个数字放到一个独立的寄存器里面。我们这里所举的那个简单例子干的就是这个。我们从RAM内存位置150处提取出数字,并将其放入CPU的寄存器r1中。然后,我们把地址200的内容放入寄存器r2中。只有这样,数字才可以用add r1,r2指令进行相加。

寄存器的概念很古老了。比方说,在这个旧的机械计算器上,寄存器是用来保存要相加的数字的。收银机(cash register)也许就源于此。寄存器就是登记输入数字的地方。

M1不是CPU!

不过关于M1,了解这一点非常重要:

M1不是CPU,而是由多个芯片组成的整个系统,全部都封装进放一大块硅里面。CPU只是其中一颗芯片。

基本上,M1算是把整个计算机都集成到了一块芯片上面。M1含有一颗CPU,有图形处理单元(GPU),内存,输入和输出控制器,以及构成整台计算机的众多其他功能。这就是所谓的片上系统(SoC)。

今天,如果你买芯片的话(不管是从英特尔还是从AMD那里买),你得到的实际上是封装在一起的多颗微处理器。在过去,计算机的主板上会配置有多颗物理上独立的芯片。

但是,由于今天我们能够往硅晶上面放太多的晶体管了,所以英特尔和AMD等公司开始把多个微处理器集成到一块芯片上。我们把这些芯片叫做CPU内核。一个内核基本上算是一个完全独立的芯片,可以从内存中读取指令并执行计算。

长期以来,就提高性能而言,这一直是问题的实质:就是不断增加更多的通用CPU内核。不过这种做法受到了干扰。在CPU市场里面,有一个玩家开始背道而驰。

苹果没那么神秘的异构计算策略

苹果没有往里面添加更多的通用CPU内核,而是采取了另一种策略:他们开始加入更多的专用芯片来完成一些特殊的任务。这样做的好处是,专用芯片的耗电往往比通用CPU内核少得多,执行特定任务往往又快得多。

其实这不是什么新知识。多年以来来,Nvidia和AMD的图形卡就内置了类似图形处理单元(GPU)之类的专用芯片,它们执行跟图形相关的操作要比通用CPU快得多。

苹果所做的只是朝这个方向做出了更大的转变。M1不仅配置了通用内核和内存,还包含有各种专用芯片:

中央处理器(CPU)——该片上系统的“大脑”。跑操作系统和应用的大部分代码。

图形处理单元(GPU)——处理跟图形相关的任务,比方说可视化应用的用户界面和2D / 3D游戏渲染。

图像处理单元(ISP)——可用于加速图像处理应用完成的常见任务。

数字信号处理器(DSP)——处理CPU所不为的数学密集型功能。包括音乐文件解压缩等。

神经处理单元(NPU)——用于高端智能手机,可加速机器学习AI)任务。其中包括语音识别和相机处理。

视频编码器/解码器——高能效地处理视频文件和格式转换。

Secure Enclave——加密身份验证和安全性。

统一内存——可让CPU、GPU以及其他内核快速交换信息

这就是为什么很多人用M1 Mac进行图像和视频编辑时看到速度快得飞起的部分原因所在。他们执行的很多任务都可以直接在专用硬件上运行。这样一来,廉价的M1 Mac Mini不费吹灰之力就可以对大型视频文件进行编码,而昂贵的iMac就算让所有的风扇转到飞起也没法跟上前者的原因。

苹果的统一内存架构有何特殊之处?

苹果的“统一内存架构”(UMA)有点费解(我刚开始的时候就搞错了)。

为了解释原因,我们需要退后一步。

长期以来,廉价的计算机系统已经把CPU和GPU集成到同一块芯片(同一块硅片)里面。这种做法的慢是众所周知的。过去所说的“集成显卡”跟 “图形处理慢”基本上是一个意思。

之所以慢,是因为若干的原因:

内存的单独区域要预留给CPU和GPU。如果CPU想要让GPU使用大量数据,它不能够告诉对方说“这是我的部分内存”就了事。不行,CPU必须把数据复制一份到GPU控制的存储区域上。

CPU和GPU对内存的使用期望不一样。不妨用食物做一个愚蠢的类比:CPU希望服务员快点上菜(装数据的碟子),一点点上也没关系。想象有一家豪华的法国餐厅,里面的服务员都是穿旱冰鞋的,所以可以为你提供快速服务。

相反,GPU可以接受上菜(数据)慢。但是你不能一点点地上,要上就得上大菜。它们需要吞噬大量的数据,因为GPU是规模庞大的并行机器,可以并行读取大量数据。不妨想象有一家垃圾食品店,上菜需要花点时间,因为他们要全部备好食物才一起上。

鉴于需求如此的不一样,把CPU和GPU放在同一块物理芯片上显然不是一个好主意。如果只上一点点的法国菜,GPU就只能坐在那里挨饿。其结果是,把强大的GPU放进SoC毫无意义。那一点点数据都不够GPU塞牙缝。

第二个问题是大型GPU会产生大量热量,所以如果跟CPU集成在一起你没法不遇到发热过大的问题。所以,独立显卡看起来往往像下面这样的:有着大型冷却风扇的大怪兽。这种显卡有专用的内存,旨在为贪婪的显卡提供大量数据。

这就是为什么这些显卡性能高的原因所在。但是它们有一个致命的弱点:当它们必须从CPU使用的内存里面获取数据时,得通过印刷在主板上的一组铜线,也就是所谓的PCIe总线进行。你试试用一根超级细的吸管喝水看看。水倒是一下子就吸上来了,但是水量不够啊。

苹果的统一内存架构试图把所有这些问题都解决掉,但又避免掉过去那种共享内存的缺点。为了实现这一目标,他们采取了以下一些手段:

没有专门给CPU或GPU保留的特殊区域。内存同时分配给两种处理器。它们都可以使用同样的内存。不需要数据复制。

苹果采用的内存既可存储大量数据,又可以快速存储数据。用计算机的术语来说,就是所谓的低延迟和高吞吐量。所以,就不需要将不同类型的内存连接起来了。

苹果降低了GPU的功耗,因此可以集成功能相对强大的GPU,而又不会导致SoC过热。

有人会说统一内存也不是什么新概念。的确,过去就有不同的系统有个这种玩意儿。但那时候对内存需求的差异可能并没有那么大。其次,Nvidia所谓的统一内存并不是一回事。在Nvidea的世界里,统一内存只是意味着有软件和硬件专门负责在独立的CPU和GPU内存之间来回复制数据。因此,从程序员的角度来看,苹果和Nvidia的统一内存也许是一样的,但是从物理意义上来说并不相同。

当然,这种策略需要有权衡取舍。要想实现这种高带宽的内存(份量大),要求内存要完全集成进来,这意味着客户升级内存的机会被剥夺了。但是,苹果在寻求尽量提高内存与SSD硬盘的通信速度,让它们在本质上相当于旧式内存一样,从而让这个问题最小化。

既然SoC这么智能,英特尔和AMD为什么不抄作业呢?

既然苹果在做的事情这么聪明的话,为什么不是每个人都这么做呢?从某种程度上来说,别人也在抄作业。其他的ARM芯片制造商在专用硬件方面的投入也越来越大。

AMD也开始在自家的某些芯片上部署功能更强大的GPU,并部署加速处理单元(APU,这种处理器基本上算是放在同一块硅片上的CPU内核加GPU内核),可以说是朝着某种形式的SoC迈进。

不过他们做不到这一点。因为一个重要的原因。SoC本质上是整台计算机都集成在一块芯片上。所以这种做法更适合计算机制造商,比方说HP和Dell。不妨让我再用一个愚蠢的类比来澄清:如果你原来的商业模式是制造和销售汽车发动机的话,那制造和销售整车就会是一次不同寻常的飞跃。

相比之下,对于ARM而言,这倒不是问题。戴尔或惠普等计算机制造商完全可以卖ARM的知识产权许可,并购买其他芯片的IP,就可以把它们认为自己的SoC应该具备的特殊硬件添加进来了。然后,他们再把做好的设计交给格罗方德(GlobalFoundries)或台积电(TSMC,现在在给AMD和苹果代工芯片)等半导体代工厂即可。

英特尔和AMD的商业模式遇到了大问题。他们的商业模式是以卖通用CPU为基础的,大家只需要把CPU插入大型PC主板即可。因此,计算机制造商只需要从不同的供应商处购买主板、内存、CPU和显卡,然后将其集成为一个解决方案即可。

但是我们现在正在迅速远离那个世界。在新的SoC的世界里,你不需要组装来自不同供应商的物理组件,而是组装来自其他供应商的IP(知识产权)。你从不同的供应商处购买显卡、CPU、调制解调器、IO控制器以及其他产品的设计,然后用来设计自己的的SoC 。之后再找一家晶圆代工厂生产即可。

但现在你会遇到一个大问题,因为英特尔、AMD或Nvidia都不会把自己的知识产权许可给戴尔或惠普,让他们给自己的机器制造SoC 。

当然,英特尔和AMD完全可以卖整块完工的SoC 。但是这些SoC会包含些什么呢?PC制造商对SoC应该包含的东西可能会有不同的想法。英特尔、AMD、微软和PC制造商之间的想法可能会因为SoC应包含哪种专用芯片而发生冲突,因为这些芯片需要软件的支持。

对于苹果来说,这件事情很简单。因为他们控制了电子产品的全部。比方说,苹果提供了Core ML库给开发者编写机器学习程序。Core ML究竟是在苹果的CPU上面跑还是在Neural Engine上面跑,开发者并不需要关心。
责任编辑:tzh

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    456

    文章

    50967

    浏览量

    424925
  • 手机
    +关注

    关注

    35

    文章

    6887

    浏览量

    157768
  • 苹果
    +关注

    关注

    61

    文章

    24431

    浏览量

    199223
收藏 人收藏

    评论

    相关推荐

    TAS5611有M1M2,M3模式设置脚,TAS5611的AD模式 BD模式有什么区别?

    TAS5611有M1M2,M3模式设置脚,请教一下芯片的AD模式BD模式有何区别?
    发表于 10-16 07:55

    飞凌微车规级视觉处理芯片M1系列:高性能、低功耗、小封装尺寸

    电子发烧友网报道(文/李弯弯)近日,思特威(SmartSens)正式宣布全资子公司品牌——飞凌微电子(Flyingchip,简称“飞凌微”)。同时,飞凌微M1车载视觉处理芯片系列正式亮相,包括M1
    的头像 发表于 08-14 09:11 4835次阅读

    苹果计划推出iPad Air新一代,搭载M3芯片

    苹果于今年五月正式推出了搭载M2芯片的最新款iPad Air,包括11英寸及13英寸两个版本,以替代2022年发布的M1驱动的10.9英寸版本。
    的头像 发表于 05-17 09:24 669次阅读

    苹果Logic Pro升级:引入AI增强工具与空间音频技术

    5月14日讯,苹果今日推出Mac和iPad版Logic Pro更新,新增AI功能,仅限配备苹果M1或更高版本芯片的设备使用。
    的头像 发表于 05-14 11:06 649次阅读

    苹果M4芯片有望2025年上半年亮相,竞争高通、英特尔、AMD

    据悉,Canalys规划的AI处理器发展蓝图显示,苹果欲在2025年第一季度发表M4系列芯片,以突出其强大的人工智能性能。值得注意的是,苹果继成功发布2020年11月的
    的头像 发表于 03-27 11:16 1359次阅读

    怎么将pMCI[M1]->pSTM->bState 的 IDLE_START传递给STM[M1]->bState的?

    各位亲: 我在5.4的库里面发现按键启动后,开始电机用的是 pMCI[M1] 这个结构体,如下 __weak bool MC_StartMotor1(void) { return
    发表于 03-27 07:56

    苹果发布搭载M3芯片的新款MacBook Air

    苹果近日在线上发布了搭载全新M3芯片的MacBook Air,这款电脑在性能上有了显著的提升。据官方数据显示,相比之前的M1芯片版本,新款M
    的头像 发表于 03-13 17:05 989次阅读

    M1芯片M3芯片相差大吗

    M1芯片M3芯片在性能和应用上确实存在一定的差异。
    的头像 发表于 03-13 16:41 3165次阅读

    m3芯片m3pro芯片怎么选 苹果m1芯片m3芯片区别在哪

    ,具有8核CPU和10核GPU,能够提供出色的计算能力和图形处理性能。对于日常使用、轻度游戏和一些基本的图形处理任务,M3芯片能够轻松应对,同时保持较低的功耗,为设备提供长久的续航能力。 苹果
    的头像 发表于 03-12 17:24 4110次阅读

    M3芯片M1芯片的比较

    M3芯片M1处理器相比,在多个方面表现出显著优势。首先,M3芯片在架构上采用了更先进的制程技术
    的头像 发表于 03-11 18:20 3114次阅读

    苹果M3芯片何时发布的

    苹果M3芯片在2023年10月31日正式发布,这一日期标志着苹果芯片技术领域的又一重要里程碑。
    的头像 发表于 03-11 17:15 1202次阅读

    苹果M3芯片性能提升

    苹果在2023年发布的M3芯片系列,在CPU性能和效率内核方面相较于M1系列有了显著的提升。具体来说,M3 CPU的性能核心比
    的头像 发表于 03-11 17:13 1265次阅读

    M3芯片M1芯片差别大吗

    M3芯片M1芯片在多个方面存在显著的差异。首先,M3芯片采用了更先进的制程
    的头像 发表于 03-11 16:52 2433次阅读

    M1芯片M3芯片的区别

    M1芯片M3芯片都是苹果自家研发的处理器,它们在性能和设计上各有特点。
    的头像 发表于 03-11 16:37 3546次阅读

    M1M2和M3芯片是什么意思

    M1M2和M3芯片都是苹果公司推出的自研处理器芯片,具有不同的特点和发布时间。
    的头像 发表于 03-08 15:51 6021次阅读