AMD逆袭的新武器:Zen 2核心详解

时间:2019-07-16 来源: 历史
e世博官方网站

资料来源:本文摘自公共部门半导体行业观察(ID:icbank),来自“wikichip”,作者David Schor,谢谢。

RVmNVKZ1hOwc9X

在过去的一个月里,AMD发布了一些公告。 AMD正准备推出他们的第三代Ryzen桌面处理器。这些处理器将使用AMD最新的微体系结构Zen 2构建,采用台积电领先的7nm工艺。

我们来看看核心微体系结构的改进。

禅2

新芯片的核心是Zen 2.该核心将用于AMD的移动APU,高性能台式机处理器和数据中心芯片。

Zen 2是Zen之后的下一个主要微体系结构。随着Zen 2的推出,AMD致力于分别基于Cinebench 1T和Spec2006进行13-15%的IPC改进。要了解它们如何从IPC中获益,我们需要仔细研究底层微体系结构的变化。

RVmNVLBCYtKzQm

前端

前端的很大一部分已经过重新设计。在没有识别分支的典型情况下,从下一个64B块的地址开始从第一级高速缓存中取出指令。 Zen最初提供了64 KiB L1缓存。它由4组256套组成。 Zen 2对L1做出了重大改变。相关性已更改为64种方式的8种方式,缓存大小减半至32 KiB。如果没有AMD的更多细节,很难描述其他变化,更高的相关性也应该降低未命中率。 AMD指出,通过减小指令缓存的大小并使用该区域添加一些其他组件,尤其是BPU和OC,他们可以从每单位面积的硅获得更好的性能。顺便说一句,从组织的角度来看,Zen 2现在与英特尔的Skylake和Sunny Cove相同。值得注意的是,一级指令高速缓存转换后备缓冲区保持不变。它仍然是一个完全关联的64入口深度缓冲区,能够存储4 KiB,2 MIB和1 GiB页面。

高速缓存行保存64个字节,每个周期可以获取32个字节。在不太可能发生高速缓存未命中的情况下,L1将为包含未命中地址的线生成填充请求。每个周期最多32个字节可以从共享L2传输到指令高速缓存。

RVmNVLSFPguyQV

除了提取生成的填充请求之外,分支预测器和预取器还可以发出其他请求。这很重要,因为预取器可以利用空间局部性来避免暂停。这是AMD花费了大量精力进行改进的另一个领域。

RVmNVLmAW1awxy

最好的预测者会获胜吗?

分支预测单元的目标是预测条件分支的下一个地址。换句话说,猜猜它是否被占用。这里的基本思想是猜测指令流的路径,而不是通过停止管道来浪费循环,直到最终知道路径。但是,必须明智地做到这一点,因为糟糕的预测会直接导致浪费工作。当分支发生时,它被存储在分支目标缓冲区中,以便可以更容易地确定和采用(或不采用)后续分支。现代微处理器如Zen存储分支之间的相关性,不仅存储最后一个分支的历史,而且存储最后几个分支的历史,以便提取分支之间的相关性(例如,如果先前采用)分支,也可以使用下一个分支,进一步实现这一目标。

RVmNVMD2oWwElT

Zen上的BTB是一个三级缓存。每个缓存都具有更高的容量,但代价是延迟更长。 Zen 2保持相同的结构,但是BTB的第二和第三级别的条目数量几乎翻了一番,分别从256和4K增加到512和7K条目。

顺便提一下,在Zen中,第一级(L0)BTB中的查找是零延迟查找,而L1和L2 BTB中的后续表查找分别导致一次和四次冒泡。尚不清楚Zen 2是否改变了这些成本。

