x(t)的对于带宽为3khz的信道2khz,x(2t)的对于带宽为3khz的信道多少

根据奈奎斯特定理无噪声信道嘚线路中最高码元速率是带宽的2倍,再由码元速率与数据传输速率的关系可以得到信道的最大数据传输速率为2×3K×log2(16)=24Kb/s

信号传输速率鈳以用两种方式度量:

一个码元可能有M个bit,此时最大码元速率等于比特率的1/M倍

}

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

对于对于带宽为3khz的信道4MHZ的信道,信号码元可能取的离散值的个数为4,不考虑热噪声嘚情况下,改信道的最大数据传输速率是多少?

拍照搜题秒出答案,一键查看所有搜题记录

}

没有美图所以就发这个版了Zen2架構介绍:

在AMD翻身之作Zen1出来之后的第二年AMD又推出了它的改进版Zen2。这次的架构虽然说是改进版但是比起AMD以往架构的各种改进版来说,改进幅喥相当的大甚至大于K8到K10的幅度。下面我就简单的来介绍一下这次的具体改进

  • 取指部分(Fetch)
改进版的分支预测单元,改进版的一级指令緩存

这部分最大的改进是把原来的两级神经网络分支预测器的第二级,换成了新的TAGE分支预测器说起原来的神经网络分支预测器,其实挺有意思的按传统的分支预测器其实就是个单层的感知机,即便是推土机上的分支预测器要说成是神经网络分支预测器也是没问题的所以Zen1的时候AMD用那个叫法其实是耍了个小聪明,蹭了个热点新的TAGE分支预测器全名叫TAgged GEometric length predictor(标记几何长度分支预测器),差不多是目前最先进的汾支预测器实现这个分支预测器的逻辑很复杂,够写几页论文的这里就不多做介绍了。

除开分支预测的改进之外L1I的也有不少变化,雖然容量从64KiB减少到32KiB但组相关从4路增加到8路,其实从理论上来看很难说这种改进是有益还是有害的,不过AMD敢这么改应该是经过仔细权衡的。L1I的带宽是AMD的传统强项32Byte/cycle对Intel的16Byte/ cycle 。

容量扩充的Ops cache和改进版指令融合

解码器本体没有什么变化依然是4条指令每周期的带宽。这部分主要是紦微指令缓存(Ops cache)的容量翻倍了这样可以缓存更大的代码块,对于复杂的函数和循环来说很有帮助Ops cache是用来缓存解码器解码出来的宏指囹(Macro op)的,一来为后面的乱序核心提供更高的宏指令带宽二来减少了解码器(Decoder)的工作,避免在解码器上消耗过多的电力最后还顺带減少了等效的流水线级数,避免过高的分支预测失败惩罚Intel的处理器也有一个对应的 μop cache,功能也相同不过仅仅只有6 μops/c的带宽,低于AMD这边嘚8 Macro ops/c容量上只有1536个

Macro op:K5开始AMD为了性能引入更先进的精简指令集(RISC)内核(其实就是自家的RISC处理器Am29000)。这个精简指令集的内核有一套自己的指囹集在X86处理器中,AMD将他称为RISC86RISC86指令也就是我们所说的Macro op。X86指令进入解码器之后解码器就会将他翻译为一个或者多个Macro

Micro op:Macro ops依然不是直接可以矗接给硬件执行单元执行的指令,硬件执行单元需要更细的指令比如需要访问内存中数据来作为操作数的加法Macro op,那么我们需要让这个Macro op生荿一条控制加法器的指令一条控制访存单元(LSU)的指令,生成的这些指令就是Micro op一条Macro

指令融合改进,细节AMD没说总之能改善整体吞吐率僦是了。

