amd吧 关注:781,987贴子:17,928,921

AMD Ryzen: 严谨技术解析

只看楼主收藏回复

1楼防抽。


1楼2017-03-05 18:45回复
    我吞


    IP属地:广东来自Android客户端2楼2017-03-05 18:45
    收起回复
      发不出去说有敏感词....


      3楼2017-03-05 18:46
      收起回复
        SMU – 幕后的掌控者
        由于集成了系统管理单元SMU,在超频时Ryzen和之前的架构都很不一样。
        在默频时,Ryzen的功耗全由SMU控制,SMU将发挥它的全部功能,掌管一切。SMU的管理功能包括功耗、电流、温度限制器,电压控制器以及功耗门限等。
        如果你不超频,可以无视这些玩意。
        为了超频,AMD的工程师还给出了一个特别的模式:“超频模式”,超频模式下会禁用所有的限制器,电压控制器以及保护措施(除了CPU温度保护)。
        如果你在默认的P0状态基础上超频,“超频模式”就会自动启用。SMU是通过向主板的诊断显示(80)端口发送“0C”来判断超频模式的。
        在Zeppelin上,想了解CPU的不同频率状态(PStates)、电压,特别是实际等效电压是非常困难的,远比之前的架构困难得多。与之前的推土机家族(Family 15h)不同,Zeppelin的加速频率状态(Turbo&XFR)是完全不可见的,这也是他们为什么被称为“Shadow PStates”的原因吧。这意味着Zeppelin的PState不再以标准MSR寄存器定义,也不能被用户修改甚至看到。用户能够Shadow PStates生效的唯一方法,就是看到即时频率/电压的上升。
        在不超频的状态下,SMU会自动通过电压控制器控制电压。
        比如P0状态下,可能会给1.37500V电压,实际等效电压大概在1.26250V,或者稍高。这不是个bug,而是CPU的正常工作状态。基本上来说,MSR中定义的电压只是上限而已,而SMU会在这个值的基础上自动降压。我们测试的样品上,P0(3.6GHz)的调整值为-120mV,P1(3.2GHz)为-144mV。
        当“超频模式”激活时,SMU会禁用电压控制器,其他的很多功能也会被禁用。这会造成一个假象:超频后功耗猛增。在技术上来说这是正确的,主要原因是关闭了SMU提供的自动降压预设,导致CPU电压上升50-150mV。也就是说,开始超频的时候电压已经偏高。在这时候不要立马加压,而是先尝试提升频率,在不稳定需要加压的时候再加压。

        同频3.6GHz功耗比较,超频模式下比默认自动电压下功耗高了18.74%

        关闭自动电压,设置同样的电压,功耗相同
        “超频模式”的另一个缺点就是会关闭加速和XFR。也就是说如果你全核超不到默认的单核XFR频率,单线程性能会下降。


        4楼2017-03-05 18:46
        收起回复
          XFR
          XFR实际上是对标准CPB加速算法的拓展或加强。在理想状态下,CPU能够提频到原有的加速频率之上。XFR也有单核和多核的频率上限。
          比如1800X,全核频率3.6GHz,单核频率4.0GHz,在全核+XFR下能达到3.7GHz,单核+XFR则是4.1GHz。
          XFR的提升频率在不同产品上可能不同。但在1800X上只有100MHz。理论上任何时候都能启用XFR,但在部分情况下(Linpack/P95)下频率通常会降到3.6/4.0GHz。


          5楼2017-03-05 18:46
          收起回复
            外频
            AM4上超外频是可能的,但并不推荐。因为外频和其他接口挂钩,比如PCIe。而且不像Intel,AM4没有异步模式,不能在调外频的同时保持PCIe频率不变。PCIE3.0通常能到107MHz,再往上需要调到PCIE2.0或1.0。
            超外频会带来很多稳定性问题。


            6楼2017-03-05 18:47
            收起回复
              内部电压调整(dLDO)
              Zeppelin是AMD首次集成电压调节模块。与Haswell/Broadwell上完全集成的电压调节模块(FIVR)不同,AMD的调节器并非基于超高频开关电路,而是超高效数字低压差稳压器(dLDO)。大部分区块(核心/缓存/Data Fabric)都有自己的dLDO,能够分别调整。
              当然普通用户可以完全无视。因为零售版Ryzen上大部分的dLDO都是永远处于by-pass模式,实际的调节器处于关闭状态,电压调节全部放在主板上。


              7楼2017-03-05 18:47
              收起回复
                CCX之间的频率关系
                在内部频率关系上,Zeppelin与之前的架构也很不同。核心、L1、L2的速度永远都是绑定,这和以前一样。但这次的L3也和核心运行在同样频率(全速)。由于L3被整个CCX内的核心所共享,因此L3的频率和该CCX内最高的核心频率一致。正常情况下,同一个CCX内的所有核心都运行在同样频率。
                所有CCX的结构给了超频者一些限制。CCX内的4个核心必须运行在同频(处于同样的PState),当然也可以改变每个核心的频率,让他们处于不同的PState之下,但很多情况下结果会和预想的不同。由于L3的频率和该CCX内最高的核心频率相同,如果同一CCX内的核心不是同频,那么请求和实际运行频率就会有差距。
                等效CPU倍频与CPUFID 和 CPUDFSId有关。CPUFID是一个范围在16-255的整数值,而CPUDFSId是1-6之间的浮点值。等效倍频=((CPUFID / (CPUDFSId / 8)) / 4)
                如果同一CCX内的核心不是同频,等效倍频的计算就更加困难。如果所有核心的PStates都有同样的CPUDFSId值,等效倍频=目标核心CPUFID / (1 + ((最高频率核心CPUFID - 目标核心CPUFID) / 最高频率核心CPUFID)),比如最高频率核心的倍频是36.0x(CPUFID = 144 , CPUDFSId = 1),其他目标核心的倍频为32.0x(CPUFID = 128 , CPUDFSId = 1),等效倍频=128 / (1 + ((144 - 128) / 144)) = 115.2 (28.8x)。
                启用了CCX中,开启的核心数必须相同,可能的配置为: 1 (1:0), 2 (2:0 or 1:1), 3 (3:0), 4 (4:0或2:2), 6 (3:3), 8 (4:4)。


                8楼2017-03-05 18:47
                收起回复
                  Data Fabric
                  Zeppelin的北桥,官方称为Data Fabric(DF)。DF频率和内存控制器挂钩,比例为1:2【比如DDR4-2667 MEMCLK(内存频率) = 1333MHz DFICLK(DF频率)】。这意味着内存频率直接会影响DF的性能。
                  在某些情况下,Zeppelin的性能可能会随内存频率提升而大幅提升。
                  但实际上这不是通过提升内存频率带来的,而是同时提高的DF频率带来了性能提升。
                  零售版Zeppelin官方支持的最高内存频率为DDR4 2667(2x 1R内存模组)或2400MHz(2x 2R内存模组),但2933、3200MHz的频率也可以在部分主板上达成。


                  9楼2017-03-05 18:47
                  收起回复
                    超频性能
                    高端Ryzen的超频空间非常小。因为默频就已经很高,同时本来就是高密度的设计,Zeppelin用的还是低功耗制程(三星 14nm LPP)。

                    可以从曲线中看到,Zeppelin的频率在3.3GHz之前是完美的线性增长(每100MHz需要25mV)。首次偏差出现在3.3GHz,第二个也是最后一次偏差出现在3.5GHz。在这之后电压已经不是线性,需要的电压大幅上升。
                    所以最理想的频率范围在2.1-3.3GHz,再往上每100MHz需要的电压会明显增加。
                    这意味着3.8GHz+的频率会带来功耗和温度的大幅上升。
                    作为对比,之前AMD两代桌面版的设计:
                    - Orochi Rev. C,也就是Vishera打桩机,32nm SHP SOI - (第一个关键点出现在4.4GHz,第二个在4.7GHz)
                    - Kaveri / Godavari,28nm “SHP” HPP Planar - (第一个关键点出现在4.3GHz,第二个在4.5GHz)
                    这个曲线和Ryzen预设的PState电压/频率基本吻合。
                    在高端型号上,比如1800X,3.6GHz默频实际(等效)电压范围在1.200-1.300V,而加速PState下(XFR,4.1GHz)下频率可以高至1.475V。
                    测试样品上实际的P0 3.6GHz默频电压为~1.25000V,而单核XFR 4.1GHz等效电压达到了1.47500V。
                    AMD还没给出最高的安全电压【VDDCR_CPU - CCX电压和VDDCR_SOC - 北桥/SoC电压】,但估计高于1.47500V的电压不会适合超频和长期使用。
                    高端型号Ryzen的超频是把双刃剑。因为根据加速和XFR的工作原理,可能会降低单线程性能。而且超频空间已经很小。


                    10楼2017-03-05 18:47
                    收起回复
                      功耗




                      11楼2017-03-05 18:49
                      收起回复
                        前排


                        IP属地:河南来自Android客户端12楼2017-03-05 18:50
                        收起回复
                          峰值功耗使用Firestarter FMA/AVX,功耗比日常的多核满载使用要高30%左右。
                          Note:当前的Prime95(28.10)并不能很好地对Ryzen进行压力测试,测得的功耗会更低。使用Firestarter和Linpack的功耗会显著增加。
                          下面使用的是MCRT,Monte Carlo raytracer,来模拟真实应用。


                          13楼2017-03-05 18:50
                          回复

                            (告诉我哪个是敏感词....)


                            14楼2017-03-05 18:51
                            收起回复
                              彩蛋
                              Zeppelin上采用了非常高级的功耗管理。和Carrizo/BristolRidge相同,Zeppelin也能够支持cTDP。虽然零售版的Ryzen官方不支持cTDP,实际上只是在迷惑人们。

                              在30W下,CinebenchR15能够达到850cb。这个分数意味着什么,可想而知。
                              只要在理想频率范围内,Zeppelin可以达到闻所未闻、怪物级别的效率。
                              【可以期待一下Q2的Naples,以及H2到来的RavenRidge。】


                              15楼2017-03-05 18:51
                              收起回复