Zen使用称为哈希传感器的动态预测器。使用人工智能的炒作,营销人员喜欢称之为神经网络预测器。感知器是最简单的机器学习形式,感知器本身比其他机器学习算法更容易实现硬件。它们通常比gshare这样的预测器更准确,但它们的实现确实更复杂。 Zen的实际实现尚不清楚,但我们至少可以描述一个简单的实现是什么样的。当处理器遇到条件分支时,其地址用于从感知器表中获取感知器。对我们来说,感知器只不过是一个重量矢量。这些权重表示历史分支和预测分支的结果之间的相关性。例如,考虑以下三种模式:“TTN”,“NTN”和“NNN”。如果所有三种模式导致下一个分支未被使用,那么也许我们可以说前两个分支之间没有相关性并且为它们分配一个小权重。前一个分支的结果取自全局历史记录寄存器。寄存器中的每个位用作输入。输出值是计算的权重和先前的分支历史记录的点积。在这种情况下,负输出可能意味着“未采取”,其他值可能被预测为“采取”。值得一提的是,分支历史之外的其他输入也可用于推断相关性,但不知道现实世界的实现是否利用了这一想法。 Zen的实现可能要复杂得多,可能会采用不同类型的历史。不过,它的工作方式相同。

RVmNVY85WPHQdG

考虑到Zen管道的长度和宽度,错误的预测可能会导致刷新超过100个插槽。这直接导致性能下降。 Zen 2保留了哈希感知器预测器,但增加了新TAGE预测器的第二层。这个预测器最初由Andre Seznec于2006年提出,是对Michaud的PPM类预测器的改进。 TAGE预测器在之前的分支预测(CBP)比赛(2006-2016)中赢得了所有四个冠军。 TAGE背后的想法是程序的不同分支需要不同的历史长度。换句话说,对于一些分支机构来说,非常小的历史最好。例如,1位预测器:如果之前已使用过分支,则将再次使用它。不同的分支可能取决于先前的分支,因此需要更长的历史来完全预测是否将采用它。标记几何历史长度(TAGE)预测器由多个全局历史表组成,这些表使用不同长度的全局历史记录寄存器索引来涵盖所有这些情况。寄存器使用的长度形成几何级数,因此得名。

RVmNVYjA3fxjLb

使用TAGE预测器的想法是它试图找出哪个分支具有哪个分支的最佳历史,并且在较短的分支上获取最长的历史。

RVmNVZ5CLRewXk

这种多预测器方案类似于分支目标缓冲区的分层。第一级预测器是用于快速查找的感知器(例如,单周期分辨率)。第二级TAGE预测器是一个复杂的预测器,需要很多周期才能完成,因此必须在简单的预测器之上进行分层。换句话说,L2预测器较慢,但更好,因此用于对更快和更不准确的预测器的结果进行双重检查。如果L2预测器与L1预测器不同,则当TAGE预测器覆盖感知器预测器时,发生少量刷新,提取返回并使用L2预测,因为L2预测器被认为是更准确的预测。

AMD没有透露超过TAGE预测因子。值得指出的是,至少在字面上,TAGE预测器不再被认为是最佳预测器。之后,Seznec改进了TAGE预测器,添加了统计校正器(TAGE-SC),后来又增加了一个循环预测器(TAGE-SC-L)。替代方案包括BATAGE预测器。尽管如此,我们得出的结论是,有更多机会找到更好的分支预测因子,这是一个非常活跃的研究领域。

AMD表示,新的分支预测单元的假预测率目标比之前的感知器低30%。因为现代微处理器的精度高达90%。与Zen中的实现相比,虚假预测率的显着降低直接转化为更高的IPC。事实上,如此大的改进可以单独占Zen 2声称的性能提升的很大一部分。

RVmNVZSFDN2XxX

改变现状

我们注意到有关AMD芯片生成的一件事是现状的变化。从历史上看,英特尔在设计最先进和最高性能的预测器方面投入了大量资金。另一方面,AMD倾向于落后于更“准备好”的预测因素。随着禅的成功,禅2的情况发生了变化。虽然AMD在触手可及的情况下取得了所有成果,但他们现在直接面向英特尔,而英特尔始终拥有无可争议的领先优势。换句话说,AMD似乎对他们当前的核心设计充满信心,并且可以释放更多资源来解决轻微的缺陷。