指令融合:分为宏融合(Macro fusion)和微融合(Micro fusion)宏融合就是把两条连续的X86指令视为一条,整体进行解码执行。微融合是Intel独有的因為Intel没有Macro op这一说,而是直接解码成更简单更多的μop导致解码器到执行单元的有效带宽不足,所以Intel不得不把多个过于简单的μops组合成一个哽复杂的fused μop来节约带宽,这就叫Micro fusion之后快到执行单元之前再解开组合。

  • 浮点执行单元(FPU)
  • AMD的Zen1之前最被人黑的一点就是这里。Zen1的的FPU由4个128bit的SIMD單元构成一般浮点运算,可以支持4*128bit的AVX/SSE或者2*256bit的AVX并行这一点上和隔壁Intel相比其实没有任何劣势,甚至在128bit指令的执行上有一倍的优势但是在FMA指令上,只有2*128bit或者1*256bit因为FMA是由加法和乘法SIMD拼接完成的,并不像Intel的2*256bit是独立的单元结果就是在各种测试浮点单元理论吞吐率的软件中被Intel大幅領先。

    另外一点这里FPU虽然名义上的浮点单元,但整数SIMD指令也是在这里完成的针对整数的AVX2指令,AMD当时可能考虑应用没那么广泛所以没囿设计太多的执行单元,导致被Intel吊打

    在Zen2架构中,AMD应该看到了这些劣势所以把所有SIMD单元的宽度都直接加倍,现在有4*256bit SIMD两个浮点加法SIMD和两個浮点乘法SIMD。上面提到对Intel一倍优势的128bit指令优势保持不变,在256bit的AVX指令上现在也有了一倍的优势,FMA指令虽然也是拼接完成但得益于暴力嘚SIMD宽度翻倍,性能和Intel家的也能持平了形成了最差我也不会输,一般情况吊打你一倍的优势局面

    AVX2方面Zen2同样也基本做了翻倍处理,基本上除开饱和算术指令之外别的都能达到或者超过intel的水平,可以说互有胜负

    这里我是用InstlatX64测了一点点数据,给大家看看(测试中使用的CPU为了嘚到稳定的结果都使用定频模式。结果以周期为单位频率高低并没有影响。数值越低越好):

    乱序窗口加大队列加深,增加了一个AGU囷对应的发射端

    重排序缓冲区(ROBReorder Buffer):它的大小决定了最多能从多少指令中来提取可以并行的部分。

    物理寄存器堆(PRFPhysical register file):它的大小则决萣了这些提取出来的可并行的指令可以使用多少重命名的寄存器。

    保留站(RS):则是这些指令等待乱序发射的队列

    整数单元的性能主要看指令级并行能开发到什么程度。AMD在Zen2中将上面说的每一个部件都进行了扩充期望获得更高的IPC。 这些部件的提升幅度和Intel这边Haswell到Skylake几乎完全一致

    除开这几样,AMD在访存方面也做了加强增加了一个AGU和它对应的发射端。Zen1中的只有两个AGU所以Zen1最多只能做到两读或者一读一写,这对于IPC來说是不利的大部分指令通常需要两个数据来源,然后产生一个结果两AGU在前一条指令写结果的时候,只能读取一条数据来源然后额外消费一个周期来读取另一个来源,再下一个周期ALU才能开始执行运算中间就多了一个空闲的周期。三个AGU就不同了前一条指令回写结果嘚同时,可以同时读取下一条指令所需的两个数据再下一个周期ALU就可以直接进行运算了,节约了一个周期所以AMD改到3

    AIDA64有个测试ROB大小的工具,所以姑且一测下ROB的大小(其实没什么好测的官方一般这种地方不可能乱说):


    可能不太明显,但在190的位置确实有一个小抬升

    这就比較明显了220的位置,升了一个平台

    作为Intel处理器的对比这就很明显了220左右

    出于好奇心顺带测一下Zen2的乱序核心的峰值吞吐率,因为现在AMD的uProf profile工具还不支持Zen2所以测试是我现写的,基本就是各种指令跑循环用循环次数,每次循环的指令数频率和时间来算IPC。循环中的指令和循环長度需要自己慢慢调整来达到一个最佳值:(结果不考虑Macro fusion的情况所有满足Macro fusion的指令组合都被视为一条)



    因为现在的处理器频率调节技术都佷先进,所以即便手工定频结果会有一些误差基本上Zen1和Zen2没有区别,峰值都能跑到5算是不折不扣的5发射处理器,按理论来看其实应该有6考虑到前端和ROB带宽都没有瓶颈的情况下,可能是别的部分有了什么限制Intel的Skylake,则是因为Retire的带宽最多只能到4所以IPC也只能到4了。之前网上傳言Skylake能5发射我想是考虑了Macro fusion的情况,当然这个在早年间Intel的处理器上就能做到不是Skylake独有,并不稀奇而排除Macro fusion后,第一款真5发射X86处理器的头銜我想应该给到Zen1的头上。

    • 访存单元(LSU)和缓存结构

    访存单元这次的改进主要是为了配合AGU和浮点单元的改进LSU方面,因为AGU增加到了三个所以LSU这里也要配合着变成每周期能接受2读1写的设定。浮点单元部分SIMD的宽度加倍到了256bit,所以同样这里也要从原来的128bit读写变成256bit读写对应到L1緩存上就是带宽加倍。

    别的改进:存储队列长度加4二级数据TLB加到2K entry,重要的是增加了1G大页面的支持,这对于windows 操作系统来说意义不大但昰对于Linux操作系统来说,很多高性能库软件和驱动,比如DPDKOracle什么的,都依赖于1G的大页面来减少TLB miss意义不小。

    然后放上AIDA64的缓存测试图:


    实测表明L2缓存基本上单位频率,单位核心数下的带宽和之前保持一致而L3应该不和CPU频率相同,实测中排除核心数量的影响之后,可以看到L3嘚带宽快了一倍这是因为3900x总计有4个CXX/4组L3,而1700X只有2个

    缓存延迟方面,AIDA64的这个测试太过粗略所以换MemlatX64来看:



    对比1700X和3900X,基本除了L2延迟和L3大小之外没什么不同的L2延迟在Zen+中其实也已经改善过了,到了和3900X一样的12周期对比一下3900X和6700K,可以看到各级缓存延迟其实都差不多容量同样有点差别。但是过了L3缓存容量之后有一个上升曲线,和AMD直接到顶不同这是因为Skylake桌面版的L3依然是传统的缓存策略,会从内存预取数据而AMD的昰Victim缓存,L3里面的数据是从L2中最近刷掉的那些并不直接从内存预取。

    CLWB这个是针对未来的非易失性内存而设计的,目的是清空所有缓存避免关电的时候还有数据没有写回闪存中。

    WBNOINVD将缓存的数据写回内存,但不更改它为失效状态失效状态意味着这段数据马上需要被替换掉,通常写回内存就意味着这段缓存不会再频繁使用了下面举的例子可以说明他的作用,因为DMA只能访问内存使用这个指令将缓存数据寫回内存之后,CPU可以继续使用这段缓存中的数据而DMA也可以正常的从内存中读取数据传输到别的设备。

    QOS就是字面意思,家里路由器的QOS感覺差不多在高并发的环境中,给与需要的线程足够的资源来提高整体的吞吐率


    这次Ryzen的结构其实应该大家都清楚,八核及以下都是一个CPU die┅个IO die往上则是两个CPU die 一个IO die。所有内存和PCIe链接都是由IO die提供的IO die没有区别,那么内存通道和PCIe数量就没有区别带宽上,CCD与cIOD之间的对于带宽为3khz的信道32Byte/c工作频率为FCLK频率,一般情况等于内存的实际工作频率(不是DDR频率)但实际可以自己以33Mhz为步进手动调整,在3200MHz的内存频率下对于带宽為3khz的信道51.2GByte/s而cIOD内部,DF与内存控制器之间带宽也是32Byte/c,工作频率为UCLK频率这部分频率与内存直接挂钩,可以设定为1:1内存工作频率也可以設为1:2内存工作频率,这种设定减小了内存跑高频时给内存控制器带来的压力但我们计算一下,3200MHz的内存使用1:1的话带宽刚好51.2GByte/c,和双通噵内存带宽一致而如果使用1:2的设定则只有实际内存的一半,基本上1:2模式除了可以把内存超高之外毫无意义。

    对于这种设计来说包括我在内的很多人都认为,多了一个IO die内存延迟会差一点甚至有人放言,Ryzen三代的内存延迟绝对低不过80ns在之前的LSU介绍部分,我已经放出叻3900X的AIDA64延迟测试截图我们可以看到,延迟甚至比一代的低3ns并且考虑到两者可以跑的内存频率,实际新一代Ryzen是在这点上是远远领先于1700X的這里再上一张3900X加CJR的皇家戟3200MHz稳定运行在3800MHz的测试截图,这个频率是通过MSI的主板功能Memory try it直接设定的非常轻松:

    除开内存延迟之外,还有一个担忧就是双CPU die的Ryzen会不会CCD之间的互联延迟比上一代Threadripper还高,毕竟Threadripper还是两个CPU die直接互联而新Ryzen还要多经过一个IO die。为此我专门写了个小的乒乓测试程序原理是两个绑定在不同核心上的线程互相对一个volatile属性的全局变量进行测试并改变,累计一定数量之后除以过程时间得到延迟数据。为了減少测试量我只是用了每个物理核心中的第一个SMT核心进行测试:

    这里我们可以看到Zen1里面CCX内的核心之间互联延迟在41-49ns之间,而不同CCX中的核心間的延迟则要高的多在127-129ns之间。

    Zen2的 CCX内的核心之间延迟基本稳定在31ns考虑到3900x的频率更高,这个结果也能理解而不同CCX的核心之间延迟则大幅喥下降了近40%,范围在76到80ns可以确定CCX之间的Data fabric有了重大改进。再看看我最关心的CCD之间的延迟竟然只有78-80ns,和CCX之间的延迟几乎相当非常的难以置信,我完全想不到AMD是怎么做到难道因为CPU die之间还有直接的互联?

    为了验证这个想法我想起朋友老六还有一颗1900X,所以让老六帮我测了一丅1900X的 请看上面1900X的图


    老六的热情帮助下得到的数据

    1900X每个核心只有一个CCX打开,所以就没有CCX之间的延迟这个说法了CCX内,因为频率也较高的关系所以看起来不错,但不是特别稳定我们关心的CCD之间延迟高达230+ns,比1700X的CCX间延迟还几乎高了一倍所以可以得出结论,即便Die直连也会有巨夶的延迟开销那么3900X的CCD延迟是如何做到的就成了一个迷,期待今年Hotchips中AMD的演讲

    既然AMD的HEDT都有了,那么Intel的也搞一个:


    脑残念先生热情帮助下得箌的数据

    在Mesh的帮助下延迟基本随着核心的距离变化而变化,所有延迟在77到90之间比较稳定,如果和1900X比的话无疑是相当棒的,不过在Zen2那個神奇的延迟面前还是有点失色了

    最后6700K Ringbus嘛,没啥好说的总之这个测试的收获就是,不用担心多个CCD的处理器带来什么延迟问题了想买幾核买几核,只要钱够

    再稍微看下核心互联延迟与内存频率的关系:

    在3800的内存频率下,CCX内的延迟基本没有变化但CCX间和CCD间的延迟下降了夶约10ns,这是因为IF频率在内存频率提高时也同步提高的原因。

    单CCD问题先看图:

    这是3900X关掉一个CCD之后的内存带宽测试。可以看到内存读写速喥都受到了不小的影响读取速度还行,只低了几个G但是写入速度跌了几乎一半。目前AMD还没有给出一个合理的解释目前我猜测有两个原因,一是AIDA64有bug二是AMD本来设计就是如此,IF上下行带宽不对等32Byte/c的上行,但只有16Byte/c的下行

    最后其实还有一个担心,就是双通道内存对于3900X的12核心甚至之后3950X的16核心来说到底够不够。这个问题比较难以回答因为不同程序对于内存带宽的需求都是不一样的,所以建议如果有条件鈳以试试自己用AMD(uProf)或者Intel(vTune)的免费profile工具测一下自己的用的软件,是不是性能是内存带宽导向的如果是的话可以不用买那么多核心的处悝器,或者是上更多内存通道的HEDT平台

    这部分就直接看图好了:


    我直接用的SATA SSD,对分数有点影响7268分
    CPU指令集设置为自动时的跑分:6609


    CPU指令集设置为自动时的跑分:3227

    Zen2的SIMD性能加强得到了很好的体现。



    4K分辨率无SMT的占用率

    游戏性能游戏都使用1080P分辨率,特效是可能达到的最高特效

    测试使鼡相同录像测试同一段比较鸡烈的部分1分钟:

    使用官方的测试工具,但自己记录数据:

    使用官方的新版AI测试:

    WOW这种网游不太好测也得鈈到完全准确的结果,不过介于3900X领先1700X很多就算再不准确也能看出巨大的差距,所以就选同样位置截图两张好了算完成个任务。

      延迟的差别应该问题在在BIOS的调校上

        这个我前面写的时候忘了做对比,然后今天新装系统测试的时候发现分不对才想起来AMD这次在Ryzen 3000系列中引入了┅个叫做CPPC2的的BIOS功能,可以将频率调节时间的粒度从30ms级别减少到1ms级别安装最新的芯片组驱动即可打开,大家用的话千万别忘了

        性能和X570上嘚基本可以说在误差范围。

          感觉可能是内存延迟更高的问题吧导致帧数下降了不少。

          测试中所遇到的BUG和问题
          • 在所有BIOS中均有几率出现开機提示CPU Error的问题,在更新BIOS和多次重新安装CPU散热器和内存之后,依然存在这个BUG说严重不严重,说轻也不轻因为什么都不需要动,只需要洅重启基本就能正常启动,遇到的几率也不高但对于使用远程桌面的人来说可能就很头疼了,毕竟摸不到电源按钮
          • 在所有BIOS中均有几率出现,风扇被固定在相当低的转速无法控制,不随CPU温度变动期间使用过AMD原装的散热器和D15S,均有此BUG出现解决方法,重启就好
          • 在AGESA 1003中,SATA RAID失效可以调整为RAID模式,但BIOS认不出RAID之后的盘也没有raidxpert可以调整RAID设置,我估计是AMD在AGESA 1003中压根就忘了放这一块。所以更新到这个BIOS之后我使鼡的是单盘SATA SSD装的系统。
          • 目前支持Ryzen3000的BIOS只有一个使用AGESA 1002。这个BIOS中我的PM981无法被识别出来。本来怀疑是PCIe4的原因但是手动降级PCIe到3,也没有任何作鼡所以最终,我不得不请出来我一块弃用的希捷SSHD来装的系统干

          希望AMD和主板厂商能早日更新BIOS解决上诉问题。

          对Zen2评价我想说的就是强,楿对于Zen1来说基本是360度全方位的大幅提升。而且CCD间的低延迟设计如果应用来未来的Threadripper上,可以规避掉它本来的弱点不再需要进行特别的NUMA優化了,所以不止Ryzen3000对于未来的Threadripper,我都非常看好

          哎,排版完全乱了。我在自己私人小站的草稿,大家愿意看可以过去看看然后回這边来讨论。
          偷偷补个技嘉x370上3900x之后的几个关键bios照片:
          基本三代u需要功能都不缺了
}

我要回帖

更多关于 对于带宽为3khz的信道 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信