首页资讯科技 观察苹果有什么特点

观察苹果有什么特点

张平苹果在2020年作出的最重要举动就是推出了搭载自研M1芯片的全新系列笔记本电脑。相比英特尔的产品,苹果宣称这款名为M1的芯片拥有更为出色的效能和更低的电力消耗。随后的实测结果显示,苹果M1的确展示出了卓越的性能,甚至一度超越了英特尔的旗…

观察苹果有什么特点

张平

苹果在2020年最重要的举措是推出搭载自主研发的M1芯片的新系列笔记本电脑。与英特尔产品相比,苹果声称这款名为M1的芯片性能更好,功耗更低。随后的实测结果表明,苹果M1确实表现出色,甚至一度超过了英特尔的旗舰产品。那么,苹果是如何做到这一点的呢?这款SoC的设计有什么独特之处?

苹果是全球移动行业最有实力的公司之一,这也体现在它的产品上。虽然在每一次发布会上,苹果很少从技术层面介绍自己的SoC产品,但其强大的性能和高性能功耗比往往会在实际产品上市后给用户和业界带来震撼,甚至部分性能超过其他厂商同期发布的SoC的代容量。

M1发布后,各大媒体迅速测试了这款产品。测试数据显示,M1的CPU性能在包括CineBenchR23、GeekBench 5、GFXBench等各类测试中均取得了优异的成绩。在CineBench R23和GeekBench 5的单线程性能测试中,M1的CPU性能甚至可以与全新的Zen 3架构锐龙9 5950X和英特尔第11代酷睿系列处理器相媲美,甚至部分性能可以被超越。

那么,一个值得讨论的问题就出现了。为什么苹果M1的CPU性能这么优秀?真的超越了目前的顶级台式机产品吗?对于这些问题,本文试图通过一些讨论和数据来说明。需要提前说明的是,由于苹果缺乏产品细节和技术细节,本文部分内容具有探索性,可能与实际情况有所出入。建议你参考一下。

苹果M1:一款复杂SoC产品

首先要明确的是,苹果M1芯片不是单一的CPU或GPU,而是包含CPU、GPU、ISP、NPU、DSP、cache等众多单元模块的SoC产品。它使用TSMC的5纳米工艺,包含大约160亿个晶体管。

在相关组件方面,M1包括四个Firestrom高性能CPU核心和四个Icestrom低功耗CPU核心,以及一个8核心的大规模GPU(包括1024个EU单元),此外还有一个16核心的NPU单元和一个所有核心共享的系统级缓存。内存方面,支持双通道64bit LPDDR4X 2133内存,还拥有PCle总线控制器、lightning 4接口控制器等外接链路单元模块。

从M1的设计和规模来看,苹果的目标是在一个芯片上实现几乎所有的功能,同时实现性能和功耗的平衡。作为一款注重性能的产品,M1之前从未在其他厂商出现过。所以有必要深入了解一下苹果在M1的CPU部分做了什么,做对了什么,才能理解为什么M1的CPU部分会有如此优异的表现。但遗憾的是,苹果发布的信息远远不够。我们只能通过第三方的手段和报道来一窥M1这个划时代的产物。

太棒了:费尔斯特伦有大量的核心晶体

苹果从未发布任何关于产品的内部细节,尤其是芯片产品。因此,这部分分析将从第三方信息入手。可能与实际情况不同。

根据第三方媒体公布的M1的晶圆照片,面积最大的是GPU,占据了整个M1 lg%面积的%左右。接下来是4个FireStrom大核和12MB L2缓存,占据了芯片面积的13%左右。

考虑到整个M1 SoC有160亿个晶体管,假设晶体管密度均匀分布在整个SoC上。然后,在M1的GPU部分有大约30亿个晶体管。同样,M1 SoC的4个高性能CPU,12MB L2缓存,占用20亿个晶体管。