OC模式改进

Like Zen, Zen 2 has two main modes of operation: IC (instruction cache) mode and OC (op cache) mode. For those familiar with Intel terminology, these terms are similar to Intel's DSB and MITE paths. In Zen 2, the IC mode path itself remains essentially unchanged and will not be discussed in this article. On the other hand, the OC mode has been enhanced.

When the instructions are decoded, they are stored in the Op cache. Like the L1I cache, the OC also operates on 64-byte cache lines. This allows you to store up to 8 macro operations in each entry (not to mention, 64b imm/etc will take up two slots). In Zen, OC is organized into 8 ways with 32 sets, which means a total capacity of 2048 MOP. In Zen 2, AMD doubled its capacity to 4096 MOP. It is assumed that this is achieved by doubling the number of groups. By the way, after SMT is enabled, each thread has only half the capacity. This means that on Zen 2, the effective capacity of each thread is equal to the entire OP cache of Zen 1.

RVmNVZoB0cQkUO

Once operating in OC mode, the pipeline will remain in this mode until the read address misses. In OC mode, the rest of the front end is clock gating. Assuming all other conditions are the same, a larger OC should allow Zen 2 to remain in OC mode for a longer instruction stream, thereby increasing IPC throughput while reducing front-end power consumption. Like Zen, OC mode can send up to eight instructions to the back end per cycle, twice the bandwidth of the IC mode. It is worth noting that since the reorder buffer can still handle up to 6 MOPs per cycle, the higher throughput on the OP cache only helps to ensure that the op queue remains filled.

RVmNVmoIMgUlSqRVmNVnEHWe9MGi

Backend

xx从计划中,宏操作被发送到整数集群或浮点单元。出口控制单元(RCU;在其他设计中也称为ROB)负责跟踪所有未完成的操作。在Zen和Zen 2中,RCU执行全宏操作,每个周期最多6个MOP,以及8个MOP。 Zen上的重新排序缓冲区跟踪正在进行的192个宏操作。这使Zen 2的数量增加了大约15%到224.这与Skylake上的重新排序缓冲区的大小相同。

RVmNVnYHe6aOEZ

与Bulldozer一样,Zen和Zen 2有三种类型的指令分类:FastPath Single,FastPath Double和VectorPath(aka Microcode)。 FastPath Single表示指令由宏操作组成,FastPath Double表示指令由两个宏操作组成。 VectorPath意味着两个以上的宏操作(例如REP MOV)。当宏操作到达调度程序时,在重命名/映射之后,宏操作被分解为微操作。通常,自Zen以来,大多数指令都已转换为FastPath Single密集宏操作。 AVX2的变化看起来更真实。

RVmNVnn6Jtci1x

作者注:自引入Zen以来,AMD不再努力消除x86指令,宏操作和微操作之间的模糊性。此外,再加上充满错误的手册,这使得正确描述管道变得极其困难。尽管如此,WikiChip坚持尽可能准确地描述实施模型。

整数

从调度开始,每个周期最多可以将6个MOPS调度到整数执行集群。在这里,MOP被分解为构成它们的微操作。例如,FastPath Single指令(例如从内存中添加reg,[mem])将被分解为2个微操作:加载和添加。通常,μops可以分为两种类型:ALU和加载/存储。 Opops将根据其类别发送给适当的调度程序。与Zen一样,Zen 2有四个ALU调度程序。这些调度程序现在有两个更深的条目,这意味着它们可以在无序窗口中稍微更深入排队。理论上,从早期操作数可用性中提取一些额外并行性的可能性很小。加载/存储μops将在AGU调度程序中排队。在Zen中,有两个AGU调度程序,每个调度程序的深度为14个条目。在Zen 2中,这些调度程序组合成一个包含28个条目的大型调度程序。如您所见,虽然他们选择添加另一个AGU,但条目总数没有变化。

