amd吧 关注:788,385贴子:18,096,421
  • 16回复贴,共1

发现一篇挺有意思的文章

只看楼主收藏回复

IP属地:上海1楼2022-06-18 20:10回复
    二楼防吞


    IP属地:上海2楼2022-06-18 20:54
    回复
      用百度翻译简单的翻译一下(图在原文中)


      IP属地:上海3楼2022-06-18 20:55
      回复
        ARM还是x86?ISA不重要
        2021 07月13日clamchowder
        在过去的十年中,ARM CPU制造商多次尝试打入高性能CPU市场,因此我们看到了大量关于ARM努力的文章、视频和讨论,其中许多文章都集中于两种指令集体系结构(ISA)之间的差异,这一点也不奇怪。
        在这篇文章中,我们将汇集研究、熟悉CPU的人的评论,以及我们的一些内部数据,以说明为什么专注于ISA是浪费时间(1),并开始我们的小冒险,让我们参考Anandtech对Jim Keller的采访,他是一名工程师,从事过多个成功的CPU设计,包括AMD的Zen和苹果的A4/A5。
        ----------------------------------------------------------------------------
        【关于指令集的争论】是一个非常悲惨的故事。
        CISC vs RISC:一场过时的辩论
        x86在历史上被归类为CISC(复杂指令集计算机)ISA,而ARM则被归类为RISC(精简指令集计算机)。最初,CISC机器旨在执行更少、更复杂的指令,并对每条指令执行更多的工作。RISC使用更简单的指令,执行起来更容易、更快。今天,这种区别已不复存在。用吉姆·凯勒的话说:
        当RISC首次问世时,x86是半微码。因此,如果你看一下芯片,一半的芯片是ROM,或者可能是第三个或其他什么。RISC的人可能会说RISC芯片上没有ROM,所以我们可以获得更高的性能。但是现在ROM太小了,你找不到它。实际上,加法器太小了,你几乎找不到它?今天限制计算机性能的是可预测性,其中两大因素是指令/分支可预测性和数据局部性。
        简而言之,就性能而言,RISC/ARM和CISC/x86之间没有明显的区别。重要的是保持核心fed,并提供正确的数据,这些数据将重点放在缓存设计、分支预测、预取和各种很酷的技巧上,比如预测负载是否可以在存储到未知地址之前执行。
        ----------------------------------------------------------------------------
        2013年,在Anandtech的Jim Keller访谈之前,研究人员发现了这种方法,当时,Blem等人调查了ISA对各种x86和ARM CPU的影响,发现RISC/ARM和CISC/x86在很大程度上已经融合。
        ----------------------------------------------------------------------------
        威斯康星大学论文中的一个表格,显示了RISC/ARM和CISC/x86之间的收敛趋势
        ----------------------------------------------------------------------------
        Blem等人得出结论,ARM和x86 CPU在功耗和性能方面存在差异,主要是因为它们是根据不同的目标进行优化的。


        IP属地:上海8楼2022-06-18 21:07
        回复
          译码器的差异:杯水车薪
          另一个经常被重复的真理是x86有一个重要的“解码税”障碍。ARM使用固定长度的指令,而x86的指令长度不同。因为必须先确定一条指令的长度,然后才能知道下一条指令从何处开始,所以并行解码x86指令更加困难。这是x86的一个缺点,但对于高性能CPU来说并不重要,因为用Jim Keller的话说:
          有一段时间,我们认为变长指令真的很难解码。但我们一直在想办法…所以,当你在建造小型婴儿电脑时,固定长度的指令看起来真的很好,但如果你在建造一台真正的大型电脑,为了预测或找出所有指令的位置,它并不是主宰一切。所以这没什么大不了的。
          ----------------------------------------------------------------------------
          在通过未记录的MSR禁用op缓存的情况下,我们发现Zen 2的获取和解码路径比op缓存路径多消耗大约4-10%的核心功率,或多消耗0.5-6%的封装功率。实际上,解码器将消耗更少的核心或封装功率。Zen 2不是为与micro op一起运行而设计的缓存被禁用,我们使用的基准(CPU-Z)适合一级缓存,这意味着它不会对内存层次结构的其他部分施加压力。对于其他工作负载,L2和L3缓存以及内存控制器的功耗将使解码器的功耗更加不重要。
          事实上,禁用op缓存后,一些工作负载的功耗降低。解码器的功耗被其他核心组件的功耗所淹没,尤其是在op缓存能够更好地为其供电的情况下。这与吉姆·凯勒的评论一致。
          ----------------------------------------------------------------------------
          研究人员也同意这一点。2016年,赫尔辛基物理研究所(Helsinki Institute of Physics)[2]支持的一项研究考察了Intel的Haswell微体系结构。Hiriki等人估计Haswell的解码器消耗了3-10%的封装功率。该研究得出结论,“x86-64指令集并不是产生节能处理器体系结构的主要障碍。”
          Hirki等人使用合成基准开发模型来估计单个CPU组件的功耗,并得出结论,解码器功耗较小
          在另一项研究中,Oboril等人测量了Intel Ivy Bridge CPU的读取和解码能力。而那篇论文的重点是为核心组件并没有直接得出关于x86的结论,它的数据再次表明解码器的能力只是沧海一粟。
          ----------------------------------------------------------------------------
          Oboril等人估计了常春藤桥的功耗。与其他核心组件相比,提取+解码能力微不足道
          但很明显,解码器功率不是零,这意味着这是一个潜在的改进领域。毕竟,当您的电源受到限制时,每瓦特都很重要。即使在台式机上,多线程性能也常常受到电源的限制。我们已经看到x86 CPU架构师使用op缓存来提供每瓦特的性能,所以让我们从ARM的角度来看一下。
          ----------------------------------------------------------------------------
          ARM解码也很昂贵
          Hirki等人还得出结论,“切换到不同的指令集只会节省少量的功率,因为指令解码器在现代处理器中无法消除。”
          ARM有限公司自己的设计就是证明。高性能ARM芯片采用了微操作缓存来跳过指令解码,就像x86 CPU一样。2019年,Cortex-A77引入了一个1.5k入口op缓存。设计op缓存并非易事——ARM的团队在至少六个月的时间里调试了他们的op缓存设计。显然,ARM解码非常困难,需要花费大量的工程资源来尽可能跳过解码。Cortex-A78、A710、X1和X2还具有op缓存,表明该方法优于暴力解码。
          三星还在其M5上引入了op缓存。在一篇详细介绍三星Exynos CPU的论文中[4],解码能力被称为实现op缓存的动机:
          随着设计从M1中的每个周期提供4条指令/UOP,到M3中的每个周期提供6条指令/UOP(未来的目标是每个周期增加到8条),获取和解码能力是一个重大问题。
          M5实现添加了一个微操作缓存作为替代uop供应路径,主要是为了节省可重复内核的获取和解码能力。
          与x86 CPU一样,ARM内核也使用op缓存来降低解码成本。ARM的“解码优势”不足以让ARM避免op缓存。而op缓存将减少解码器的使用,使解码能力变得更加重要。
          ---------------------------------------------------------------------------


          IP属地:上海10楼2022-06-18 21:08
          回复
            ARM指令解码成微操作?
            Gary解释说,在x86 CPU上将指令拆分为微操作所使用的额外功率“足以意味着它们没有同等ARM处理器那样高效”,在题为“RISC vs CISC–这仍然是一件事吗?”的视频中,他在随后的视频中重复了这一说法。
            Gary是不正确的,因为现代ARM CPU也将ARM指令解码为多个微操作。事实上,“减少微操作扩展”使ThunderX3的性能比ThunderX2(Marvell的ThunderX芯片均基于ARM)提高了6%,这是导致故障的最主要原因。
            ----------------------------------------------------------------------------
            我们还快速浏览了富士通A64FX的架构手册,A64FX是基于ARM的CPU,为日本的福库超级计算机提供动力。A64FX还将ARM指令解码为多个微操作。A64FX架构手册中ARMv8基本说明部分的部分说明表。我们在解码到多个微操作的指令上添加了强调
            ----------------------------------------------------------------------------
            如果我们更进一步,一些ARM SVE指令会解码成几十个微操作。例如,FADDA(“浮点加法严格有序缩减,以标量累加”)解码为63个微操作。其中一些微操作的延迟为9个周期。在一个周期内执行的ARM/RISC指令就到此为止…
            一方面,ARM不是一个纯粹的负载存储体系结构。例如,LDADD指令从内存加载一个值,将其相加,并将结果存储回内存。A64FX将其解码为4个微操作。
            ----------------------------------------------------------------------------
            x86和ARM:都因遗留问题而膨胀
            这对他们两个都没有关系。
            在Anandtech的采访中,JimKeller指出,随着软件需求的不断发展,x86和ARM都增加了功能。这两个指令集在使用64位时都得到了一些清理,但仍然是经过多年迭代的旧指令集。迭代不可避免地带来膨胀。
            Keller好奇地指出,RISC-V没有遗留下来的东西,因为它“处于复杂生命周期的早期”他接着说:
            如果我今天想快速制造一台计算机,并且我想让它运行得更快,RISC-V是最容易选择的。这是最简单的一个,它有所有正确的功能,它有正确的前八条指令,你实际上需要进行优化,它没有太多的垃圾。
            如果遗留膨胀起到了重要作用,我们预计RISC-V很快就会受到冲击,但我认为这不太可能。传统支持并不意味着传统支持必须快速;可以对其进行微码化,从而使模具面积的使用降到最低。就像变长指令解码一样,在现代高性能CPU中,这种开销不太可能起作用,因为在这种CPU中,芯片区域主要由缓存、宽执行单元、大型无序调度程序和大型分支预测器控制。
            ----------------------------------------------------------------------------
            结论:实施问题,而非ISA
            ----------------------------------------------------------------------------
            我很高兴看到ARM的竞争。高端CPU空间需要更多的播放器,但由于指令集的差异,ARM播放器无法与Intel和AMD相比。要想取胜,武器制造商必须依靠其设计团队的技能。或者,他们可以通过针对特定的功率和性能目标进行优化,超越英特尔和AMD。AMD在这方面尤其脆弱,因为他们使用单核设计来覆盖从笔记本电脑和台式机到服务器和超级计算机的一切。
            这就是我们希望看到对话进行的地方。希望这里提供的信息能够避免陷入过去关于指令集的辩论,这样我们可以继续讨论更有趣的话题。
            ----------------------------------------------------------------------------


            IP属地:上海11楼2022-06-18 21:08
            回复
              路过吃瓜。虽然听不懂,感觉很厉害的样子。


              IP属地:河南来自Android客户端12楼2022-06-18 22:18
              回复
                这很科学


                IP属地:广东来自手机贴吧13楼2022-06-18 23:40
                回复
                  是不是在极客湾评论区看到的?那就是我发的 顺便推荐下semianalysis他们的dieshot分析挺不错的


                  IP属地:马来西亚15楼2022-06-19 18:19
                  收起回复
                    懂了,又好像没懂


                    IP属地:广东16楼2022-06-20 16:50
                    回复
                      不懂


                      IP属地:广东18楼2022-06-20 18:16
                      收起回复


                        IP属地:北京21楼2022-06-20 21:26
                        回复
                          如果有提要或者是总结就好了,全文太长没耐心看完


                          IP属地:新疆22楼2022-06-21 08:53
                          回复