数据缓存固定在 64 KB,并且是 4 路关联的。延迟保持在四个周期。64 KB 的 L1 指令缓存可以读取不超过 32 字节/周期,这也同样适用两个方向上的 L1 数据缓存。L1 是一个回写缓存。L2 缓存可配置为 256 或 512 KB大小,并在到数据端 DSU 的 L3 缓存上有相同的 2×32 字节/周期的读写接口。对于飞行中的加载和存储操作(在 A76 中分别为 68 和 72),窗口最多可增大 25%,从而在存储面上实现更多的平行性。如果现在让两个存储数据流水线拥有专用的执行端口(以前与运算器共享),那么加载和存储操作的带宽可以增加一倍。如图中所示,用于地址生成的两个 µOps 和用于数据存储的两个 µOps 可以并行处理。为保持能效已将指令队列标准化。
与 A76 相比,A77 获得了一个再次优化的数据预取器,其新引擎的精度更高,也可以在更大的最大地址距离内工作,能够在 DRAM 中有更高的带宽利用率。这意味着预取器可以在比以前更大的虚拟地址空间上识别重复访问模式。
与系统相关的预取意味着改进对不同存储子系统操作、不同延迟的动态距离以及基于 DynamIQ L3 利用率动态调整攻击性的容忍度。
Arm 通常承诺将整数指令的 IPC(每个周期的指令)提高 23%,浮点/向量操作的提高 35%。后者令人惊讶,因为 Arm 让后端浮点流水线与 A76 保持不变。我能想到的唯一解释是,SPECInt FP 比整数对应物的内存密集得多,因此在这里进行了存储系统的改进。
总之,A77 比 GeekBench4 的基准性能高出近 20%,在 LMBENCH(读写工具)上也多出近 20%。
结论
与它的前辈 Cortex-A76 相比,Arm 在不影响能效的前提下,再次凭借 Cortex-A77 获得了超过 20% 的计算能力。当这些数字参照的是相同的生产过程和相同的周期时,这就更明显了。因为摩尔定律在今年无法提供帮助,在未来,新的生产过程将不再产生原来所习惯的收缩几何形状,您将不得不对此进行调整,而不是对每一代新的 CPU 优化 IPC 和绝对功耗。对于减轻 CPU 的这种特定工作负载来说,用于人工智能应用的 GPU 或 NPU 等协同处理器正变得越来越重要。
通过它的 ML 处理器,Arm 转移了 2018 年的能效假设。现在应该等于 TOP/W 而不是 3 TOP/W。今天,85% 的人工智能工作负载仍然在 CPU 或 CPU/GPU 上运行 — 因为缺少替代方案。简单的用例,如关键字的识别(例如»你好,Siri«,大约需要 400 MOP/s),仍然可以在 CPU 上很好地运行,但是基于人脸识别的设备解锁需要约 30 GOP/s — ML 处理器大约负载 85%。
最终的结论是,不同的应用需要不同的硬件 — CPU、GPU 和 NPU。Arms NN 框架在这里提供了最佳支持,甚至可以连接第三方的外部 IP。