电脑装配网

iPhone 6s/6s Plus评测: CPU/Twister架构

 人阅读 | 作者pangding | 时间:2024-02-24 15:54

A9 中最新一代 ARMv8 AArch64 CPU 核心——Twister 可谓是最重要的。随着 Cyclone 架构的推出,在 ARM CPU 开发方面苹果公司可以说走在了前头,而明年他们将会面临 ARM 的 Cortex-A72 和高通的 Kryo 挑战,因此如果苹果想要继续保持他们相对于其他 ARM 厂商的优势,那么他们在 CPU 性能方面就必须再进一步。

自去年的 A8 起苹果公司就采用了 Typhoon CPU 核心。虽然 Typhoon CPU 并不是为“s”代 iPhone 使用的,但是苹果仍然想尽办法,整合基本的架构优化,让它优于 Cyclone。这一点很重要,因为 Typhoon 在手机中的频率只能达到 1.4GHz——可能是因为使用 20 纳米制程造成的限制——所以苹果公司需要他们的 CPU 架构能够赢得上风。

不过在 iPhone 6s 上,一方面这是“s”升级,所以架构方面的期待更高,另一方面则是 FinFET 制程带来的优势和 Twister 在苹果两年周期循环中的位置,所以苹果必须有两方面的提升:一是时钟速度的提升,一是更实质性的架构完善。

其实在时钟频率提升方面,这是自 A6 Swift 以来提升最大的一次。在 A6 中苹果从 800MHz ARM Cortex-A9 提升到 1.3GHz,而和 Typhoon A8 相比,在 Twister A9 中苹果有 450MHz(32.1%)的提升,这将会带来巨大的性能提升,特别是与目前频率已经达到 2GHz+ 的相比。另外从能耗的角度来说,它的提升幅度也不能更高。

在 CPU 设计中苹果公司对时钟频率的设定非常保守,一般高时钟频率都会导致能耗更大,所以这样的提升其实已经是不错的了。从使用的制造工艺来看,苹果公司可能会对他们的 FinFET 部门有更多投资。苹果这样的投资意义重大(架构提升变得越来越难),但是同时目前苹果已经达到性能曲线边缘,我想未来或许很难再出现单代时钟频率有 25%+ 的情况。

对于 Twister 架构来说,这里面还有更大的文章。对于苹果来说,和 Cyclone-Typhoon 过渡相比,Typhoon-Twister 才是一次更大的架构性升级,但是却不如 Swift-Cyclone 的升级。苹果的架构,我找不到更合适的词语来形容,现阶段是“稳定的”,也就是说苹果还有很大的设计优化空间,无需从头再来。

恕我直言,现在我们只是理解了架构的皮毛而已。苹果也很少谈及 CPU 架构,不过最终苹果还是没法隐藏关于 SoC 的所有东西,但是 Twister 大概也不会有像 Cyclone 那样的公开度了。所以就让我们来“浅尝”一下 Twister,还有 CPU 设计的某些东西吧。

在执行宽度和重排序深度方面,我们发现 Twister 和上一代相比没有变化。虽然对于 64 位 ARMv8 设计来说 6 条微指令的设计并不常见,不过苹果不会很快改变这种设计,至于 OoO 重新排序深度,目前的发现是深度越深其消耗的能量越多,这方面也是苹果想要尽可能控制的。

FP/NEON单元、整数单元还有载入/存储单元的数量自 Typhoon 起就没有变化,不过这些 ALU 的性能都已经有所变化,包括整数和浮点工作负载都是如此。Twister 的 FP32 加法还是每周期 3 个,但是延迟已经从 4 个周期缩短到了 3 个,再结合频率提升就相当于实时延迟从 2.9 纳秒缩短到了 1.6 纳秒。其实 FP32 乘法延迟也缩短,从 5 个周期变为 4 个周期,因此有能力每周期执行三个 FP 乘法,因此浮点密集型负载的表现将会大大提高。

整数方面变化并不大。整数加法和乘法的吞吐量和延迟还是没有变化。但是移位器则有了提升。4 个整数通道现在都可以移位,和 Typhoon 相比增加了2个。移位器是一种非常重要的ALU资源,但是和基本的算法操作不同,在用时它并不明显。所以说虽然这种变化会带来好处,但是我们很难预测这种好处会出现在哪里。

接下来我们来看看 Twister 的缓存,虽然 L1 缓存的大小自 Typhoon 起就没有变化过,不过 L2 和 L3 的缓存则有了增加,特别是 L2 已经从 Typhoon 的 1MB 增加的 Twister 的 3MB。缓存增加意味着苹果可以在使用 L3 之前,在更靠近 Twister 核心的位置存储更多数据和指令,但是这也会导致缓存访问时间变长。

