苹果a9和a11性能差距,苹果a10和a9差距

首页 > 经验 > 作者:YD1662022-10-31 12:40:13

苹果公司将其“ Cyclone”设计称为“桌面级架构”,事后看来,这可能对公司的发展方向有一个明显的指示。在接下来的几代中,苹果已经以惊人的速度发展了他们定制的CPU微架构,每一代都取得了巨大的性能提升,这些我们已经在过去的几年里广泛报道过:

苹果a9和a11性能差距,苹果a10和a9差距(9)

今年的A14芯片包括了苹果64位微体系结构家族中的第8代芯片,这是从A7和Cyclone设计开始的。这些年来,苹果的设计节奏似乎已经稳定下来,围绕着主要的双代微架构更新,从A7芯片组开始,A9、A11、A13都大幅增加了设计的复杂性和微架构的宽度和深度。

考虑到苹果没有透露任何细节,苹果的CPU在很大程度上仍然是一个黑匣子设计,而且关于此事的唯一公开资源可以追溯到A7旋风时代的LLVM补丁,这与今天的设计已经不再相关。虽然我们没有官方的手段和信息来说明苹果的CPU是如何工作的,但这并不意味着我们无法弄清楚设计的某些方面。然而,通过我们自己的内部测试以及第三方微基准测试(这是@Veedrac的微体系结构测试套件的一项特殊学分),我们可以公布苹果设计的一些细节。以下披露是基于测试iPhone 12 Pro中最新的Apple A14 SoC的行为得出的:

苹果的Firestorm CPU核心:更大更大

苹果最新一代A14内部的大核心CPU设计代号为“Firestorm”,延续了去年苹果A13内部的“Lightning”微架构。今天讨论的核心是新的Firestorm核心和它多年来不断改进的血统,这也是苹果如何从英特尔x86设计大幅跳跃到他们自己内部的SoC的关键部分。

苹果a9和a11性能差距,苹果a10和a9差距(10)

上图是苹果最新大核心设计的估计功能布局–这里表示的是我尽最大努力确定新设计的功能,但是仍然不能详尽地深入研究苹果设计必须提供的所有内容–因此,可能会出现一些错误。

与业内其他设计相比,真正定义苹果的Firestorm CPU核心的是其微架构的宽度。具有8-wide解码块,苹果的Firestorm是目前行业中最广泛的商业化设计。IBM即将在POWER10中推出的P10内核是唯一一个有望在市场上发布的具有如此宽解码器设计的官方设计,此前三星取消了他们自己的M6内核,后者也被描述为具有如此宽的设计。

今天的其他现代设计,例如AMD的Zen(1至3)和英特尔的µarch,x86 CPU仍仅采用4-wide解码器设计,由于ISA固有的可变指令长度特性,目前似乎无法将其扩展到更大的范围,与ARM ISA的固定长度指令相比,设计能够处理体系结构方面的解码器更加困难。在ARM方面,三星的设计从M3开始已经达到了6-wide,而Arm自己的Cortex内核随着每一代的发展都在稳步扩大,目前在现有的硅片中达到4-wide,并且预计会增加到即将推出的Cortex-X1内核具有5-wide设计。

苹果的微架构是8-wide实际上对新的A14来说并不新鲜。回到A13,似乎我在测试中犯了一个错误,因为我最初认为它是一台 7-wide机器。最近我对它进行了重新测试,证实苹果正是在这一代升级了A11和12的7-wide解码。

苹果a9和a11性能差距,苹果a10和a9差距(11)

苹果公司最近的设计中,有一个方面我们从来没有真正能够具体回答,那就是他们的无序执行能力有多深。我们在此问题上获得的最后官方资源是2013 Cyclone设计中ROB(重排序缓冲区)的192数字。再次感谢Veedrac实施的测试似乎暴露了µarch的这一部分,我们似乎可以确认Firestorm的ROB在630指令范围之内,这是对去年的A13 Lightning内核(在560中测得)的升级。目前还不清楚这是否与其他架构中的传统ROB相同,但测试至少暴露了与ROB相关的微架构限制,并暴露了行业中其他设计的正确数据。无序窗口是指当内核试图获取并执行每条指令的依赖关系时,内核可以“停放”的、等待执行的指令数量。

对于苹果的新核心来说,A -630 deep ROB是一个巨大的无序窗口,因为它远远超过了业内其他设计。英特尔的Sunny Cove和Willow Cove型内核是第二大“深”OOO设计,拥有352个ROB型架构,AMD最新的Zen3型内核有256个条目,最近的Arm设计如Cortex-X1有224个架构。

与业内其他设计师相比,苹果是如何以及为什么能够实现如此不成比例的设计还不清楚,但这似乎是苹果实现高指令水平并行的设计理念和方法的一个关键特征。

很多很多的执行单位

拥有高ILP也意味着这些指令需要由机器并行执行,这里我们还可以看到苹果的后端执行引擎具有非常广泛的功能。在整数方面,我们估计其在运行中的指令和重命名物理寄存器文件的容量大约为354个条目,我们找到了至少7个用于实际算术操作的执行端口。其中包括4个简单的算术逻辑单元能够加法指令,2个复杂的单元也具有MUL(乘法)功能,以及一个似乎是专用的整数除法单元。核心每个周期可以处理2个分支,我想这是由一个或两个专用的分支转发端口实现的,但我无法100%确认这里的设计布局。

这里的Firestorm核心在整型设计方面似乎没有重大变化,因为唯一值得注意的变化是该单元的整型除法延迟明显略有增加(是的)。

在浮点和矢量执行方面,新的Firestorm内核实际上更令人印象深刻,因为苹果增加了第四个执行管道,使其功能增加了33%。在这里,FP重命名寄存器似乎有384个条目,这也是相当庞大的。因此,这四个128位的NEON管道在理论上可以与AMD和Intel的桌面内核的当前吞吐量相匹配,尽管它们的吞吐量更小。这里的端点操作吞吐量与管道计数是1:1,这意味着Firestorm可以每循环执行4个FADD和4个FMUL,分别有3个和4个周期延迟。这是英特尔CPU和之前AMD CPU的四倍,也是最近的Zen3的两倍,当然,仍然在较低的频率运行。这可能是苹果在浏览器基准测试中表现如此出色的原因之一(JavaScript数字是浮点双精度数)。

这四个管道的向量能力似乎是相同的,唯一看到吞吐量较低的指令是在四个管道之一上的FP除法,倒数和平方根运算仅具有1的吞吐量。

苹果a9和a11性能差距,苹果a10和a9差距(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.