苹果自研芯片M1的顶尖在哪里?

苹果的M1芯片在执行任务时有什么优势?

苹果在2004年把笔记本的CPU从IBM的Power系列换成了Intel的Core系列,因为Intel的CPU性能功耗比远远超过IBM。

2020年,苹果彻底抛弃英特尔,使用自己的CPU。其实原因和当初是一样的,因为我们自己研发的CPU在性能和功耗上都比英特尔好很多。

但实际上,苹果M1系列CPU的架构与英特尔酷睿系列、AMD Zen3系列高度相似。那么,M1为什么强那么多呢?

接下来我就拿这三款典型的CPU做一个对比。为了减轻大家的听课负担,我就不重复Intel的Core和AMD的Zen3的全名了,只说Intel和AMD。

这些CPU在执行任务时,都遵循“取指令-解码指令-执行指令-读取内存-写回结果”这五个步骤。接下来,我们来说说这些细节上的区别。

在执行指令之前,影响性能的环节是获取指令。这与刚才提到的“接受指示”的步骤相对应。取来的指令会放在一级缓存中,所以如果一级缓存足够大,会帮助CPU提升性能。

这一步,M1大大超越了Intel和AMD。M1的L1缓存为192 KB,比Intel和AMD的32 KB大5倍。

指令拿来后,需要解码。这是因为所有外部指令都必须翻译成CPU能够理解的语言。这里,M1有8个解码器,Intel有5个解码器,AMD有4个解码器。我们只能看到数量上的差距。

但其实差距不仅仅是数量上的。因为实际上这三个CPU内部可以读取的指令都是一种叫RISC(精简指令集)的指令。这种指令有固定的长度和执行时间,但不能太复杂。如果要完成复杂的动作,需要堆叠很多RISC。

为了与进入解码器前的指令相区别,每一条通过解码器后的指令都称为“微指令”。

以及输入CPU的指令是什么?

苹果的M1,输入是RISC指令。对于Intel和AMD,是X86指令。这是与RISC指令完全不同的指令。它们被称为CISC(复杂指令集)。这种指令长度和执行时间都不固定,但是一条指令可以执行一些复杂的任务,不需要堆叠很多块。

RISC和CISC是两个完全不同的阵营。在Intel和AMD的CPU中,还需要一个程序将CISC翻译成RICS,所以翻译过程自然需要精力和时间。而苹果的M1,输入指令是RISC,翻译器输出RISC。

你可能要问,既然苹果的输入输出都是RISC,为什么还要翻译?因为需要标准化。但是这样的标准化有点类似于把繁体中文翻译成简体中文,比较简单。Intel和AMD在这一步做的翻译,类似于把古文翻译成简体中文,要费力得多。所以在这一步,M1节省了很多能量。

在执行之前,还有一个步骤,就是发出翻译标准化的指令。在启动步骤,M1一次可以发出8条微指令,AMD一次发出6条,Intel一次发出4条。也就是说,在相同的任务和频率下,M1发出的微指令数量刚好是Intel的两倍。

在执行微指令之前,还有一个步骤是对它们进行排序。因为需要执行一些指令,所以需要等待前面计算的结果。

比如除法借位就是一个典型的例子。所以就出现了一些微指令的顺序不能改变的现象。还有很多微指令是不分先后执行的,只要尽快算出结果就行。

这样一来,那些需要等待前件计算结果的指令很容易在队列中堆积。这个排队区域叫做“缓冲区”。因为这个缓冲区是用来排队微指令的,所以这里也叫“重排序缓冲区”。

面积越大越好。而M1在这里可以排630,Intel可以排224,AMD可以排256。M1比其他两款大一倍多。

接下来是执行的部分。工人执行指令越多,速度越快,就越不容易成为整体性能的瓶颈。在浮点运算这一当今对性能影响最直接的方面,M1、Intel、AMD都规划了一样多的资源,都类似于两个256位的执行单元。

当然,除了浮点运算,这个单元还负责运行整数运算。整数运算加浮点运算就是CPU的全部运算。暂存整数和浮点部分的单元,M1也更强,而且是354+384结构,而Intel是180+168,AMD是192+168。

所以虽然执行单元的执行是一样的,但是暂存部分(寄存器)更大,所以更有利于消除瓶颈。

执行部分完成了。在L2缓存上,M1规划了巨大的资源,每个核有3 MB L2缓存。这是处理器设计史上最大的一次。英特尔是65438+每核0.25 MB,AMD是每核0.5 MB。

二级缓存大,所以在预测会用到哪些指令的时候,可以提前做好准备,所以下一步要用的指令有很大几率会提前放进去。一旦使用,从缓存中获取它比从内存中获取要快得多。这和紧急救援队是来自楼下还是来自三个街区之外的差别一样大。

当然,来自三个街区以外也很重要。因为毕竟所有需要用到的东西都是先存到内存里,再搬到缓存里,再送到CPU。内存带宽大,也能消除瓶颈。