晶体管数量明确之后,我们就可以用它来对比目前主流的处理器了。例如,AMD之前宣布Zen 3架构每个CCD有41.5亿个晶体管,8个核心,总共约36MB缓存(12+13)。如果这个数据减半,比如4核18MB缓存,就要占用大约20.5亿个晶体管。对比M1 CPU的数据,AMD Zen3在缓存多6MB的情况下晶体管数量基本相同,也就是说苹果的M1 FireStrom核心每个核心使用的晶体管数量明显大于AMD Zen 3,也就是说M1的CPU架构大于Zen 3。

根据TSMC公布的一些数据,TSMC的7纳米工艺每平方毫米可以容纳大约9000万个晶体管。对于苹果来说,按照同样5nm工艺的A14芯片最终效果,TSMC 5nm工艺密度比7nm工艺密度高49%,每平方毫米1.34亿,每平方毫米约1.34亿个晶体管。考虑到1MBSRAM在6T的情况下约有5000万个晶体管,但实际使用中往往会用到8T或10T版本的SRAM,因此可以估算出,如果1MB SRAM使用7000万个晶体管,那么1MB SRAM的面积在7nm工艺下约为0.8平方毫米,在5nm工艺下约为0.5平方毫米。

有了以上数据,本文再次假设这些数据与AMD和苹果最终产品呈现的实际数据基本相当。

这样,如果Zen 3的每个核心去掉L2+L3缓存,就有大约(41.5-36x 0.7)/8 = 2亿个左右的晶体管,占用2.2平方毫米的核心面积。苹果M1公司的高性能内核每个内核有(20-12x 0.7)/4 = 2.9亿个晶体管,每个占用2.16平方毫米的内核面积。以此粗略计算,苹果高性能核心的每核晶体管数量比AMD的Zen3多了近1亿个。换句话说,苹果M1 Firestrom core的晶体管消耗大约是AMD Zen 3晶体管的1.5倍。当然,这个数据是一个估计,很有可能和实际情况相差很大。然而,苹果M1公司使用的Firestrom的核心是前所未有的,它一定不会跑掉。

这个结果很有意思。对于现代的CPU设计来说,它的基本设计理念和道路是非常清晰的。在目前的物理条件下,AMD、苹果,甚至Intel、ARM等厂商在CPU设计上,基本上是用同样的手段来获得最大的性能或性能功耗比,所以很难或基本不存在任何厂商有突破性的技术。市场上有各种独特的CPU产品,因为它们的目标、竞争优势范围和成本衡量存在巨大差异。当然,有些厂商还是有自己独特的优势。比如Intel在分支预测方面一直是独一无二的,但是总体来说,如果约束条件相等的话,这些厂商设计的处理器综合性能应该是基本一致的。唯一的突破是使用更多的晶体管来构建更大的架构。很明显,苹果以前是这样做的,现在也在继续这样做。

单从晶体管的数量来看,苹果M1公司的Firestrom内核强硬并非没有道理。肆无忌惮的堆积资源,不难也不难。那么,苹果把这些晶体管资源用在哪里了呢?

大就是好:来自苹果的8宽度CPU架构

苹果在CPU架构设计上有近十年的历史。苹果第一款定制SoC是2012年发布的A6,之后每年苹果都会推出全新的CPU微架构。早在2013年,苹果就推出了一款名为Cyclone的微架构,并宣称其为“桌面级”微架构,这也是业界历史上第一款在移动设备上实现64位计算的CPU架构。ARM和Android世界要赶上苹果的步伐还需要一年时间。最新的苹果处理器是2020年发布的iPhone 12系列手机的A14 SoC中使用的一个名为Firestrom的大核架构,与M1芯片使用的Firestrom架构基本一致。

出于同样的原因,苹果并不公布处理器架构的所有信息,所以外界一般无从得知苹果在CPU微架构方面做了什么。好在业内老牌科技网站anandtech通过深入测试和合理推测,给出了Firestrom的核心架构图。