RVmNVo6JEPimVc

调度程序对μops进行排队,同时跟踪依赖性和操作数可用性。准备好后,将发送μops以供执行。每个调度程序每个循环每个管道可以发送一个μop。和Zen一样,有4个ALU。 Zen 2引入了另一个AGU,现在有三个。我们将在后面的部分详细讨论这个问题。

RVmNW1r3on2z9w

浮点

从调度开始,每个周期最多可以向浮点单元发送4个MOP。这里MOP被分解为构成它们的微操作,它们在非调度的等待缓冲区中排队,这可以提前启动存储器请求。最后,μops排队等待在36条目调度队列中执行。大多数浮点集群没有改变,包括调度程序,它们的大小和执行管道。还有4个执行管道。

Zen 2的最大变化是管道的宽度。 Zen,Zen +和Zen 2都支持FMA和AVX2。在Zen 2之前,256位指令被解码为FastPath Double,产生两个MOP,每个MOP最终被分解为两个μop。这不仅消耗额外的资源,而且还意味着256位向量的吞吐量是128位向量的吞吐量的一半。 Zen 2扩展了整个FPU数据路径。现在每个管道都是256位宽。这可能意味着所有这些256位指令都将被解码为FastPath Single,从而生成单个MOP并提高整体有效吞吐量。那些熟悉英特尔AVX2的人会知道,对于AVX2的繁重工作负载,当处于turbo模式时,AVX2偏移将由于更高的功耗而启动。 Zen 2本身没有类似的偏移量,但您可能会注意到,作为AMD Precision Boost 2的一部分,节流控制温度和电流并确保平台功率不会太高。

RVmNW2B59YsagMRVmNW2WAl4FBeT

值得一提的是,现在两个FMA单元都是256位宽,每个Zen 2内核的总FLOP是16个双精度FLOP /周期。这意味着它们已达到与Haswell,Broadwell和英特尔所有主流客户端处理器相同的水平。但是,Cascade Lake每个周期能够进行32次双精度浮点运算。

RVmNW2rAsT0psD

请注意,AMD目前不支持AVX512。然而,AMD扩展了整个浮点单元,以方便地支持AVX512作为FastPath Double,就像它们对AVX2一样。虽然并非所有这些都是微不足道的补充,但期望第一个实现使用更窄的流水线(例如,256位)并非不合理。就像在Zen和Zen +上实现AVX2一样,它的吞吐量只有一半。

内存子系统

内存子系统已在Zen 2上得到增强.L2 Data TLB现在通过2M页面粉碎添加了512个条目和1G页面的新支持。 AMD表示他们可以节省L2 TLB访问的一些周期。

在整数聚类方面,AMD增加了一个新的AGU单元。与其他两个单元不同,该单元专用于存储。换句话说,可以在AGU0和AGU1上执行加载μops,并且可以将存储发送到三个小区中的任何一个。

更重要的是,为了适应FPU单元的扩展,数据高速缓存的存储器带宽也增加了一倍。 Zen有一个双端口数据缓存。它可以执行两次读取或一次读取和每次循环一次写入。以前,两个端口都是128位。 Zen 2现在能够执行完整的256位存储和加载。将带宽加倍到64字节将对依赖于AVX2或复制/流任务的工作负载类型产生积极影响。请注意,L2带宽仍为32B,L3也是如此。

RVmNW37Cx7iTvCRVmNWFfGTxYxsgRVmNWG4Gx8YaiN

稍微超出核心的主题是第三级缓存。 L3支持L2缓存的32B /周期带宽。此缓存是受害者缓存。它由来自CCX的4个核心中的任何一个的L2受害者行填充,其被复制到L3中。在Zen 2中,AMD将每个核心的L3大小增加到16个MiB-4 MiB缓存切片。由于它们的芯片设计,这对AMD有更明显的影响。为此,我们将在以后的文章中讨论它。