然而,M1有一种完全不同的内存方法。在M1中,那些内存你是碰不到的,因为它们是铺在CPU的铁盖下,与CPU融为一体的。而普通电脑的内存在哪里?离CPU大概5-10 cm,是一个可以一个一个插的内存条。记忆棒就是这么来的。M1最大的优势是降低延迟,从传统计算机的70 ns降低到45 ns。

内存带宽的差距更大。M1 Ultra可以达到800 GB/s,甚至M1 Pro和M1都有200 GB,而Intel和AMD只能有50 GB/s-60 GB/s左右..

所以在每秒有几十GB实时数据传输的高清视频剪辑任务中,苹果笔记本的处理效率是非常高的。所以今天只要经济情况允许,大部分video UP主肯定都是用苹果笔记本剪辑的。

是什么决定了CPU的性能?

其实CPU的性能好不好,不是靠某个环节就能达到的。因为计算过程是一个流水线,流水线上任何一点的瓶颈都决定了CPU的最大性能。M1的好处就是比传统CPU好,在任何一个环节都是堆砌出来的。

在一些典型图像渲染任务的处理上(Cinebench R23),全核功率的M1是7800点,而Intel的i9 12900K是13500点。虽然Intel的旗舰机CPU性能是M1的170%,但功耗是M1的650%。加在一起,同样性能下,M1架构的CPU只需要Intel的1/4-1/3的功耗。

所以M1架构的苹果笔记本可以不用电源适配器,续航绝对保证一整天。

目前这在传统处理器上越来越不可能。因为Intel和AMD都在竞争最高的性能,所以原本能耗可以接受的设计不可能从容不迫的来,最后一滴性能都要挤出来,有时甚至会以功耗翻倍来换取约10%的性能提升。

这就引出了另一个奇怪的事情。如果你买的是传统处理器的笔记本,插电和拔电性能会有30%-40%的差别。

因为在不插交流电源的情况下,如果系统仍然以最大性能运行,电池会很快耗尽,用户体验会太差。所以只有电池续航的时候,系统会强制CPU和GPU低频低压运行。这时候性能就大打折扣了。

苹果的CPU根本没有这样的设置,使用电池和电源时性能完全一样。

为什么苹果的CPU那么贵?

说到这里,我们一直在说2020年发布的M1。其实大家更关心的是3月8日晚发布的M1 Ultra。但是,理解M1对于理解M1 Ultra非常重要,因为:

M1=8个CPU + 8个GPU

m 1 Pro = 10 CPU+16 GPU

M1 Max=10个CPU + 32个GPU

M1 Ultra=20个CPU + 64个GPU

M1的晶体管数量为16亿,M1 Ultra的晶体管数量为114亿,是M1的7倍多,也是全球首款超过100亿晶体管的芯片。M1 Ultra是使用M1的基本框架构建的。

先说苹果的CPU为什么这么好。

首先,因为物有所值。这款CPU的成本比Intel和AMD贵几倍到十几倍。据业内分析,M1 Ultra的制造成本在350美元左右,而Intel、AMD的顶级CPU成本也不过几十美元。

苹果当然有技术优势,但是如果把单个CPU的成本限制在和Intel、AMD差不多的范围内,苹果也只能做到Intel、AMD的水平。

但是苹果为什么敢做这么贵的CPU?

原因是苹果不卖CPU,卖的是整机。

如果像英特尔、AMD那样靠卖CPU赚钱,光制造成本就要350美元。如果R&D成本为50美元/件,则总成本为400美元,售价至少为2000美元。如今CPU销量最大的机型价格一般在200-400美元之间。

所以Intel和AMD都不会规划这么豪华的架构。苹果敢这么做是因为只卖整机,而且价格很高,5000-8000美金一台。那么,把350美元的成本分摊到最关键的部件上就没问题了。

第二个原因是苹果可以进一步减少R&D的开支。

开发的M1架构可以连续堆叠,2倍、3倍、7倍,从移动终端到笔记本到台式机到一体机,所有平台通用。而一个基础产品如此大规模的使用,通过扩大规模可以转化为各种产品,也只有苹果能做到。因为苹果的每个产品都有超过1亿的用户,这些平台甚至操作系统都是统一的。

当然,苹果的CPU并不完美。

比如M1 Ultra,其实是牺牲了一些能耗上的优势,故意加大规模追赶英特尔最新的12代酷睿处理器。

再比如,相比M1,M1 Ultra的单核性能几乎没有提升。CPU的整个核心性能是M1的3.2倍,但实际的晶体管数量是M1的7.1倍。

另外,即使苹果电脑的GPU规格极高,也几乎不能用来玩游戏。这是游戏软件不支持造成的,是历史原因。

但是我们也可以预测Ultra是M1架构的最后一个版本。当苹果再次更新CPU时,其代号肯定会升级为M2,可能会出现在2022年9月的发布会上。