根据anandtech的数据,苹果的Firestrom核心是8宽超宽、超标准、乱序核心。相比之下,X86处理器,如AMD Zen 3,每天只有4个宽度,英特尔的产品只有4+1个宽度。ARM最新生产的Cortex-X1相比其他ARM处理器有5个宽度,其余采用4个宽度。虽然三星M3有6个宽度,但其实际性能并不出色。

在乱序执行能力方面,从测试中可以看出,苹果的ROB单元允许的指令排序能力约为630个条目。虽然不能确定苹果是否在这部分采用了类似于其他处理器的设计,否则,如此巨大的容量说明苹果Firestrom拥有巨大的乱序执行排序能力和调度能力,当然这也对应着巨大的后端执行单元。相比之下,英特尔的Sunny Cove和Willow Cove的ROB容量只有352,是除Firestrom之外最大的处理器。AMD的Zen3只有256个条目,ARM的Cortex-X1只有224个条目。

再看后端,关于重命名寄存器的整数执行部分的容量估计有354个条目,这也是一个巨大的容量。此外,还有至少7个用于计算相应算术运算的执行端口,包括4个具有加法执行能力的alu,2个可以执行MUL的复杂计算单元,以及可能的特殊整数除法单元。

在浮点和向量部分,Firestrom带来了全新的第四执行流水线,进一步提升了浮点计算的理论性能。浮点重命名寄存器的容量约为384个条目,还包含4条128b.t的NEON浮点流水线另外,Firestrom还可以每周期执行4条FADD和4条FMUL,延迟分别为3和4个周期。这种巨大的浮点计算规模是AMD Zen 3的两倍,是英特尔和AMD之前架构的每周期吞吐量的四倍左右。

在负载存储方面,目前的测试显示Firestrom可能有四个执行端口,一个负载存储单元,一个专用存储单元和两个专用home单元。每个周期可以执行3个加载任务,每个周期最多可以执行2个存储,但同时最多只能执行2个加载和2个存储。

就TLB而言,L1·TLB从1 28页增加到256页,L2·TLB从2048页增加到3072页。由于每个TLB的页面大小为16KB,所以3072的TLB可以覆盖48MB的缓存,这实际上超过了目前M1 SoC或者之前A14的缓存容量。因此,如何实现这部分设计还需要进一步探索。

最后,看看缓存架构。在之前关于A13设计的猜测中,苹果设计了128KB的L1指令缓存和L1数据缓存,这从处理器设计的角度来看是不可思议的,因为一般处理器的L1缓存不会超过32KB(新Sunny Cove是48KB),甚至有的处理器只用16KB。当然,更大的高速缓存可以显著帮助处理器核心快速获得指令,但成本和晶体管数量非常高。在新的Firestrom上,也许这个容量进一步增加到了192KB,这可以解释为什么苹果的处理器在高指令压力工作负载下表现良好。

在缓存速度方面,Firestrom的L1数据缓存可以延迟3个周期加载,这对于如此庞大的缓存架构来说是非常难得的数据。相比之下,英特尔Sunny Cove提升到48KB只需要5个周期加载,而AMD的32 KB L1缓存需要4个周期,这与苹果的设计还是有区别的。L2方面,苹果一直直接选择更大更快的L2缓存设计,比如两个核心共享8MB缓存。在早期的A14芯片上,L2的延迟是16个周期。

此外,值得注意的是,苹果在M1设计中还设计了一个SLC缓存,它位于整个芯片的中央部分。考虑到M1的内存带宽较小,这个SLC缓存可以用来临时存储一些数据信息,作为整个M1芯片的缓存。不过,苹果并没有公布SLC的使用情况和容量。有测试显示,SLC的缓存容量可能是32MB,延迟可能是40ns。如果这个数据是真的,那么M1 SoC在缓存设计上应该有更多可供挖掘的信息。