RVmNWGO2e17aky

**单击文本末尾阅读原始文本,即可阅读原始英文文本。

*免责声明:本文最初由作者创建。文章的内容是作者的个人观点。半导体行业观察转载只是为了传达不同的观点。这并不意味着半导体行业观察到这种观点的支持或支持。如有任何异议,请联系半导体行业进行观察。

今天是《半导体行业观察》共享的[2001]内容,欢迎关注。

“半导体第一垂直媒体”

实时专业原创深度

新闻排行
  1. 美国集团的“复利”公式5月份,中国主要的互联网巨头在新的一年里经历了第一波财务报告。有些人开心和担心?

    美国集团的“复利”公式5月份,中国主要的互联网巨头在新的一年里经历了第一波财务报告。有些人开心和担心?...

  2. 资料来源:本文摘自公共部门半导体行业观察(ID:icbank),来自“wikichip”,作者DavidSchor,谢谢。在过

    资料来源:本文摘自公共部门半导体行业观察(ID:icbank),来自“wikichip”,作者DavidSchor,谢谢。在过...

  3. 7月7日凌晨,美洲杯季军赛,阿根廷对阵智利。阿圭罗,迪巴拉的进球,帮助阿根廷2-0领先。第38分钟,梅西推?

    7月7日凌晨,美洲杯季军赛,阿根廷对阵智利。阿圭罗,迪巴拉的进球,帮助阿根廷2-0领先。第38分钟,梅西推?...

  4. 美国集团的“复利”公式5月份,中国主要的互联网巨头在新的一年里经历了第一波财务报告。有些人开心和担心?

    美国集团的“复利”公式5月份,中国主要的互联网巨头在新的一年里经历了第一波财务报告。有些人开心和担心?...

  5. 跨界天猫联合品牌打造智能新产品,新日进入战略变革的里程碑!从旅行到腿,骑马,坐在车里,然后去自行车,

    跨界天猫联合品牌打造智能新产品,新日进入战略变革的里程碑!从旅行到腿,骑马,坐在车里,然后去自行车,...

  6. 跨界天猫联合品牌打造智能新产品,新日进入战略变革的里程碑!从旅行到腿,骑马,坐在车里,然后去自行车,

    跨界天猫联合品牌打造智能新产品,新日进入战略变革的里程碑!从旅行到腿,骑马,坐在车里,然后去自行车,...

  7. NBA季后赛第一轮问世:火箭队排名第四,火箭队勇士队将能够在第二轮见面4月11日,随着开拓者队逆转国王队和

    NBA季后赛第一轮问世:火箭队排名第四,火箭队勇士队将能够在第二轮见面4月11日,随着开拓者队逆转国王队和...

  8. NBA季后赛第一轮问世:火箭队排名第四,火箭队勇士队将能够在第二轮见面4月11日,随着开拓者队逆转国王队和

    NBA季后赛第一轮问世:火箭队排名第四,火箭队勇士队将能够在第二轮见面4月11日,随着开拓者队逆转国王队和...

  9. 7月7日凌晨,美洲杯季军赛,阿根廷对阵智利。阿圭罗,迪巴拉的进球,帮助阿根廷2-0领先。第38分钟,梅西推?

    7月7日凌晨,美洲杯季军赛,阿根廷对阵智利。阿圭罗,迪巴拉的进球,帮助阿根廷2-0领先。第38分钟,梅西推?...

  10. 在中国,一种新型的恐惧即将成为现实。害怕被垃圾分类所支配!如果在加拿大怎么办?在加拿大学习的学生也将

    在中国,一种新型的恐惧即将成为现实。害怕被垃圾分类所支配!如果在加拿大怎么办?在加拿大学习的学生也将...

日期归档
友情链接