L3 缓存的大小则从 4MB 增加到 8MB,要提醒大家的是,这个缓存是 CPU 和 GPU 共享的,所以这个缓存的增加有利于两者。不过苹果的缓存设计有个特点,下一级会完全复制一份上一级的数据,也就是说苹果首先需要给 L3 缓存增加 2MB 以抵消较大的 L2 缓存,所以实际有效的 L3 缓存容量其实是 6MB。但是在晶体管密度没有一个完整的生产节点增加的情况下,苹果能够增加 6MB 缓存也是不错了。

延迟和传输大小方面,值得指出的是 A9 再次提升了苹果的缓存延迟。虽然时钟速度增加对缩短缓存访问时间没有帮助,但是相比 A8 实时缓存延迟减少了很多。从这两个方面来说,缓存访问时间比 A8 缩短了 30-40%,A8 耗尽了二级缓存,A9却可以维持稳定。

不过L3缓存和DRAM之间的界限变得更加模糊,我们可以看到和A8上的4MB缓存相比,8MB 的缓存延迟跳的更快,但是因为实际可用的缓存只有6MB,所以最可能的解释就是,A9上的缓存压力比A8上的高,所以我们的测试难以捕捉到 A8 L3 的所有变化。

此外还有 LPDDR4 DRAM,对于苹果 SoC 来说这是个新东西。LPDDR4 的设计是为了进一步减少 DRAM 运行电压,从 1.2v 减少到 1.1v,同时增加可用的总带宽。不过 LPDDR4 的内部频率和 LPDDR3 的相比并没有变化,所以 LPDDR4 的延迟和有着同样内部频率的 LPDDR3 的应该是一样的。

A9 使用的是 2GB LPDDR4-3200,而 A8 使用的是 LPDDR3-1600,所以有效带宽是以前的两倍。而实际的内存带宽增加可能没有这么高——一部分是因为内存延迟还没有真正变化——但是在内存带宽方面 LPDDR4 确实带来了代际之间的增加。

看看 GeekBench 3 的综合内存跑分,所有 4 项测试中我们可以看到有不小的提升。可测带宽的总体增加幅度在 53%-81% 之间,而 Triad 子测试则显示为80%。因为这些测试需要连续内存访问,所以 LPDDR4 带来的 CPU 性能增加就不会那么明显。另一方面这也是 GPU 常见的运行方式,因此苹果还需要进一步满足GPU的需求。

在高水平跑分测试中,首先我们来看看 SPECint2000,它是 SPEC CPU2000 跑分的重要组成部分。SPEC CPU2000 诞生于本世纪初,主要用于测试 PC 处理器,但是随着移动处理器的发展壮大,性能已经快赶上了桌面处理器,所以 SPEC CPU2000 现在也非常适合用于测试 Typhoon 和 Twister。但是因为 SPEC CPU2006 并不适合 A9 上的 RAM,所以只能选择 SPECint2000。

总的来说,SPEC 分数一路飙升,最低的增幅为 24%,最高的 mcf 为120%,其中的在 60% 左右。即便排除 450MHz(31%)的频率之差,A9 依然能普遍提升 40% 左右,平均约为 30%。

作为对比,A8 相比于 A7 即便算上 100MHz 的频率提升,性能平均提升幅度也不过大约 20%。

接下来转向 Geekbencfh 3,它和 SPECint2000 不同,是关于整数和浮点工作负载的。

和 SPEC 相比,Geekbench 的各项测试又不一样,特别是我们将时钟速度增加的因素考虑在内时。A9 的 CPU AES 性能和 A8 相比,即使时钟速度增加,但是其增加的幅度出乎意料的小。另外在其他测试中我们也可以看到时钟速度增加带来的性能提升并不大,而从架构层面来说性能提升的幅度却很大。也就是说,在实际使用中并非所有情况下都能受益于 A9/Twister。

Geekbench 跑分中浮点性能的变化则没有那么大的起伏,增加幅度最大的 44%,最多超过 70%,排除频率之差后依然没有个位数,这与之前对 FP32 浮点设计变化的分析也是相符的。

总的来说,Twister 和 LPDDR4 的影响将会在系统性能上体现出来。A9 和 Twister 对于 CPU 性能来说是非常有效的更新,不管是架构层面还是时钟速度层面都带来巨大的性能提升。因此 A9 的各种表现才会优于 A8。虽然 Twister 不是 Cyclone,但是苹果在某些方面取得的进步和两年前是一样的。A8 和 Typhoon 已经为行业设定了一个很高的标准,A9 和 Twister 则让这场追逐苹果的游戏的难度进一步增加。

至此我们不仅需要关注谁在追赶苹果,同时还需要关注苹果在追赶谁。随着新一轮架构完善,以及快接近 2GHz 频率的出现,如今将苹果 CPU 设计和英特尔的相比也没有那么荒谬了。等到 iPad Pro 上市时,我们就可以对比一下平板,届时或许也应该对比一下 Twister 和 Skylake 了。


文章标签:

本文链接:『转载请注明出处』