最后,讨论了Firestrom体系结构的时钟频率。一般认为Firestrom这种比较宽泛的架构频率很难达到比较高的水平。但是在苹果的A14上,Firestrom的频率最高可以达到3GHz,而当启用两个Firestrom内核时,频率会降低到2.89GHz,在M1处理器厂商,Firestrom可以达到的最高频率是3.2GHz,并没有太大的提升。

总的来说,苹果在A14和M1处理器上实现了宽度高达8的超大核,以及丰富的缓存和执行资源。这也是前面提到的Firestrom内核中的晶体管数量可能远高于包括Zen 3、Sunny Cove、Zen 2在内的架构中的晶体管数量的原因。从苹果在架构上的努力来看,苹果致力于“频率和规模不足”,更低的频率可以带来更低的功耗和极高的性能/功耗比。这也是苹果一贯的运营策略。

苹果M1 Firestrom的设计中,采用了多达8个解码的前端,那么为什么X86处理器很难做到这一点呢?其实这个问题很可能是CISC指令集固有的弊病造成的,现在很难解决。

对于Firestrom架构,采用RISC精简指令集,所有指令长度相等。因此,整个指令序列可以按照一定的等长规则进行分割,然后送到解码器进行解码,这样就可以并发发出多条指令。然而,这对于复杂的CISC指令集来说是非常困难的。X86使用的CISC指令集长度不等,由于在读取前一条指令之前不知道后一条指令头的位置,所以很难并行解码。当然,现代X86 CPU往往通过各种手段规避CSIC指令集的不等长缺陷,比如通过经验猜测指令的结尾,或者将指令所有可能的起点解码一次,完全错误的部分丢弃。由于CSIC指令集不对等的问题,X86目前能做到4译码器或者4+1译码器已经是极限了。不仅如此,这种长度不等的复杂指令还会影响CPU对sum的乱序执行。由于长度不等和不可预测性,乱序执行变得非常困难。有鉴于此,在现代的X86 CPU中,所有的CSIC指令集都会被翻译成uOP,即“微指令”或“微操作”,CPU的内部进程通过正则微码统一起来。也正是因为有了uOP,X86处理器才能在效率和性能上赶上RISC架构。

当然,CISC也不是没有优势,就是一条指令可以执行更多的运算,整体效率比较高,占用内存也比较少。RISC需要多条指令才能完成的任务,CSIC可以完成,这是CSIC相对RISC的优势。

统一内存架构的实现:苹果的新创新

上面我们提到了苹果CPU设计的一些独特之处。在这一部分,我们将从宏观的角度来审视苹果M1处理器的设计。

如前所述,苹果M1处理器包含大量不同的单元。除了CPU,GPU,NPU等等,最重要的是统一的内存架构。

在M1处理器中,CPU、GPU、NPU和所有单元都使用接近芯片的统一内存架构。这种架构的优点是CPU和GPU可以互相访问数据,可以大大减少数据处理和复制的时间,也减少了不同处理模块之间数据准备的等待时间。M1首次在硬件和软件上统一,从而完成了迄今为止第一个真正进入商用和民用市场的统一内存架构。

对于传统PC来说,CPU的数据存储在内存中,GPU的数据存储在本地内存(显存)中。当GPU需要做一些事情,或者CPU需要让GPU做一些事情的时候,数据就会通过总线从内存复制到GPU的显存。这个复制过程带来了明显的延迟和功耗。另一方面,计算完成后,GPU需要把数据放到CPU的内存中,然后告诉CPU数据的位置。这个过程也有延迟和功耗增加。但是,也有一些技术允许CPU读取GPU显存中的数据,或者反过来,GPU可以访问CPU的数据。但由于兼容性、各厂商间的协调、操作系统、软件适配、软件生态等问题,这样的技术并不成熟。

在M1上,由于CPU、GPU、NPU等计算核心,包括操作系统和软件,都来自苹果本身,这样的问题可以在一个系统下协调。最后,我们看到的是一个完整的基于统一内存架构的SoC-M1。M1的所有硬件模块都有统一的内存地址,因此数据不需要额外的传输,大大提高了整个系统的效率。

此外,在存储器的部署上,M1芯片采用了目前移动SoC普遍采用的“层叠封装”方式,即存储芯片要尽可能靠近应用处理器,尽可能缩小两者之间的距离。这样做的好处是,一方面尽可能减少内存转移的能耗,另一方面可以减少内存转移的延迟。M1的理论内存带宽为68.2 GB/s,从这个数据来看,明显低于AMD Zen 2、Intel十代酷睿等主流桌面设备。比如AMD Zen 2的内存带宽可以达到100 GB/s以上,不过考虑到苹果统一的内存架构、内存POP封装以及自家处理器超大缓存的设计,整体性能还是很出色的。

异构计算:专业的人做专业的事。

作为一个拥有160亿个晶体管的巨型SoC,M1包含了许多复杂的功能模块。除了上面分析的CPU,还包括用于3D图像计算的GPU、用于神经网络计算的NPU、视频编解码器、音频处理单元、HDR视频处理单元、HDR图像处理单元、常开处理器、矩阵协处理器等。在M1的设计中,苹果贯彻了用专业单元代替通用单元的理念,“让专业的人做专业的事”,这样会让性能更高效。

在苹果对M1相关产品的宣传中,有一段特别介绍了M1在视频处理和计算方面的优势。事实上,由于苹果在M1专门设置了HDR视频处理单元和视频编解码单元,在被操作系统和专业软件调用后,可以轻松发挥这些专用单元的性能,从而获得优异的性能。另外值得一提的是苹果的矩阵协处理器,可以用来进行一些常规的代码加速,而不是专门调用GPU或者NPU。换句话说,苹果通过这种设置带来了出色的性能功耗比。

M1使用大量的专用单元进行定向加速,这在业内通常被归类并被称为异构计算。一般来说,异构计算是指具有不同类型计算能力和优势的模块在统一调度下进行计算的方式。对于M1来说,苹果的软件和M1的硬件,以及其他相关软件,已经为消费者实现了业界迄今为止最好的异构计算架构。

然而,尽管M1在异构计算方面做得非常好,但异构计算仍然存在一个致命的问题,即由于硬件的固定计算路径,如果未来升级算法和应用程序,相关的异构计算单元可能无法运行。考虑到苹果既控制操作系统,又控制软件开发环境,这样的问题短时间内可能不会出现,但还需要进一步观察。

开辟一条全新的道路?

至此,本文对M1处理器的分析基本告一段落。从M1处理器的设计来看,依靠5nm的强大优势,苹果通过整合高达160亿晶体管资源、超大CPU内核、大量专用模块和缓存设计,在低功耗下实现了与现有高端X86处理器不相上下的性能,在一些测试中甚至有所超越。这是一个非常了不起的成就,凸显了苹果强大的软硬件技术实力。

从M1和苹果在软件和系统方面的努力来看,苹果似乎正在开辟一条全新的道路,挑战X86在个人电脑领域的领先地位。RISC阵营之前也曾挑战过X86在PC上的领先地位,但显然失败了。苹果从移动计算开始。现在,它通过统一移动和桌面的架构,模糊了移动设备和个人电脑的界限,通过像M1这样性能卓越、功能强大的产品来吸引消费者的注意力。这不得不说是一招。从技术上看,M1充分发挥了RISC CPU架构的优势,苹果投入了大量的晶体管资源,统一的内存架构,异构计算,不同功能的定制计算单元,全新的操作系统和软件生态,都给人带来耳目一新的感觉。接下来,苹果会怎么走?是更强大的M2、M3还是更紧密的生态系统?还是进一步统一移动端和桌面端?这让人很期待。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/61669.html
上一篇锐龙产品线
下一篇 固态电池发展前景
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部